From 33e021d7bd0d11076315bb38eae1c4b2f24ccb8a Mon Sep 17 00:00:00 2001 From: Packit <packit> Date: Sep 24 2020 14:09:45 +0000 Subject: vino-3.22.0 base --- diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..8b5208f --- /dev/null +++ b/AUTHORS @@ -0,0 +1,23 @@ +Mark McLoughlin <mark@skynet.ie> +Calum Benson <calum.benson@sun.com> +Federico Mena Quintero <federico@ximian.com> +Sebastien Estienne <sebastien.estienne@gmail.com> +Shaya Potter <spotter@cs.columbia.edu> +Steven Zhang <steven.zhang@sun.com> +Srirama Sharma <srirama.sharma@wipro.com> +Jonh Wendell <wendell@bani.com.br> + +This is just another re-incarnation of many other similar projects: + + + libvncserver by Johannes E. Schindelin + which in turn is based on: + - OSXvnc by Dan McGuirk + - The original Xvnc by AT&T Laboratories, Cambridge + - TightVNC by Const Kaplinsky + - RealVNC by James "Wez" Weatherall + + + krfb, KDE's desktop sharing server, by Tim Jansen + + x11vnc.c (from libvncserver) by Karl J. Runge + + x0rfbserver, the original native X vnc server, by Jens Wagner + +Much code and ideas from each of those projects is re-used here. diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e5f45d3 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,3932 @@ +2016-09-20 David King <amigadave@amigadave.com> + + Update NEWS for 3.22.0 release + +2016-09-13 David King <amigadave@amigadave.com> + + Update NEWS for 3.21.92 release + +2016-09-10 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2016-09-06 David King <amigadave@amigadave.com> + + Remove unused --with-network-manager option + +2016-09-06 David King <amigadave@amigadave.com> + + Check for sm and ice in configure + + SM and ICE are used by eggsmclient. + + https://bugzilla.gnome.org/show_bug.cgi?id=670426 + +2016-09-06 David King <amigadave@amigadave.com> + + Allow building on non-systemd systems + + Make installation of the systemd user unit optional, falling back to a + standard location if the systemd pkg-config file is not available, as + well as allowing the installation to be entirely disabled. + + https://bugzilla.gnome.org/show_bug.cgi?id=770759 + +2016-09-04 David King <amigadave@amigadave.com> + + Update British English translation + +2016-08-31 Alberts Muktupāvels <alberts.muktupavels@gmail.com> + + build: Fix syntax error introduced in 27785a2 + + https://bugzilla.gnome.org/show_bug.cgi?id=766330 + +2016-08-30 Bastien Nocera <hadess@hadess.net> + + build: Use AM_DISTCHECK_CONFIGURE_FLAGS + + And not DISTCHECK_CONFIGURE_FLAGS, as it is a developer/maintainer + option, not a user option. + + https://bugzilla.gnome.org/show_bug.cgi?id=766330 + +2016-08-30 Bastien Nocera <hadess@hadess.net> + + server: Add a way for Vino to be started via user systemd + + This will allow better tracking of whether vino is running, ensuring + that even if the manager to enable/disable its startup + (gnome-settings-daemon) crashes and needs to restart, its status is + still available by querying the user systemd. + + https://bugzilla.gnome.org/show_bug.cgi?id=766330 + +2016-08-23 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2016-08-19 Eric R. Schulz <eric@ers35.com> + + Fix two memory leaks + + Unref builder in server_connected_changed_cb() and free tooltip in + vino_status_icon_update_state(). + + https://bugzilla.gnome.org/show_bug.cgi?id=770091 + +2016-08-02 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2016-07-25 Piotr Drąg <piotrdrag@gmail.com> + + Add Language headers to po files + + Future versions of gettext will fail if this header is missing. + +2016-05-30 Cédric Valmary <cvalmary@yahoo.fr> + + Updated Occitan translation + +2016-05-10 Cédric Valmary <cvalmary@yahoo.fr> + + Updated Occitan translation + +2016-04-28 Tiago Santos <tiagofsantos81@sapo.pt> + + Updated Portuguese translation + +2016-04-15 Fabio Tomat <f.t.public@gmail.com> + + Updated Friulian translation (cherry picked from commit 02c55160b2703675f55880dd8238c84342405532) + +2016-04-07 Fabio Tomat <f.t.public@gmail.com> + + Updated Friulian translation + +2016-04-07 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2016-04-05 Fabio Tomat <f.t.public@gmail.com> + + Updated Friulian translation + +2016-03-22 David King <amigadave@amigadave.com> + + Update NEWS for 3.20.0 release + +2016-03-20 Ask Hjorth Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2016-03-04 Cédric Valmary <cvalmary@yahoo.fr> + + Updated Occitan translation + +2015-12-03 Sveinn í Felli <sv1@fellsnet.is> + + Updated Icelandic translation + +2015-12-03 Sveinn í Felli <sv1@fellsnet.is> + + Updated Icelandic translation + +2015-12-03 Sveinn í Felli <sv1@fellsnet.is> + + Updated Icelandic translation + +2015-11-12 David King <amigadave@amigadave.com> + + Update NEWS for 3.18.1 release + +2015-10-19 David King <amigadave@amigadave.com> + + Avoid a crash when showing the preferences + + Show an error message when the preferences desktop file is not found, + such as if gnome-control-center is not installed. + + https://bugzilla.gnome.org/show_bug.cgi?id=756654 + +2015-09-21 David King <amigadave@amigadave.com> + + Update NEWS for 3.18.0 release + +2015-09-10 Piotr Drąg <piotrdrag@gmail.com> + + Fix FSF address in Polish translation + +2015-09-01 David King <amigadave@amigadave.com> + + Update NEWS for 3.17.91 release + +2015-08-28 Dimitri Tarassenko <dtarassenko@gmail.com> + + Improve handling of name resolution failure + + Ensure that the host string for a client is always filled with a valid + string, by calling getnameinfo() a second time (ensuring a numeric host + is returned) if the first call fails. + + https://bugzilla.gnome.org/show_bug.cgi?id=754194 + +2015-08-26 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Chinese (Taiwan) translation + +2015-08-24 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2015-08-16 Fabio Tomat <f.t.public@gmail.com> + + Updated Friulian translation + +2015-08-11 Fabio Tomat <f.t.public@gmail.com> + + Added Friulian translation + +2015-06-29 Pedro Albuquerque <palbuquerque73@gmail.com> + + Updated Portuguese translation + +2015-06-01 Sveinn í Felli <sv1@fellsnet.is> + + Added Icelandic translation + +2015-05-25 Cédric Valmary <cvalmary@yahoo.fr> + + Updated Occitan translation + +2015-05-21 Jordi Mas <jmas@softcatala.org> + + Fixes to Catalan transation + +2015-05-21 Cédric Valmary <cvalmary@yahoo.fr> + + Updated Occitan translation + +2015-03-23 David King <amigadave@amigadave.com> + + Update NEWS for 3.16.0 release + +2015-03-16 David King <amigadave@amigadave.com> + + Update NEWS for 3.15.92 release + +2015-03-15 Josef Andersson <josef.andersson@gmail.com> + + Updated Swedish translation + +2015-03-13 Samir Ribic <samir.ribic@etf.unsa.ba> + + Updated Bosnian translation + +2015-03-09 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2015-03-07 Baurzhan Muftakhidinov <baurthefirst@gmail.com> + + Updated Kazakh translation + +2015-03-02 David King <amigadave@amigadave.com> + + Update NEWS for 3.15.91 release + +2015-02-24 David King <amigadave@amigadave.com> + + Avoid a critical EggSMClient warning on startup + + https://bugzilla.gnome.org/show_bug.cgi?id=662074 + +2015-02-18 Ondrej Holy <oholy@redhat.com> + + Handle closed signal properly on notification prompt + + When the notification is closed (e.g. by close button), closed signal + is emitted. This signal isn't handled currently and therefore + vino-server is still waiting for response and block new notification + from client (also doesn't close the connection). Handle close signal + properly to fix this bug. + + https://bugzilla.gnome.org/show_bug.cgi?id=744692 + +2015-02-16 David King <amigadave@amigadave.com> + + Update NEWS for 3.15.90 release + +2015-02-13 Dan Winship <danw@gnome.org> + + vino-upnp: Use GNetworkMonitor + + Rather than talking to NetworkManager over D-Bus to get the network + state, just use GNetworkMonitor. + + https://bugzilla.gnome.org/show_bug.cgi?id=680473 + +2015-01-19 David King <amigadave@amigadave.com> + + Update NEWS for 3.15.4 release + +2015-01-19 David King <amigadave@amigadave.com> + + Do not set obsolete PKG_NAME variable + +2015-01-19 David King <amigadave@amigadave.com> + + Skip intermediate file with Automake 1.15 + +2015-01-19 David King <amigadave@amigadave.com> + + Remove obsolete intltool scripts from Makefile + +2015-01-09 David King <amigadave@amigadave.com> + + Fix Turkish desktop keywords translation + +2015-01-06 David King <amigadave@amigadave.com> + + Remove obsolete GSettings conversion file + + Avoid a crash in gsettings-data-convert. + + https://bugzilla.gnome.org/show_bug.cgi?id=742458 + +2014-12-04 Muhammet Kara <muhammetk@gmail.com> + + Updated Turkish translation + +2014-11-27 Trần Ngọc Quân <vnwildman@gmail.com> + + Updated Vietnamese translation + + Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com> + +2014-11-10 Emin Tufan <etcetin@gmail.com> + + Updated Turkish translation + +2014-11-03 Timo Jyrinki <timo@debian.org> + + Change Finnish translation team web page to l10n.gnome.org + +2014-09-23 David King <amigadave@amigadave.com> + + Update NEWS for 3.14.0 release + +2014-09-20 Pawan Chitrakar <chautari@gmail.com> + + Updated Nepali translation + +2014-09-17 Saibal Ray <sray@redhat.com> + + Updated Bengali (India) translation + +2014-08-28 Maria Mavridou <mavridou@gmail.com> + + Updated Greek translation + +2014-08-18 David King <amigadave@amigadave.com> + + Updates NEWS for 3.13.90 release + +2014-08-15 Mihai Capotă <mihai@mihaic.ro> + + Remove all HTTP server code + + https://bugzilla.gnome.org/show_bug.cgi?id=674268 + +2014-07-31 Piotr Drąg <piotrdrag@gmail.com> + + doap: add <programming-language> + +2014-07-30 Olav Vitters <olav@vitters.nl> + + doap category core + +2014-07-21 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation from Åka Sikrom. + +2014-06-24 David King <amigadave@amigadave.com> + + Update NEWS for 3.13.3 release + +2014-06-18 Bastien Nocera <hadess@hadess.net> + + Get started by the g-s-d sharing plugin + + Remove the AutostartCondition so that we're started by the + gnome-settings-daemon sharing plugin, not by gnome-session + directly. + + https://bugzilla.gnome.org/show_bug.cgi?id=731862 + +2014-06-11 Anders Jonsson <anders.jonsson@norsjovallen.se> + + Updated Swedish translation + +2014-03-24 David King <amigadave@amigadave.com> + + Update NEWS for 3.12.0 release + +2014-03-21 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2014-03-17 David King <amigadave@amigadave.com> + + Update NEWS for 3.11.92 release + +2014-03-09 Ryan Lortie <desrt@desrt.ca> + + libvncserver: fix non-literal format string issue + + vino is built with -Werror=format-nonliteral by default and uses a + non-literal format string. + + Tag the function that it is used from so that the compiler allows it. + This has a side effect of ensuring that the users of this function are + doing it correctly. + + The easiest way to do this correctly is to use the macro in glib, so we + must include the header from this file (which did not yet have it). + + https://bugzilla.gnome.org/show_bug.cgi?id=726002 + +2014-03-05 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2014-02-19 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2014-02-05 Shankar Prasad <prasad.mvs@gmail.com> + + updated kn.po + +2014-01-31 Daniel Mustieles <daniel.mustieles@gmail.com> + + Revert "Updated FSF's address" + + This reverts commit 4d0f1673fcfb4ca572bcb380f51779cfd6fc7b59. + +2014-01-23 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated FSF's address + +2014-01-21 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2014-01-18 Piotr Drąg <piotrdrag@gmail.com> + + Add a trailing semicolon to keywords in Kannada translation + +2014-01-13 David King <amigadave@amigadave.com> + + Update NEWS for 3.11.4 release + +2014-01-09 Søren Sandmann <ssp@redhat.com> + + vino_background_draw: Make 'initialised' static + + The variable 'initialised' is used with g_once_init_enter() to guard the + initialization of the 'background_settings' variable. For this to work, + the 'initialised' variable must be static; otherwise it will be + unpredictable whether 'background_settings' is initialized or not. + + https://bugzilla.gnome.org/show_bug.cgi?id=721725 + +2013-12-23 David King <amigadave@amigadave.com> + + Move dbus code under server/ directory + +2013-12-23 David King <amigadave@amigadave.com> + + Add dependencies on generated files, bug 720956 + + Avoid a build race. + +2013-12-19 David King <amigadave@amigadave.com> + + Use correct wiki link + +2013-12-19 David King <amigadave@amigadave.com> + + Update links to GNOME wiki + +2013-12-19 David King <amigadave@amigadave.com> + + Remove vino-passwd + + Vino passwords are set in the control center UI. + +2013-11-23 eternalhui <www.eternalhui@gmail.com> + + Update Chinese simplified translation + +2013-09-30 Victor Ibragimov <victor.ibragimov@gmail.com> + + Tajik translation updated + +2013-09-29 Victor Ibragimov <victor.ibragimov@gmail.com> + + Tajik translation updated + +2013-09-29 Victor Ibragimov <victor.ibragimov@gmail.com> + + Tajik translation updated + +2013-09-27 Antoine Jacoutot <ajacoutot@gnome.org> + + remove dependency on libsoup + + Commit 328b2e46aef14b4204d3c20e0de40bd0a69b4229 removed the preference + dialog but we were still looking for liboup for VINO_CAPPLET at + configure time. + + https://bugzilla.gnome.org/show_bug.cgi?id=708892 + +2013-09-24 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2013-09-23 David King <amigadave@amigadave.com> + + Post-release version bump to 3.11.1 + +2013-09-23 David King <amigadave@amigadave.com> + + Update NEWS for 3.10.0 release + +2013-09-22 Khaled Hosny <khaledhosny@eglug.org> + + Update Arabic translation + +2013-09-18 Daniel Martinez <dmartinez@src.gnome.org> + + Added Aragonese translation + +2013-09-16 David King <amigadave@amigadave.com> + + Post-release bump to 3.10.0 + +2013-09-16 David King <amigadave@amigadave.com> + + Update NEWS for 3.9.92 release + +2013-09-16 Daniel P. Berrange <berrange@redhat.com> + + Fix reading of TLS data to account for cached data + + When you ask GnuTLS to read 'n' bytes of data it is free to read many + more than just 'n' bytes, since there is no 1-1 mapping between + encrypted and unencrypted byte counts. + + The Vino I/O handle triggered when POLLIN reads one single RFB message, + then checks if POLLIN is still set. This is broken if gnutls has + previously read more than one RFB message worth of data. + + A symptom of this brokeness is that when connecting to a Vino server + with gtk-vnc, the screen will be initially black until the user moves + the mouse or presses a key. Even then there will be periodic delays in + updates if the pending data condition arises again. + + Fortunately GnuTLS has a function gnutls_record_check_pending which lets + apps determine if there is any cached data read off the wire. + + Signed-off-by: Daniel P. Berrange <berrange@redhat.com> + + https://bugzilla.gnome.org/show_bug.cgi?id=703326 + +2013-09-16 Jiro Matsuzawa <jmatsuzawa@gnome.org> + + l10n: Update Japanese translation + +2013-09-12 David King <dking@redhat.com> + + Reject new clients if in the deferred state + + As mentioned in bug 641811, Vino can get stuck trying to process the + same data in an infinite loop if an authentication request is received + from a client while that client is in the deferred state. + + Avoid this situation by closing new connections from the same client + when it is in the deferred state. + +2013-08-08 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2013-07-08 David King <amigadave@amigadave.com> + + Post-release version bump to 3.9.5 + +2013-07-08 David King <amigadave@amigadave.com> + + Update NEWS for 3.9.3 release + +2013-07-01 Jonh Wendell <jonh.wendell@intel.com> + + Move tube declaration to the right place + +2013-05-28 David King <amigadave@amigadave.com> + + Post-release bump to 3.9.3 + +2013-05-28 David King <amigadave@amigadave.com> + + Update NEWS for 3.9.2 release + +2013-05-25 Matthias Clasen <mclasen@redhat.com> + + Be more careful with memory allocation + + Better to 0-initialize these structs, since GetValidIGD may + not end up filling them. + See https://bugzilla.redhat.com/attachment.cgi?id=707491 + for a related stacktrace. + + https://bugzilla.gnome.org/show_bug.cgi?id=700987 + +2013-05-16 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2013-05-10 David King <amigadave@amigadave.com> + + Remove preferences dialog, bug 700070 + +2013-03-28 Andika Triwidada <andika@gmail.com> + + Updated Indonesian translation + +2013-03-27 Daniel Korostil <ted.korostiled@gmail.com> + + Update uk translation + +2013-03-25 David King <amigadave@amigadave.com> + + Back out "authentication-method" setting change + + This partially reverts commit 130d6a4a1f4f6e90586d42903484e5899459c403. + The schema changes to remove the (bogus) choices remain, but the code + changes were incorrect, as discussed in bug 683103. + +2013-03-25 David King <amigadave@amigadave.com> + + Post-release version bump to 3.9.1 + +2013-03-25 David King <amigadave@amigadave.com> + + Update NEWS for 3.8.0 release + +2013-03-25 Shankar Prasad <svenkate@redhat.com> + + Updated kn translations + +2013-03-25 Krishnababu Krothapalli <kkrothap@redhat.com> + + Updated Telugu Translations + +2013-03-24 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2013-03-24 ManojKumar Giri <mgiri@redhat.com> + + Updated Odia Language along with FUEL implementation + +2013-03-23 Khaled Hosny <khaledhosny@eglug.org> + + Update Arabic translation + +2013-03-23 Dr.T.Vasudevan <drtvasudevan@gmail.com> + + Updated Tamil translation + +2013-03-22 Arash Mousavi <mousavi.arash@gmail.com> + + L10N: Updated Persian Translation + +2013-03-21 Rajesh Ranjan <rranjan@redhat.com> + + hindi translation + +2013-03-19 Victor Ibragimov <victor.ibragimov@gmail.com> + + [l10n] Added Tadjik translation + +2013-03-19 Sandeep Sheshrao Shedmake <sshedmak@redhat.com> + + Updated Marathi Translations + +2013-03-18 David King <amigadave@amigadave.com> + + Post-release version bump to 3.8.0 + +2013-03-18 David King <amigadave@amigadave.com> + + Update NEWS for 3.7.92 release + +2013-03-18 David King <amigadave@amigadave.com> + + Remove choices from authentication-methods setting + + The "authentication-methods" setting was intended to list the valid + authentication methods. In practice, only VNC authentication is + supported. Remove the incorrect choices listed in the schema, and set + the default method to be the empty list rather than ['none']. + + Fixes bug 683103. + +2013-03-17 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n] Updated Catalan (Valencian) translation + +2013-03-17 Joe Hansen <joedalton2@yahoo.dk> + + Updated Danish translation + +2013-03-17 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2013-03-15 Balázs Úr <urbalazs@src.gnome.org> + + Updated Hungarian translation + +2013-03-13 Jonathan Kamens <jik@kamens.us> + + Reset sockets when changing ports, bug 668187 + + Explicitly remove the IO watches on the server sockets before setting up + new watches, to handle the case where the file descriptor for the socket + has changed. This can occur if during initialisation the bind for + either the IPv4 or IPv6 socket fails, and then the port is changed while + the server is running to a port where both the IPv4 and IPv6 bind + succeeds. In this case, the address family with the failed bind will + have an invalid file descriptor and the socket would not have an + attached IO watch. + +2013-03-13 Sweta Kothari <swkothar@redhat.com> + + Updated gujarati file + +2013-03-12 Claudio Arseni <claudio.arseni@ubuntu.com> + + [l10n] Updated Italian translation. + +2013-03-12 Claude Paroz <claude@2xlibre.net> + + Updated French translation + +2013-03-12 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2013-03-12 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation and converted to New Spelling (Novo AO) + +2013-03-10 Joan Duran <jodufi@gmail.com> + + [l10] Updated Catalan translation + +2013-03-11 Rūdolfs Mazurs <rudolfsm@src.gnome.org> + + Updated Latvian translation + +2013-03-07 Ville-Pekka Vainio <vpvainio@iki.fi> + + Finnish translation update by Jiri Grönroos + +2013-03-07 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2013-03-06 Nilamdyuti Goswami <ngoswami@redhat.com> + + Assamese translation updated for gnome 3.8 + +2013-03-05 Enrico Nicoletto <liverig@gmail.com> + + Updated Brazilian Portuguese translation + +2013-03-05 Richard Stanislavský <kenny.vv@gmail.com> + + Updated slovak translation + +2013-03-04 David King <amigadave@amigadave.com> + + Post-release version bump to 3.7.92 + +2013-03-04 David King <amigadave@amigadave.com> + + Update NEWS for 3.7.91 release + +2013-03-03 Dimitris Spingos <dmtrs32@gmail.com> + + Updated Greek translation + +2013-03-03 Mario Blättermann <mario.blaettermann@gmail.com> + + [l10n] Updated German translation + +2013-02-27 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2013-02-23 Yuri Myasoedov <omerta13@yandex.ru> + + Updated Russian translation + +2013-02-22 A S Alam <aalam@users.sf.net> + + Punjabi: Translation updated (aalam) + +2013-02-21 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2013-02-18 David King <amigadave@amigadave.com> + + Post-release version bump to 3.7.91 + +2013-02-18 David King <amigadave@amigadave.com> + + Update NEWS for 3.7.90 release + +2013-02-17 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2013-02-16 Gheyret Kenji <gheyret@gmail.com> + + Updated Uyghur translation + + Signed-off-by: Gheyret Kenji <gheyret@gmail.com> + +2013-02-10 Anish A <aneesh.nl@gmail.com> + + Updated Malayalam Localization + +2013-02-09 Aurimas Černius <aurisc4@gmail.com> + + Updated Lithuanian translation + +2013-02-09 Wouter Bolsterlee <uws@xs4all.nl> + + Updated Dutch translation + +2013-02-06 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2013-02-04 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2013-02-02 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2013-02-02 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2013-01-31 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2013-01-30 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2013-01-30 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2013-01-29 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2013-01-28 Robert Ancell <robert.ancell@canonical.com> + + Change schema path to standard format + +2013-01-28 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2013-01-28 Piotr Drąg <piotrdrag@gmail.com> + + Updated POTFILES.in + +2013-01-28 Bastien Nocera <hadess@hadess.net> + + Fix notification desktop hint + + And tell gnome-shell that we do use notifications so we appear in + the Notifications panel. + + https://bugzilla.gnome.org/show_bug.cgi?id=691045#c2 + +2013-01-28 Bastien Nocera <hadess@hadess.net> + + Use notifications to prompt + + https://bugzilla.gnome.org/show_bug.cgi?id=461785 + +2013-01-28 Bastien Nocera <hadess@hadess.net> + + server: Make libnotify a hard dependency + + As it's been a blessed dependency for a long while now. + + https://bugzilla.gnome.org/show_bug.cgi?id=461785 + +2013-01-28 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2013-01-28 Matthias Clasen <mclasen@redhat.com> + + Bring up the sharing panel when available + + The statusicon brings up the vino preferences when clicked. + When available, make it show the control-center sharing panel + instead. + https://bugzilla.gnome.org/show_bug.cgi?id=692480 + +2013-01-28 Matthias Clasen <mclasen@redhat.com> + + Don't show vino-preferences in GNOME + + The gnome-control-center has a sharing panel, which has + screen sharing preferences, so the standalong vino-preferences + are no longer necessary for GNOME. + https://bugzilla.gnome.org/show_bug.cgi?id=692480 + +2013-01-27 Gheyret Kenji <gheyret@gmail.com> + + Updated Uyghur translation + + Signed-off-by: Gheyret Kenji <gheyret@gmail.com> + +2013-01-27 Gheyret Kenji <gheyret@gmail.com> + + Updated Uyghur translation + + Signed-off-by: Gheyret Kenji <gheyret@gmail.com> + +2013-01-26 Bastien Nocera <hadess@hadess.net> + + Export whether the server is connected to through D-Bus + + Using the "Connected" property. This allows gnome-settings-daemon + to know whether to disable-animations in the desktop to make + things faster. + + https://bugzilla.gnome.org/show_bug.cgi?id=690337 + +2013-01-19 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2013-01-16 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2013-01-14 David King <amigadave@amigadave.com> + + Post-release version bump to 3.7.5 + +2013-01-14 David King <amigadave@amigadave.com> + + Update NEWS for 3.7.4 release + +2013-01-14 Gheyret Kenji <gheyret@gmail.com> + + Updated Uyghur translation + + Signed-off-by: Gheyret Kenji <gheyret@gmail.com> + +2013-01-13 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2013-01-07 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2013-01-06 Daniel Mustieles <daniel.mustieles@gmail.com> + + Added keywords to .desktop file, bug 691062 + +2013-01-06 David King <amigadave@amigadave.com> + + Add "desktop-entry" notification hint, bug 691045 + + Support notification filtering by setting a hint to match up + NotifyNotifications with the Vinagre desktop file. + +2013-01-02 Aurimas Černius <aurisc4@gmail.com> + + Updated Lithuanian translation + +2012-12-29 Dimitris Spingos <dmtrs32@gmail.com> + + Updated Greek translation + +2012-12-27 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2012-12-24 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-12-24 Khaled Hosny <khaledhosny@eglug.org> + + Update Arabic translation + +2012-12-24 Adrián Arévalo <adri58@gmail.com> + + Updated Spanish translation + +2012-12-21 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2012-12-20 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2012-12-19 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2012-12-18 Shankar Prasad <svenkate@redhat.com> + + Updated Kannada Translations + +2012-12-17 David King <amigadave@amigadave.com> + + Post-release version bump to 3.7.4 + +2012-12-17 David King <amigadave@amigadave.com> + + Update NEWS for 3.7.3 release + +2012-12-17 Huzaifa Sidhpurwala <huzaifas@redhat.com> + + Do not leak clipboard to unauthenticated clients + + vino_server_clipboard_cb() in vino-server.c is the callback which is + triggered when a clipboard copy event is fired. + + After doing some initial checks, (1. If there are any connected clients, + 2. If the server is on hold etc), it converts the text to UTF-8 and then + passes it on to rfbSendServerCutText(). Here data is pasted to each + client, without verifying if the client is authenticated. + + The patch checks if the client is authenticated and only then it allows + the clipboard text to be sent to it. + + Fixes bug 678434. This is a security issue, and has been assigned + CVE-2012-4429: + http://www.openwall.com/lists/oss-security/2012/09/14/1 + +2012-12-16 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-12-02 Dr.T.Vasudevan <drtvasudevan@gmail.com> + + Updated Tamil translation + +2012-11-23 Nilamdyuti Goswami <ngoswami@redhat.com> + + Assamese translation updated + +2012-11-22 ManojKumar Giri <mgiri@redhat.com> + + Updated Odia Translation with FUEL implementation. + +2012-11-12 ozu17928 <ozu17928@msb.minsmail.com> + + Set quality level if JPEG support is enabled + + Fixes bug 683793. + +2012-11-10 Ryan Lortie <desrt@desrt.ca> + + server/miniupnp/: -Wmissing-prototypes fixups + + Fix up a couple of cases of now-fatal missing prototypes either by + appropriately marking functions as 'static' or including the proper + headers. + +2012-10-27 Richard Stanislavský <kenny.vv@gmail.com> + + Updated slovak translation + +2012-10-23 Richard Stanislavský <kenny.vv@gmail.com> + + Updated Slovak translation + +2012-10-23 Richard Stanislavský <kenny.vv@gmail.com> + + Updated Slovak translation + +2012-10-23 Wolfgang Stoeggl <c72578@yahoo.de> + + Updated German translation + +2012-10-20 David King <amigadave@amigadave.com> + + Use https URLs where possible in DOAP file + +2012-10-20 David King <amigadave@amigadave.com> + + Update GSettings schema descriptions and summaries + + Fix some problems with the user-visible strings from the GSettings + schema. Fixes bug 683387 and bug 686500. + +2012-10-03 Khoem Sokhem <khoemsokhem@khmeros.info> + + [l10n] Added Khmer translation + +2012-10-01 Alexandre Rostovtsev <tetromino@gentoo.org> + + Consistently use SECRET_DEPS, not LIBSECRET_DEPS + + https://bugzilla.gnome.org/show_bug.cgi?id=685171 + +2012-10-01 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2012-09-26 Rūdolfs Mazurs <rudolfsm@src.gnome.org> + + Updated Latvian translation + +2012-09-24 David King <amigadave@amigadave.com> + + Post-release version bump to 3.7.1 + +2012-09-24 David King <amigadave@amigadave.com> + + Update NEWS for 3.6.0 release + +2012-09-24 Rūdolfs Mazurs <rudolfsm@src.gnome.org> + + Updated Latvian translation + +2012-09-24 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2012-09-24 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2012-09-24 David King <amigadave@amigadave.com> + + Add a translation comment for tube mode + + Fixes bug 684656. + +2012-09-23 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2012-09-23 YunQiang Su <yqsu@src.gnome.org> + + update Simplified Chinese (zh_CN) translation + +2012-09-22 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n]Updated Catalan (Valencian) translation + +2012-09-22 Joan Duran <jodufi@gmail.com> + + [l10n] Updated Catalan translation + +2012-09-22 Milo Casagrande <milo@ubuntu.com> + + [l10n] Updated Italian translation. + +2012-09-21 Krishnababu Krothapalli <kkrothap@redhat.com> + + Updated Telugu Translations + +2012-09-21 Rajesh Ranjan <rranjan@redhat.com> + + hindi update by Chandan Kumar + +2012-09-21 Runa Bhattacharjee <runab@redhat.com> + + Updated Bengali India Translation + +2012-09-20 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2012-09-18 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2012-09-17 David King <amigadave@amigadave.com> + + Update NEWS for 3.5.92 release + +2012-09-17 Ani Peter <apeter@redhat.com> + + Updated Malayalam file + +2012-09-17 Sweta Kothari <swkothar@redhat.com> + + Updated gujarati file + +2012-09-15 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2012-09-15 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2012-09-12 Timo Jyrinki <timo@debian.org> + + Finnish translation update by Jiri Grönroos + +2012-09-12 Sandeep Sheshrao Shedmake <sshedmak@redhat.com> + + Updated Marathi Translations + +2012-09-11 Rafael Ferreira <rafael.f.f1@gmail.com> + + Updated Brazilian Portuguese translation + +2012-09-09 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2012-09-09 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2012-09-08 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2012-09-07 Theppitak Karoonboonyanan <thep@linux.thai.net> + + Updated Thai translation. + +2012-09-06 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2012-09-05 Chris Leonard <cjl@laptop.org> + + Updated British English translation + +2012-09-05 Gabor Kelemen <kelemeng@gnome.hu> + + Updated Hungarian translation + +2012-09-04 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2012-09-04 Muhammet Kara <muhammetk@acikkaynak.name.tr> + + [l10n]Updated Turkish translation + +2012-09-02 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2012-09-02 Dr.T.Vasudevan <agnihot3@gmail.com> + + updated Tamil translation + +2012-09-01 Aurimas Černius <aurisc4@gmail.com> + + Updated Lithuanian translation + +2012-09-01 Claude Paroz <claude@2xlibre.net> + + Updated French translation + +2012-08-29 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2012-08-29 Dirgita <dirgitadevina@yahoo.co.id> + + Updated Indonesian translation + +2012-08-29 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-08-28 Nilamdyuti Goswami <nilamdyuti@gmail.com> + + Implemented FUEL entries to Assamese translation + +2012-08-27 Nilamdyuti Goswami <nilamdyuti@gmail.com> + + Assamese translation updated + +2012-08-27 Vincent Untz <vuntz@gnome.org> + + Fix license headers of a few files + + They were mentioning GPL-3.0+ when the intent was GPL-2.0+. This has + been confirmed by Jonh at + https://bugzilla.gnome.org/show_bug.cgi?id=636600#c2 + +2012-08-26 Tom Tryfonidis <tomtryf@gmail.com> + + Updated Greek translation + +2012-08-26 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + Updated Vietnamese translation + +2012-08-26 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + po/vi: import from Damned Lies + +2012-08-24 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2012-08-24 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2012-08-24 Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp> + + [l10n] Update Japanese translation + +2012-08-24 Yuri Myasoedov <omerta13@yandex.ru> + + Updated Russian translation + +2012-08-23 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2012-08-23 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2012-08-22 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2012-08-22 A S Alam <aalam@users.sf.net> + + update Punjabi Translation + +2012-08-22 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2012-08-20 David King <amigadave@amigadave.com> + + Post-release version bump to 3.5.91 + +2012-08-20 David King <amigadave@amigadave.com> + + Update NEWS for 3.5.90 release + +2012-08-20 David King <amigadave@amigadave.com> + + Update POTFILES.in + +2012-08-20 David King <amigadave@amigadave.com> + + Rename defines from gnome-keyring to secret + +2012-08-20 Stef Walter <stefw@gnome.org> + + Migrate from libgnome-keyring to libsecret + + See: https://live.gnome.org/GnomeGoals/LibsecretMigration + +2012-08-20 David King <amigadave@amigadave.com> + + Post-release version bump to 3.5.90 + +2012-08-17 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-08-16 Sandeep Sheshrao Shedmake <sshedmak@redhat.com> + + Updated Marathi Translations + +2012-08-15 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2012-08-09 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2012-08-08 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2012-08-08 Sweta Kothari <swkothar@redhat.com> + + Updated gujarati file + +2012-08-02 Jiro Matsuzawa <jmatsuzawa@gnome.org> + + [l10n] Update Japanese translation + + Modify the About label + +2012-08-01 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2012-07-30 Sweta Kothari <swkothar@redhat.com> + + Updated gujarati file + +2012-07-25 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2012-07-17 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2012-07-16 Nilamdyuti Goswami <nilamdyuti@gmail.com> + + Assamese translation reviewed + +2012-07-15 Mitsuya Shibata <mty.shibata@gmail.com> + + [l10n] Update Japanese translation + +2012-07-10 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2012-07-10 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2012-07-04 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2012-07-02 Tom Tryfonidis <tomtryf@gmail.com> + + Updated Greek translation + +2012-06-16 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2012-06-05 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2012-06-05 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-06-04 David King <amigadave@amigadave.com> + + Post-release version bump to 3.5.3 + +2012-06-04 David King <amigadave@amigadave.com> + + Update NEWS for 3.5.2 release + +2012-06-04 David King <amigadave@amigadave.com> + + Post-release version bump to 3.5.2 + +2012-06-04 David King <amigadave@amigadave.com> + + Depend on intltool 0.50 for GSettings translations + +2012-05-26 Mantas Kriaučiūnas <mantas@akl.lt> + + Updated Lithuanian translation + +2012-05-26 Luca Ferretti <lferrett@gnome.org> + + l10n: updated Italian translation + +2012-05-23 Bruno Brouard <annoa.b@gmail.com> + + Updated French translation + +2012-05-23 Bruno Brouard <annoa.b@gmail.com> + + Updated French translation + +2012-05-08 Fabrice Bellet <fabrice@bellet.info> + + Fix iteration of the cursor->source[] array + + See bug 492033. + +2012-05-08 Fabrice Bellet <fabrice@bellet.info> + + Fix the cursor bounds computation + + See bug 492033. + +2012-05-08 Fabrice Bellet <fabrice@bellet.info> + + Use XFixes to provide RFB cursor image + + Fixes bug 492033. + +2012-05-03 Kostas Papadimas <pkst@gnome.org> + + Updated Greek translation + +2012-05-03 Kostas Papadimas <pkst@gnome.org> + + Updated Greek translation + +2012-05-02 David King <amigadave@amigadave.com> + + Update NEWS for 3.5.1 release + +2012-04-27 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-04-26 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2012-04-25 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Use tp_stream_tube_channel_get_service() + + The offering high level API is not used as it does not currently support + offering an existing socket. Completes the fixes for bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Use TP_CONTACT_FEATURE_AVATAR_DATA + + See bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Remove VinoTubeServer::connection property + + The TpConnection from the TpChannel can be used instead. See bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Rename VinoTubeServer.tp_channel to .tube + + That is already the name of the property. See bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Rely on the factory to prepare the TpContact + + See bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Use tp_simple_handler_new_with_factory() + + See bug 674707. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Depend on telepathy-glib 0.18.0 + + This is the stable version recommended for GNOME 3.4. See bug 674707. + +2012-04-25 David King <amigadave@amigadave.com> + + Add vino_server_set_notify_on_connect() + + Without the property setter, g_settings_bind() cannot update the + notify-on-connect property when the setting changes. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Exit when tube is closed if run in tube mode + + See bug 651960. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Relay tube-disconnected signal in VinoDbusListener + + See bug 651960. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + VinoTubeServersManager::tube-disconnected signal + + See bug 651960. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Add --tube arg to launch Vino in ‘tube only’ mode + + This fixes the ‘Share my Desktop’ feature when screen sharing has been + disabled in the preferences. + + This regression was introduced when Vino switched to GSettings, as it + started exiting on startup when desktop sharing was disabled. + + Fixes bug 651960. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Add VinoServer:reject-incoming property + + See bug 651960. + +2012-04-25 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Add vino_dbus_listener_get_server() + + See bug 651960. + +2012-04-22 Mitsuya Shibata <mty.shibata@gmail.com> + + [l10n] Update Japanese translation + +2012-04-10 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n]Updated Catalan (Valencian) translation + +2012-04-10 Jordi Serratosa <jordis@softcatala.cat> + + [l10n] Fixes on Catalan translation + +2012-03-30 Khaled Hosny <khaledhosny@eglug.org> + + Updated Arabic translation + +2012-03-26 David King <amigadave@amigadave.com> + + Post-release version bump to 3.5.1 + +2012-03-26 David King <amigadave@amigadave.com> + + Update NEWS for 3.4.0 release + +2012-03-23 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2012-03-22 Sweta Kothari <swkothar@redhat.com> + + Updated Gujarati Translations + +2012-03-20 Krishnababu Krothapalli <email> + + Translations Updated with FUEL + +2012-03-20 YunQiang Su <yqsu@src.gnome.org> + + update Simplified Chinese (zh_CN) translation + +2012-03-20 David King <amigadave@amigadave.com> + + Post-release version bump to 3.4.0 + +2012-03-19 David King <amigadave@amigadave.com> + + Update NEWS for 3.3.92 release + +2012-03-19 David King <amigadave@amigadave.com> + + Version bump to 3.3.92 + +2012-03-19 Rajesh Ranjan <rranjan@redhat.com> + + hindi translation by Chandan Kumar, correcting and commiting right file + +2012-03-19 Rajesh Ranjan <rranjan@redhat.com> + + hindi translation by Chandan Kumar + +2012-03-19 Rajesh Ranjan <rranjan@redhat.com> + + hindi translation by Chandan Kumar + +2012-03-18 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2012-03-16 Bruce Cowan <bruce@bcowan.me.uk> + + Updated British English translation + +2012-03-16 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n]Updated Catalan (Valencian) translation + +2012-03-16 Joan Duran <jodufi@gmail.com> + + [l10n] Updated Catalan translation + +2012-03-15 A S Alam <aalam@users.sf.net> + + update Punjabi Translation + +2012-03-15 Krishnababu Krothapalli <email> + + Updated Telugu Translations + +2012-03-14 Antonio Fernandes C. Neto <fernandesn@gnome.org> + + Updated Brazilian Portuguese translation + +2012-03-14 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2012-03-13 Anita Reitere <nitalynx@gmail.com> + + Updated Latvian translation. + +2012-03-12 Nilamdyuti Goswami <nilamdyuti@gmail.com> + + Assamese translation completed + +2012-03-10 Arash Mousavi <amousavi@src.gnome.org> + + Updated Persian Translation + +2012-03-11 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2012-03-07 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2012-03-05 Mario Blättermann <mario.blaettermann@gmail.com> + + [l10n] Updated German translation + +2012-03-04 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2012-03-03 Claudio Arseni <claudio.arseni@gmail.com> + + [l10n] Updated Italian translation + +2012-02-29 Gabor Kelemen <kelemeng@gnome.hu> + + Updated Hungarian translation + +2012-02-28 Dr.T.Vasudevan <agnihot3@gmail.com> + + updated Tamil translation + +2012-02-20 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2012-02-20 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2012-02-19 Kristjan SCHMIDT <kristjan.schmidt@googlemail.com> + + Updated Esperanto translation + +2012-02-08 Yuri Myasoedov <omerta13@yandex.ru> + + Updated Russian translation + +2012-01-30 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2012-01-28 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2012-01-19 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2012-01-18 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2012-01-15 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2012-01-12 Timo Jyrinki <timo.jyrinki@iki.fi> + + Updated Finnish translation by Jiri Grönroos + +2012-01-08 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2012-01-02 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2011-12-19 David King <amigadave@amigadave.com> + + Post-release version bump to 3.3.4 + +2011-12-19 David King <amigadave@amigadave.com> + + Update NEWS for 3.3.3 release + +2011-12-10 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2011-12-01 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2011-11-26 Muhammet Kara <muhammet.k@gmail.com> + + [l10n]Updated Turkish translation + +2011-11-25 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2011-11-24 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2011-11-24 Alexandre Franke <alexandre.franke@gmail.com> + + Update French translation + +2011-11-22 Mateusz Maćkowski <matx-1997@o2.pl> + + Added option to disable connect notifications + + Fixes bug 588305. + +2011-11-12 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2011-11-11 Hideki Yamane <henrich@debian.org> + + Updated Japanese translation + +2011-10-24 David King <amigadave@amigadave.com> + + Post-release version bump to 3.3.2 + +2011-10-24 David King <amigadave@amigadave.com> + + Update NEWS for 3.3.1 release + +2011-10-24 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2011-10-10 krishnababu k <kkrothap@redhat.ocm> + + Updated Telugu Translations + +2011-09-28 David King <amigadave@amigadave.com> + + Update smclient to latest libegg version + +2011-09-26 David King <amigadave@amigadave.com> + + Post-release version bump to 3.3.1 + +2011-09-26 David King <amigadave@amigadave.com> + + Update NEWS for 3.2.0 release + +2011-09-26 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n]Updated Catalan (Valencian) translation + +2011-09-25 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2011-09-25 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2011-09-25 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2011-09-23 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2011-09-22 Nilamdyuti Goswami <ngoswami@redhat.com> + + Update Assamese translation + +2011-09-21 Gabor Kelemen <kelemeng@gnome.hu> + + Updated Hungarian translation + +2011-09-19 David King <amigadave@amigadave.com> + + Post-release version bump to 3.2.0 + +2011-09-19 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.92 release + +2011-09-18 Joe Hansen <joedalton2@yahoo.dk> + + Updated Danish translation + +2011-09-17 Yinghua Wang <wantinghard@gmail.com> + + update Simplified Chinese (zh_CN) translation + +2011-09-17 Jiro Matsuzawa <jmatsuzawa@src.gnome.org> + + Updated Japanese translation + +2011-09-17 Claudio Arseni <claudio.arseni@ubuntu.com> + + l10n: Updated Italian translation + +2011-09-16 Joan DUran <jodufi@gmail.com> + + [l10n]Updated Catalan translation + +2011-09-11 Ihar Hrachyshka <ihar.hrachyshka@gmail.com> + + Updated Belarusian translation. + +2011-09-08 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2011-09-08 David King <amigadave@amigadave.com> + + Enable AM_MAINTAINER_MODE in configure.ac + + As pointed out by Ryan Lortie, and with thanks to Frédéric Péters: + + http://blogs.gnome.org/desrt/2011/09/08/am_maintainer_mode-is-not-cool/ + +2011-09-08 Bruce Cowan <bruce@bcowan.me.uk> + + Updated British English translation + +2011-09-07 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2011-09-05 Jeremy Bicha <jbicha@ubuntu.com> + + Corrected new help links The new help: protocol uses a slash instead of a question mark. Also updating two old help references that hadn't been updated. + +2011-09-06 Wouter Bolsterlee <wbolster@gnome.org> + + Updated Dutch translation by Wouter Bolsterlee + +2011-09-05 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.92 + +2011-09-05 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.91 release + +2011-09-05 David King <amigadave@amigadave.com> + + Make all targets use compiler warning flags + + Additionally, make sure that the warnings are set to maxmium severity + during a distcheck. + +2011-09-05 David King <amigadave@amigadave.com> + + Use new location for Mallard help, bug 657927 + +2011-09-05 Dr.T.Vasudevan <agnihot3@gmail.com> + + updated Tamil translation + +2011-09-01 Yuri Myasoedov <omerta13@yandex.ru> + + Updated Russian translation + +2011-08-31 Og B. Maciel <ogmaciel@gnome.org> + + Updated Brazilian Portuguese translation. + +2011-08-29 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.91 + +2011-08-29 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.90 release + +2011-08-19 Mario Blättermann <mariobl@gnome.org> + + [l10n] Updated German translation + +2011-08-19 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2011-08-19 A S Alam <aalam@users.sf.net> + + update translation for Punjabi + +2011-08-15 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.90 + +2011-08-15 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.5 release + +2011-08-15 David King <amigadave@amigadave.com> + + Use GtkBox rather than GtkHBox or GtkVBox + +2011-08-13 Claude Paroz <claude@2xlibre.net> + + Updated French translation + +2011-08-13 Aurimas Černius <aurisc4@gmail.com> + + Updated Lithuanian translation + +2011-08-13 Theppitak Karoonboonyanan <thep@linux.thai.net> + + Updated Thai translation. + +2011-08-12 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2011-07-29 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2011-07-25 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.5 + +2011-07-25 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.4 release + +2011-07-18 Tommi Vainikainen <thv@iki.fi> + + Updated Finnish translation + +2011-07-13 Rudolfs Mazurs <rudolfs.mazurs@gmail.com> + + Updated Latvian translation. + +2011-07-08 David King <amigadave@amigadave.com> + + Only call g_settings_sync() when necessary + + Versions of Gio since 2.29.2 call g_settings_sync() during GApplication + shutdown, thus it is not required to call it manually, bug 653914. + +2011-07-08 Bastien Nocera <hadess@hadess.net> + + Add GConf to GSettings convert file, bug 654901 + +2011-07-07 Abduxukur Abdurixit <abdurixit@gmail.com> + + Added UG translation + +2011-07-04 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.4 + +2011-07-04 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.3 release + +2011-07-01 David King <amigadave@amigadave.com> + + Add more categories to preferences desktop file + +2011-07-01 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.3 + +2011-07-01 Michael Terry <michael.terry@canonical.com> + + Make desktop files appear in Unity too, bug 653802 + + Signed-off-by: David King <amigadave@amigadave.com> + +2011-06-13 Javier Jardón <jjardon@gnome.org> + + Use const instead deprecated G_CONST_RETURN + +2011-06-13 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.2 release + +2011-06-10 Abduxukur Abdurixit <abdurixit@gmail.com> + + Added UG translation + +2011-06-09 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2011-06-06 Sjoerd Simons <sjoerd.simons@collabora.co.uk> + + Do not set non-existent use-dbus-listener property + + The ‘use-dbus-listener’ property has been removed from VinoServer, so + do not try to set it when creating a VinoDBusServer. + +2011-06-06 Sjoerd Simons <sjoerd.simons@collabora.co.uk> + + Fix _TELEPATHY_GLIB mistyped as _TELEPATHY_GLUB + +2011-06-03 Arash Mousavi <amousavi@src.gnome.org> + + Updated Persian translation + +2011-05-29 Carles Ferrando <carles.ferrando@gmail.com> + + [l10n]Updated Catalan (Valencian) translation + +2011-05-27 Kristjan SCHMIDT <kristjan.schmidt@googlemail.com> + + Updated Esperanto translation + +2011-05-24 David King <amigadave@amigadave.com> + + Remove gettext macros from configure.ac + +2011-05-22 Мирослав Николић <miroslavnikolic@rocketmail.com> + + Updated Serbian translation + +2011-05-19 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2011-05-15 Andika Triwidada <andika@gmail.com> + + Updated Indonesian translation + +2011-05-09 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.2 + +2011-05-09 David King <amigadave@amigadave.com> + + Update NEWS for 3.1.1 release + +2011-05-09 David King <amigadave@amigadave.com> + + Change *.tar.gz to *.tar.xz in .gitignore + +2011-05-09 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2011-05-04 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2011-05-03 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2011-05-03 Muhammet Kara <muhammet.k@gmail.com> + + Updated Turkish translation + +2011-05-02 David King <amigadave@amigadave.com> + + Avoid out-of-bounds memory accesses + + This fixes two critical security vulnerabilities that lead to an + out-of-bounds memory access with a crafted client framebuffer update + request packet. The dimensions of the update from the packet are checked + to ensure that they are within the screen dimensions. + + Thanks to Kevin Chen from the Bitblaze group for the reports in bugs + 641802 and 641803. The CVE identifiers for these vulnerabilities are + CVE-2011-0904 and CVE-2011-0905. + +2011-05-02 Abduxukur Abdurixit <abdurixit@gmail.com> + + Added UG translation + +2011-04-30 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated galician translations + +2011-04-30 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2011-04-29 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2011-04-28 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2011-04-28 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2011-04-28 David King <amigadave@amigadave.com> + + Use ‘Desktop Sharing’ rather than ‘Remote Desktop’ + + As pointed out in bug 625623, Vino deals with sharing a desktop of a + current session, not starting a session and providing a remote desktop. + +2011-04-28 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2011-04-26 David King <amigadave@amigadave.com> + + Do not use deprecated GnuTLS functions, bug 648606 + + Bump the GnuTLS version check to 2.2.0 from 1.0.0. Use + gnutls_priority_set_direct() rather than gnutls_kx_set_priority() to set + the key exchange algorithm. + +2011-04-26 Muhammet Kara <muhammet.k@gmail.com> + + Updated Turkish translation + +2011-04-24 Abduxukur Abdurixit <abdurixit@gmail.com> + + Added UG translation + +2011-04-24 Theppitak Karoonboonyanan <thep@linux.thai.net> + + Updated Thai translation. + +2011-04-20 Jordi Mallach <jordi@sindominio.net> + + Fix defines to match configure script output + + In 99d0f293b7ed2527c127a45bb6bc5b34b61bbcdb, configure was changed to + prefix all AC_DEFINE macros with VINO_, and features were changed to use + AC_ARG_WITH. + + Some of the guarded features didn't have their defines updated in the + code, resulting in any build having NetworkManager, GCrypt/GnuTLS, + libnotify or Telepathy support. + + Fixes bug 648322. + +2011-04-18 David King <amigadave@amigadave.com> + + Update copyright information in about dialog + +2011-04-18 Oliver Gerlich <oliver.gerlich@gmx.de> + + Only send a motion event when the pointer moved + + Only generate a MotionNotify event if the button state did not change or + if the mouse coordinates have changed. Fixes bug 564520. + +2011-04-18 David King <amigadave@amigadave.com> + + Post-release version bump to 3.1.1 + +2011-04-17 Oliver Gerlich <oliver.gerlich@gmx.de> + + Fix cursor update logic, bug 617436 + +2011-04-16 David King <amigadave@amigadave.com> + + Improve status icon tooltip string, bug 594253 + +2011-04-16 Travis B. Hartwell <nafai@travishartwell.net> + + String improvements in preferences capplet + + Patch modified from version in bug 606419. + +2011-04-11 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2011-04-11 Thorsten Glaser <tg@mirbsd.de> + + Bind both an IPv4 and an IPv6 socket + + Under some configurations on Linux, and an BSD, the dfault behaviour is + to bind only an IPv6 socket when IPv6 support is enabled. The default + Linux kernel configuration is to bind both an IPv4 and an IPv6 socket. + Using two listening sockets fixes the problem, bug 604809. + +2011-04-05 Jordi Serratosa <jordis@softcatala.cat> + + [l10n]Fixes on Catalan translation + +2011-04-05 David King <amigadave@amigadave.com> + + Improve description of UPnP feature, bug 594521 + + Additionally, add back the tooltip, which was accidentally removed in + commit 854a89544020c087680cce2c36cdcda9f38b841d. + +2011-04-04 David King <amigadave@amigadave.com> + + Update NEWS for 3.0.0 release + +2011-04-04 David King <amigadave@amigadave.com> + + Add translator comments from eggsmclient + + This clarifies the translation of two strings from libegg, fixing bug + 614107. + +2011-04-02 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2011-04-02 Kjartan Maraas <kmaraas@gnome.org> + + Include config.h where necessary + + Add ‘#include <config.h>’ to all file that include translatable strings, + so that they appear translated in the UI. Fixes bug 645860. + +2011-04-01 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2011-03-30 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2011-03-30 Dr.T.Vasudevan <agnihot3@gmail.com> + + Updated Tamil translation + +2011-03-29 David King <amigadave@amigadave.com> + + Add dbus-glib-1 to telepathy-glib pkg-config check + + In recent linker versions, transitive imports of library symbols are + rejected by the linker. dbus-glib-1 exists in the Requires.private + variable of the telepathy-glib pkg-config file, so results in a + transitive import of dbus-glib-1, which fails during the link phase as + dbus_g_type_specialized_construct is called from + server/vino-tube-server.c. Underlinking is another term for this + problem. + + Explicitly adding dbus-glib-1 to the telepathy-glib pkg-config check + fixes the problem, bug 646018. Also see + http://blog.flameeyes.eu/2010/11/26/it-s-not-all-gold-that-shines-why-underlinking-is-a-bad-thing + +2011-03-27 Abduxukur Abdurixit <abdurixit@gmail.com> + + Added UG translation + +2011-03-26 David King <amigadave@amigadave.com> + + Require automake 1.11.1 and dist as .xz only + +2011-03-26 David King <amigadave@amigadave.com> + + Add description to DOAP file + +2011-03-25 David King <amigadave@amigadave.com> + + Update NEWS for 2.99.5 release + +2011-03-25 Rodrigo Padula de Oliveira <contato@rodrigopadula.com> + + Updated Brazilian Portuguese translation + +2011-03-24 Runa Bhattacharjee <runab@redhat.com> + + Updated Bengali India Translation + +2011-03-22 Claudio Arseni <claudio.arseni@gmail.com> + + Updated Italian translation + +2011-03-21 Brett Witherspoon <spoonb@exherbo.org> + + Use GSettings autostart condition + +2011-03-21 David King <amigadave@amigadave.com> + + Post-release version bump to 2.99.5 + +2011-03-21 David King <amigadave@amigadave.com> + + Update NEWS and release 2.99.4 + +2011-03-21 David King <amigadave@amigadave.com> + + Remove server reachability message from the UI + + As there is not enough time to fix bug 596190 before a release, disable + the server reachability test by not connecting the 'changed' signal on + the VinoConnectivityInfo object. Comment the UI objects in the + GtkBuilder XML description. This addresses CVE-2011-1164 until a fix for + the reachability test is available. + +2011-03-21 Amitakhya Phukan <amitakhya@svn.gnome.org> + + Updated Assamese translations + +2011-03-20 David King <amigadave@amigadave.com> + + Generate enums and marshalers before they are used + + Make vinagre/vinagre-enums.c depend on vinagre/vinagre-enums.h. Reorder + sources so that the marshallers and enums sources are generated before + they are needed, fixing bug 645266. + +2011-03-19 Rudolfs Mazurs <rudolfs.mazurs@gmail.com> + + Updated Latvian translation. + +2011-03-19 Dirgita <dirgitadevina@yahoo.co.id> + + Updated Indonesian translation + +2011-03-18 Yunqiang Su <wzssyqa@gmail.com> + + Update Simplified Chinese translation. + +2011-03-17 Mario Blättermann <mariobl@gnome.org> + + [l10n] Updated German translation + +2011-03-17 Claudio Arseni <claudio.arseni@gmail.com> + + Updated Italian translation + +2011-03-16 Lucian Adrian Grijincu <lucian.grijincu@gmail.com> + + Updated Romanian translation + +2011-03-16 Lucian Adrian Grijincu <lucian.grijincu@gmail.com> + + Updated Romanian translation + +2011-03-16 Bruce Cowan <bruce@bcowan.me.uk> + + Updated British English translation + +2011-03-16 Mattias Põldaru <mahfiaz@gmail.com> + + [l10n] Updated Estonian translation + +2011-03-16 Yuri Myasoedov <omerta13@yandex.ru> + + Updated Russian translation + +2011-03-15 Marek Černocký <marek@manet.cz> + + Updated Czech translation + +2011-03-15 Gabor Kelemen <kelemeng@gnome.hu> + + Updated Hungarian translation + +2011-03-15 Fran Diéguez <fran@openhost.es> + + Updated Galician translations + +2011-03-14 David King <amigadave@amigadave.com> + + Remove some unnecessary code in the capplet + +2011-03-13 Priit Laes <plaes@plaes.org> + + [l10n] Updated Estonian translation + +2011-03-13 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2011-03-13 David King <amigadave@amigadave.com> + + Update README for upcoming release + +2011-03-12 Wouter Bolsterlee <wbolster@gnome.org> + + Updated Dutch translation by Wouter Bolsterlee + +2011-03-12 David King <amigadave@amigadave.com> + + Tidy the marshal and enums generation rules + + Taking inspiration from the libgdata rules for glib-mkenums and + glib-genmarshal, rewrite the make rules so that BUILT_SOURCES is not + used. Additionally, provide more human-readable generated files. + +2011-03-12 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2011-03-11 David King <amigadave@amigadave.com> + + Generate ChangeLog from commit log during 'dist' + +2011-03-11 Joan Duran <jodufi@gmail.com> + + [l10n] Updated Catalan translation + +2011-03-08 David King <amigadave@amigadave.com> + + Check for the inline keyword with AC_C_INLINE + +2011-03-08 David King <amigadave@amigadave.com> + + Add website to AC_INIT and use in about dialog + +2011-03-08 David King <amigadave@amigadave.com> + + Correct gcrypt CFLAGS and LIBS variable usage + + The variables created by the AM_PATH_GCRYPT macro are LIBGCRYPT_CFLAGS + and LIBGCRYPT_LIBS, not GCRYPT_CFLAGS and GCRYPT_LIBS. + +2011-03-08 David King <amigadave@amigadave.com> + + Fix non-functional PKG_CHECK_EXISTS checks + + PKG_CHECK_EXISTS does not have the same first argument as + PKG_CHECK_MODULES, so remove the first argument from all + PKG_CHECK_EXISTS calls. + +2011-03-08 David King <amigadave@amigadave.com> + + Fix underlinking with libX11 and libz + + AB_SUBST a variable with the zlib linker command line and add it to + LDADD for vino-server. Remove the weird check to see if Pango provided + '-lX11' in the linker command line, and use AC_PATH_XTRA always. Fixes + bug 644192. + +2011-03-07 David King <amigadave@amigadave.com> + + Fix configure options containing extra dashes + + The logic for evaluating configure options that contained a dash was + wrong. This includes --enable-http-server, --with-network-manager and + --with-gnome-keyring. Thanks to David Ronis for the report in bug + 644153. + +2011-03-07 David King <amigadave@amigadave.com> + + Post-release bump to 2.99.4 + +2011-03-07 David King <amigadave@amigadave.com> + + Update NEWS for release + +2011-03-07 David King <amigadave@amigadave.com> + + Distribute the DOAP file + +2011-03-05 David King <amigadave@amigadave.com> + + Include if.h before ifaddrs.h in configure test + + The getifaddrs manpage states that if both <net/if.h> and <ifaddrs.h> + are being included, <net/if.h> must be included before <ifaddrs.h>. + +2011-03-05 A S Alam <aalam@users.sf.net> + + update Punjabi Translation by A S Alam + +2011-03-04 David King <amigadave@amigadave.com> + + Add me as a maintainer, remove MAINTAINERS file + +2011-03-04 Manoj Kumar Giri <mgiri@redhat.com> + + Updated Oriya Translation + +2011-03-04 David King <amigadave@amigadave.com> + + Fix strict-aliasing warning in VNC authentication + +2011-03-04 David King <amigadave@amigadave.com> + + Fix strict-aliasing warnings in HTTP server + +2011-03-04 David King <amigadave@amigadave.com> + + Correct prototype for vino_get_http_server_port() + +2011-03-04 David King <amigadave@amigadave.com> + + Use G_GSIZE_FORMAT when printing a gsize + +2011-03-02 David King <amigadave@amigadave.com> + + Update NEWS and add check-news to AM_INIT + + Add a note to packagers in the NEWS announcement for the upcoming + release about the changes to configure arguments. Add check-news to + AM_INIT so that NEWS is checked during make distcheck. + +2011-03-02 David King <amigadave@amigadave.com> + + Only use convenience libraries for smclient + + Cut down linking complexity by only using libtool convenience libraries + for eggsmclient. + +2011-03-02 David King <amigadave@amigadave.com> + + Reduce duplicate libraries during linking + +2011-03-02 David King <amigadave@amigadave.com> + + Check for sed with AC_PROG_SED + +2011-03-02 David King <amigadave@amigadave.com> + + Convert docs subdirectory to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert server/libvncserver to non-recursive build + +2011-03-02 David King <amigadave@amigadave.com> + + Convert server/smclient to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert server/miniupnp to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert server subdir to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert tools subdir to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert capplet subdir to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Convert common subdir to build non-recursively + +2011-03-02 David King <amigadave@amigadave.com> + + Check for presence of glib-mkenums in configure + + AC_SUBST a GLIB_MKENUMS variable in configure, that can be used in + Makefile.am. + +2011-03-02 David King <amigadave@amigadave.com> + + Use AC_CONFIG_AUX_DIR and update .gitignore + + Also remove outdated .cvsignore files. + +2011-02-28 Sweta Kothari <swkothar@redhat.com> + + Updated Gujarati Translations + +2011-02-27 David King <davidk@openismus.com> + + Overhaul configure script + + Rename configure.in to configure.ac. Rearrange to recommended standard + layout. Use M4sh where possible. Enable automake warnings, disable + defines and disable standard includes. Switch all configure arguments + that enable support for external libraries to use AC_ARG_WITH, and be + automatically enabled by default. Prefix all defines from AC_DEFINE + macros with 'VINO_'. Discover glib-genmarshal path from GLib pkg-config + file. Drop confusing checking of both zlib and libz, and replace with + just checking for zlib. Drop checking for Perl to decide whether to + rebuild generated files. Drop configure summary. + + Additionally, make the minimum adjustments necessary in other files to + enable the build to succeed. + +2011-02-27 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2011-02-25 Bruno Brouard <annoa.b@gmail.com> + + Updated French translation + +2011-02-23 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Post-release bump to 2.99.3. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Release: 2.99.2 + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Fixed dereferencing issue overlooked on merge. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Added -enable-debug to DISTCHECK_CONFIGURE_FLAGS. + +2011-02-23 Pierre Wieser <pwieser@trychlos.org> + + Added back telepathy functionality. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Added DISTCHECK_CONFIGURE_FLAGS to Makefile.am. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Post-release bump to 2.99.2. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Release: 2.99.1 + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Added back basic mdns functionality. + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Fixed typo in configure.in + +2011-02-23 Chris Kühl <chrisk@openismus.com> + + Removed overlooked has-seperator property. + +2011-02-23 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2011-02-23 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation. + +2011-02-23 Alexander Shopov <ash@kambanaria.org> + + Updated Bulgarian translation + +2011-02-22 Daniel Mustieles <daniel.mustieles@gmail.com> + + Updated Spanish translation + +2011-02-21 Chris Kühl <chrisk@openismus.com> + + Post-release bump to 2.99.1. + +2011-02-21 Chris Kühl <chrisk@openismus.com> + + Release: 2.99.0 + +2011-02-21 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation. + +2011-02-21 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2011-02-21 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2011-02-21 Chris Kühl <chrisk@openismus.com> + + Updated POTFILE.in to use GSettings schema. + +2011-02-19 Chris Kühl <chrisk@openismus.com> + + Fixed typo in common/Makefile.am + +2011-02-18 Chris Kühl <chrisk@openismus.com> + + Fixed typo in settings schema + +2011-02-18 Chris Kühl <chrisk@openismus.com> + + Bumped version number to 2.99.0 to reflect deps. + +2011-02-18 Chris Kühl <chrisk@openismus.com> + + Completed GConf to GSettings port. + +2011-02-18 Chris Kühl <chrisk@openismus.com> + + Updated GtkApplication code. + +2011-02-17 Chris Kühl <chrisk@openismus.com> + + Use GDK_WINDOW_XID instead of GDK_WINDOW_XWINDOW. + +2011-02-09 Matthias Clasen <mclasen@redhat.com> + + Port to GTK+ 3 + + Based on a patch by Andreas Henriksson + https://bugzilla.gnome.org/show_bug.cgi?id=631670 + +2011-02-09 Matthias Clasen <mclasen@redhat.com> + + Update EggSMClient from libegg + +2011-02-08 Daniel Korostil <ted.korostiled@gmail.com> + + Uploaded Ukranian + +2011-01-27 Fran Diéguez <fran.dieguez@mabishu.com> + + QA of Galician translations + +2011-01-23 Wei-Lun Chao <chaoweilun@gmail.com> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2010-12-23 Gheyret T.Kenji <gheyret@gmail.com> + + Added UG translation + +2010-12-23 Vincent Untz <vuntz@gnome.org> + + release: post-release bump to 2.32.2 + +2010-12-23 Vincent Untz <vuntz@gnome.org> + + release: 2.32.1 + +2010-12-23 Vincent Untz <vuntz@gnome.org> + + Stay compatible with both old and new libnotify + + Since this is still a stable branch, it's worth supporting libnotify < + 0.7. + +2010-12-20 Priit Laes <plaes@plaes.org> + + [l10n] Updated Estonian translation + +2010-12-12 Simos Xenitellis <simos@gnome.org> + + l10n: Updated Greek translation for vino + +2010-12-02 Jonh Wendell <jwendell@gnome.org> + + adapt to new libnotify api + +2010-11-20 Gheyret T.Kenji <gheyret@gmail.com> + + Added UG translation + +2010-11-13 Gheyret T.Kenji <gheyret@gmail.com> + + Added UG translation + +2010-10-29 Gheyret T.Kenji <gheyret@gmail.com> + + Added UG translation + +2010-10-29 Carles Ferrando <carles.ferrando@gmail.com> + + Updated Catalan (Valencian) translation + +2010-10-20 Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp> + + Updated Japanese translation + +2010-10-09 Changwoo Ryu <cwryu@debian.org> + + Updated Korean translation + +2010-09-27 Jonh Wendell <jwendell@gnome.org> + + 2.32.0 + +2010-09-27 Jonh Wendell <jwendell@gnome.org> + + Updated m4 folder + +2010-09-27 Baurzhan Muftakhidinov <baurthefirst@gmail.com> + + Initial translation to Kazakh + +2010-09-19 Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp> + + Updated Japanese translation + +2010-08-30 Jonh Wendell <jwendell@gnome.org> + + 2.31.91 + +2010-07-21 Fran Diéguez <fran.dieguez@mabishu.com> + + Updated Galician translations + +2010-07-20 krishnababu k <kkrothap@redhat.ocm> + + Updated Telugu Translations + +2010-07-12 Ryan Lortie <desrt@desrt.ca> + + keyring fixes + +2010-07-11 Petr Kovar <pknbe@volny.cz> + + Update Czech translation by Marek Cernocky + +2010-07-07 Ryan Lortie <desrt@desrt.ca> + + soup_session_abort() does callbacks still + + so don't do the cleanup work that the handler will + +2010-07-07 Ryan Lortie <desrt@desrt.ca> + + okay. preferences are done now. + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + radio button tweak + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + exit immediately if not enabled + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + radio buttons are working + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + more progress... + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + more... + +2010-07-05 Ryan Lortie <desrt@desrt.ca> + + remove GConf from server + +2010-07-04 Ryan Lortie <desrt@desrt.ca> + + remove generated files, bump depends + +2010-07-04 Ryan Lortie <desrt@desrt.ca> + + Drop GConf schemas + +2010-07-04 Ryan Lortie <desrt@desrt.ca> + + GSettings + GDBus + GtkApplication + + goodbye to GConf, dbus-glib, libunique + +2010-07-03 Kristjan Schmidt <kristjan.schmidt@googlemail.com> + + Add Esperanto translation + +2010-07-03 Kristjan Schmidt <kristjan.schmidt@googlemail.com> + + Add Esperanto translation + +2010-06-29 Jonh Wendell <jwendell@gnome.org> + + 2.31.4 + +2010-06-29 Jonh Wendell <jwendell@gnome.org> + + Use debug autoconf checks provided by gnome-common + +2010-06-29 Jonh Wendell <jwendell@gnome.org> + + Modernize autotools + +2010-06-21 Halton Huo <halton.huo@sun.com> + + Make code is compatible with diffrent ifaddrs strcucture + + OpenSolaris (after b137) uses "struct sockaddr_storage", not "struct sockaddr" + for ifa_addr member of "struct ifaddrs". This is followed RFC2553. Before + BSD and Linux systems move to follow RFC2553, the codes need to be compiled + under both cases. + + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=617848 + +2010-06-21 Jonh Wendell <jwendell@gnome.org> + + Added some comments for translators + + Closes #614112. + +2010-06-21 Jonh Wendell <jwendell@gnome.org> + + Fixed POTFILES.in + +2010-06-21 Jonh Wendell <jwendell@gnome.org> + + Get rid of SexyUrlLabel + +2010-06-21 Marcus Carlson <gnomebugzilla@mejlamej.nu> + + Use GtkInfoBar + +2010-06-21 Thomas Hindoe Paaboel Andersen <phomes@gmail.com> + + Use AM_SILENT_RULES + +2010-06-21 Javier Jardón <jjardon@gnome.org> + + Use GtkSpinner + + Instead own copy of gedit-spinner + + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=612503 + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Activate the Telepathy service instead of the Vino one + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + add Telepathy client file + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + No need to wait that the connection and channel are ready + + TpSimpleHandler prepare them for us. + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + tube-server: replace tube-path and channel-properties props by the TpChannel itself + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + tube-server: replace the connection-path property by the connection itself + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + remove ShareWithTube D-Bus method + + We don't need it any more as Vino is proper channel handler. + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + Be a proper Handler + +2010-06-18 Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> + + bump telepathy-glib dep to 0.11.6 + + We need it for TpSimpleHandler. + +2010-06-07 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2010-06-07 Sira Nokyoongtong <gumaraa@gmail.com> + + Updated Thai translation. + +2010-05-29 Priit Laes <plaes@plaes.org> + + Estonian translation updated + +2010-05-18 Thomas Thurman <tthurman@gnome.org> + + Updated Shavian translation + +2010-05-12 Thomas Thurman <tthurman@gnome.org> + + Updated Shavian transliteration + +2010-04-26 Andika Triwidada <andika@gmail.com> + + Updated Indonesian translation + +2010-04-25 Leonid Kanter <leon@asplinux.ru> + + fixed https://bugzilla.gnome.org/show_bug.cgi?id=616359 Please enter the commit message for your changes. Lines starting + +2010-04-21 Carles Ferrando <carles.ferrando@gmail.com> + + Updated Catalan (Valencian) translation + +2010-04-18 Luca Ferretti <lferrett@gnome.org> + + Udated Italian translation + +2010-04-08 Theppitak Karoonboonyanan <thep@linux.thai.net> + + Updated Thai translation. + +2010-03-30 Jonh Wendell <jwendell@voipforall.com.br> + + 2.28.2 + +2010-03-29 Jordi Serratosa <jordis.lists@gmail.com> + + Fixes to Catalan translation + +2010-03-29 Sweta Kothari <swkothar@redhat.com> + + Updated Gujarati Translations + +2010-03-28 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation + +2010-03-28 Jamil Ahmed <itsjamil@gmail.com> + + Updated Bengali translation + +2010-03-27 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2010-03-24 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2010-03-20 Wouter Bolsterlee <wbolster@gnome.org> + + Dutch translation updated by Wouter Bolsterlee + +2010-03-13 Torstein Adolf Winterseth <kvikende@fsfe.org> + + Updated Norwegian Nynorsk translation + +2010-03-07 Peteris Krisjanis <pecisk@gmail.com> + + Updated Latvian translation. + +2010-02-26 Piotr Drąg <piotrdrag@gmail.com> + + Updated Polish translation + +2010-02-15 Fran Diéguez <frandieguez@ubuntu.com> + + Updated Galician Translation + +2010-01-24 Kenneth Nielsen <k.nielsen81@gmail.com> + + Updated Danish translation + +2010-01-04 Xandru Armesto Fernandez <xandru@softastur.org> + + Updated asturian translation + +2009-11-24 Tao Wei <weitao1979@gmail.com> + + Updated Simplified Chinese translation. + +2009-11-17 Peteris Krisjanis <pecisk@gmail.com> + + Updated Latvian translation. + +2009-11-15 Thomas Thurman <tthurman@gnome.org> + + Shavian translation + +2009-10-20 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation + +2009-10-19 Jonh Wendell <jwendell@gnome.org> + + Check if mDNS is active before asking for a local hostname. + + Closes Ubuntu #440712. + +2009-10-19 Jonh Wendell <jwendell@gnome.org> + + 2.28.1 release + +2009-10-15 Matthias Clasen <mclasen@redhat.com> + + Don't use restart feature of session manager + +2009-10-15 Jasper Lievisse Adriaanse <jasper@humppa.nl> + + Fix build in OpenBSD + +2009-10-13 Takeshi AIHANA <takeshi.aihana@gmail.com> + + 2009-10-13 Updated Japanese translation. + +2009-10-06 Leonid Kanter <leon@asplinux.ru> + + Updated Russian translation by Eugenia Vlasova <jane.vlasova@gmail.com> + +2009-09-26 Tomasz Dominikowski <dominikowski@gmail.com> + + Updated Polish translation + +2009-09-21 Jonh Wendell <jwendell@gnome.org> + + 2.28.0 release + +2009-09-21 Shankar Prasad <svenkate@redhat.com> + + Updated Kannada(kn) translation + +2009-09-21 Joan Duran <jodufi@gmail.com> + + Updated Catalan translation + +2009-09-20 Amitakhya Phukan <aphukan@fedoraproject.org> + + Updating Assamese translations. + +2009-09-19 Christian Kirbach <Christian.Kirbach@googlemail.com> + + Updated German translation + +2009-09-19 Kostas Papadimas <pkst@gnome.org> + + Updated Greek translation. + +2009-09-19 Pavel Šefránek <pavel.sefranek@gmail.com> + + Update Czech translation + +2009-09-19 Rajesh Ranjan <rranjan@rranjan.csb> + + maithili update, translated by Sangeeta Kumari + +2009-09-18 Luca Ferretti <elle.uca@libero.it> + + Added Italian translation + +2009-09-18 Matej Urbančič <mateju@svn.gnome.org> + + Updated Slovenian translation + +2009-09-17 Adi Roiban <adi@roiban.ro> + + Updated Romanian translation + +2009-09-17 Maxim V. Dziumanenko <dziumanenko@gmail.com> + + Added Ukrainian translation + +2009-09-17 Manoj Kumar Giri <mgiri@mgiri.csb> + + Upadated Oriya Translation + +2009-09-17 Shankar Prasad <svenkate@redhat.com> + + Updated Kannada(kn) translation + +2009-09-14 Carles Ferrando <carles.ferrando@gmail.com> + + Added Catalan (Valencian) translation + +2009-09-14 Kjartan Maraas <kmaraas@gnome.org> + + Update Norwegian bokmål translation. + +2009-09-14 Rajesh Ranjan <rranjan@rranjan.csb> + + hindi update by Rajesh Ranjan + +2009-09-12 Bruce Cowan <bcowan@fastmail.co.uk> + + Updated British English translation + +2009-09-12 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2009-09-11 Fábio Nogueira <fnogueira@gnome.org> + + Corrected some inconsistencies about quotations marks in Brazilian Portuguese translation + +2009-09-11 Ani <peter.ani@gmail.com> + + Updaeted Malayalam Translations + +2009-09-11 krishnababu k <kkrothap@redhat.ocm> + + Updated Telugu Translations + +2009-09-10 Rajesh Ranjan <rranjan@rranjan.csb> + + hindi update by Rajesh Ranjan + +2009-09-10 Gabor Kelemen <kelemeng@gnome.hu> + + Hungarian translation updated + +2009-09-07 Jonh Wendell <jwendell@gnome.org> + + 2.27.92 release + +2009-09-06 G Karunakar <karunakar@indlinux.org> + + Updated Hindi translation + +2009-09-06 Tomasz Torcz <zdzichu@irc.pl> + + Fixed a warning in libgcrypt initialization + +2009-09-06 Jonh Wendell <jwendell@gnome.org> + + Use integer (instead of double) as the port parameter in dbus calls. + + Regression in the tube merge. Closes #594104. + +2009-09-06 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2009-09-05 Ivar Smolin <okul@linux.ee> + + Updating Estonian translation + +2009-09-05 Jamil Ahmed <itsjamil@gmail.com> + + Updated Bengali translation + +2009-09-04 A S Alam <aalam@users.sf.net> + + Updating Translation for Punjabi + +2009-09-03 Jonh Wendell <jwendell@gnome.org> + + Make Avahi use the VinoServer interface. + + Closes #593191 - Still publishing over avahi if network_interface is set + +2009-09-01 Kjartan Maraas <kmaraas@gnome.org> + + Update Norwegian bokmål translation. + +2009-08-31 Khaled Hosny <khaledhosny@eglug.org> + + Updated Arabic translation + +2009-08-31 Sandeep Shedmake <sshedmak@redhat.com> + + Updated Marathi Translations + +2009-08-30 Baris Cicek <baris@teamforce.name.tr> + + Updated Turkish translation. + +2009-08-29 Tomasz Dominikowski <dominikowski@gmail.com> + + Updated Polish translation + +2009-08-29 Changwoo Ryu <cwryu@debian.org> + + Update Korean translation + +2009-08-28 Jonh Wendell <jwendell@gnome.org> + + Use dprintf instead of g_printerr + +2009-08-28 Jonh Wendell <jwendell@gnome.org> + + Use dprintf with the new category 'tube' instead of g_debug/g_printerr + +2009-08-28 Jonh Wendell <jwendell@gnome.org> + + Added "tube" category to dprintf debug messages. + +2009-08-28 Jonh Wendell <jwendell@gnome.org> + + Fixed programming style. Also use dprintf instead of g_debug. + +2009-08-28 Jonh Wendell <jwendell@gnome.org> + + Fix a regression that allows more than one instance od the server to run. + + It was introduced in Telepathy Tube stuff. + +2009-08-28 Sweta Kothari <swkothar@redhat.com> + + Updated Gujarati Translations + +2009-08-28 Miloš Popović <mpopovic@src.gnome.org> + + Updated Serbian translation + +2009-08-28 Miloš Popović <mpopovic@src.gnome.org> + + Updated Serbian translation + +2009-08-27 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + Updated Basque language + +2009-08-26 ifelix <ifelix@redhat.com> + + Updated Tamil Translations + +2009-08-25 Duarte Loreto <happyguy_pt@hotmail.com> + + Updated Portuguese translation + +2009-08-25 Jonh Wendell <jwendell@gnome.org> + + Updated Brazilian Portuguese translation + +2009-08-25 Jonh Wendell <jwendell@gnome.org> + + 2.27.91 release + +2009-08-25 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + VinoTubeServer uses the mc5 avatar cache and no more the mc4 avatar cache + +2009-08-25 Runa Bhattacharjee <runab@redhat.com> + + Updated Bengali India Translations + +2009-08-23 Gintautas Miliauskas <gintautas@miliauskas.lt> + + Updated Lithuanian translation. + +2009-08-22 Claude Paroz <claude@2xlibre.net> + + Updated French translation + +2009-08-20 Alexander Shopov <ash@contact.bg> + + Updated Bulgarian translation + +2009-08-19 Antón Méixome <meixome@mancomun.org> + + Updated Galician Translation + +2009-08-17 Seán de Búrca <leftmostcat@gmail.com> + + Added Irish translation + +2009-08-15 Tommi Vainikainen <thv@iki.fi> + + Updated Finnish translation + +2009-08-13 Jorge González <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-08-13 Jochen Skulj <jochen@jochenskulj.de> + + Updated German translation + +2009-08-13 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2009-08-13 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2009-08-13 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2009-08-12 Mattias Põldaru <mahfiaz gmail com> + + Updating Estonian translation + +2009-08-12 Jonh Wendell <jwendell@gnome.org> + + Return values other than zero if the program fails. + +2009-08-12 Jonh Wendell <jwendell@gnome.org> + + Do not crash if a GConf server is not available. Ubuntu #267760. + +2009-08-12 Antón Méixome <meixome@mancoumun.org> + + Updated Galician translation + +2009-08-12 Tommi Vainikainen <thv@iki.fi> + + Updated Finnish translation + +2009-08-11 Jonh Wendell <jwendell@gnome.org> + + 2.27.90 release + +2009-08-11 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2009-08-06 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation. + +2009-08-06 Kjartan Maraas <kmaraas@gnome.org> + + Updated Norwegian bokmål translation. + +2009-08-06 Fran Dieguez <fran.dieguez@glug.es> + + Updated Galician Translation + +2009-08-06 Jonh Wendell <jwendell@gnome.org> + + Fix a compiler warning, closes #590765 + +2009-08-04 Jorge González <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-07-29 Robert Ancell <robert.ancell@gmail.com> + + Undo Changelog change (Changelog no longer used) + +2009-07-29 Robert Ancell <robert.ancell@gmail.com> + + Change linking order so that external libraries are linked after vino code. Closes #589953. + +2009-07-29 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2009-07-28 Mattias Põldaru <mahfiaz gmail com> + + Updating Estonian translation + +2009-07-27 Jonh Wendell <jwendell@gnome.org> + + 2.27.5 release + +2009-07-27 Jonh Wendell <jwendell@gnome.org> + + Fixed POTFILES.in + +2009-07-27 Jonh Wendell <jwendell@gnome.org> + + Added dbus-interface.xml to Makefile's extra_dist + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Remove telepathy stuff in VinoStatusIcon + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Instantiate VinoTubeServersManager to use VinoStatusTubeIcon + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Instantiate VinoStatusTubeIcon in VinoTubeServer + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Remove an useless method + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add display_status_icon property to set if the VinoServer will use the vino status icon or not + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Instantiate vino-types.h in VinoTubeServer + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Instantiate vino-types.h in VinoServer + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add the new files to the makefile + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add vino-types.h to allow multi inclusion + +2009-07-23 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add VinoStatusTubeIcon files + +2009-07-22 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +2009-07-07 Daniel Nylander <po@danielnylander.se> + + Updated Swedish translation + +2009-07-07 Yaron Shahrabani <sh.yaron@gmail.com> + + Updated Hebrew translation + +2009-07-02 Laurent Coudeur <laurentc@iol.ie> + + Updated French translation + +2009-07-01 Maxim V. Dziumanenko <dziumanenko@gmail.com> + + Updated Ukrainian translation + +2009-07-01 Maxim V. Dziumanenko <dziumanenko@gmail.com> + + Updated Ukrainian translation + +2009-06-25 Mattias Põldaru <mahfiaz gmail com> + + Updating Estonian translation + +2009-06-24 A S Alam <aalam@users.sf.net> + + updating translation for Punjabi + +2009-06-23 drtvasudevan <agnihot3@gmail.com> + + Updated Tamil translation + +2009-06-21 Javier Jardón <javierjc1982@gmail.com> + + Fix ui files directory + + * capplet/vino-url-webservice.c + (vino_url_webservice_get_random) + +2009-06-21 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-06-21 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-06-20 Funda Wang <fundawang@gmail.com> + + fix Bug 584330 – vino does not build with gnutls 2.8 + +2009-06-20 Claude Paroz <claude@2xlibre.net> + + fix Bug 586455 – Remove markup from translatable strings + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + Added missing files to POTFILES.in + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + Fix Bug 330691 – show .local hostname if avahi is present + +2009-06-19 Javier Jardón <javierjc1982@gmail.com> + + Migrate from libglade to GtkBuilder (solves GnomeBug:582507) + + * capplet/Makefile.am + * capplet/vino-preferences.c + (vino_preferences_dialog_setup_allowed_toggle), + (vino_preferences_dialog_setup_prompt_enabled_toggle), + (vino_preferences_dialog_setup_view_only_toggle), + (vino_preferences_dialog_setup_icon_visibility), + (vino_preferences_dialog_get_use_password), + (vino_preferences_dialog_setup_password_entry), + (vino_preferences_dialog_setup_use_upnp_toggle), + (vino_preferences_dialog_setup_message_box), + (vino_preferences_start_listening), + (vino_preferences_dialog_init), + (vino_preferences_dialog_finalize) + * capplet/vino-preferences.glade: removed + * capplet/vino-preferences.ui: new ui file + * configure.in + * po/POTFILES.in + * server/Makefile.am + * server/vino-prompt.c + (vino_prompt_handle_dialog_response), + (vino_prompt_setup_icons) + * server/vino-prompt.glade: removed + * server/vino-prompt.ui: new ui file + +2009-06-19 Theppitak Karoonboonyanan <thep@linux.thai.net> + + Fix Bug 585838 – vino fails to build outside source tree + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + Drop libgnome dependency. Use EggSmClient. Closes #500632. + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + fixed a warning + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + ignore a file + +2009-06-19 Jonh Wendell <jwendell@gnome.org> + + removed a warning + +2009-06-15 Ivar Smolin <okul@linux.ee> + + Updating Estonian translation + +2009-06-13 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-06-12 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add the avatar's contact in vino notification + +2009-06-12 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add TpContact Alias in the status notification + +2009-06-07 Javier Jardón <javierjc1982@gmail.com> + + Use accessor functions instead direct access (closes GnomeBug:585042) + + * capplet/vino-preferences.c + (vino_preferences_dialog_setup_allowed_toggle) + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Instantiate VinoTubeServer in Vino + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Remove an useless define + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Adding new files to Makefile + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Adding the tp-glib dependency + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add VinoDbusError files + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add VinoTubeServersManager + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add VinoTubeServer + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add ShareWithTube dbus method + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add service file for vino + +2009-06-07 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Add use_dbus_listener property to make VinoServer more flexible + +2009-05-30 Ask H. Larsen <asklarsen@gmail.com> + + Updated Danish translation + +2009-05-23 drtvasudevan <agnihot3@gmail.com> + + Updated Tamil translation + +2009-05-23 drtvasudevan <agnihot3@gmail.com> + + Updated Tamil translation + +2009-05-19 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Old g-object style removed + +2009-05-19 Alexander Shopov <ash@contact.bg> + + Updated Bulgarian translation + +2009-05-17 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + Updated Spanish translation + +2009-05-17 Jonh Wendell <jwendell@gnome.org> + + Ignoring vino.pot + +2009-05-17 Jonh Wendell <jwendell@gnome.org> + + Updated Brazilian Portuguese translation + +2009-05-17 Jonh Wendell <jwendell@gnome.org> + + Ignoring dbus-interface-glue.h + +2009-05-17 Gabor Kelemen <kelemeng@gnome.hu> + + Hungarian translation updated + +2009-05-16 Alexis Ballier <aballier@gentoo.org> + + Include netinet/in.h for sockaddr_in. POSIX specifies the declaration to be there, this is not a problem on Linux because other headers already include it but on FreeBSD it is. + +2009-05-15 Matej Urban <matej.urban@gmail.com> + + Updated Slovenian translation + +2009-05-15 Ivar Smolin <okul@linux.ee> + + Updating Estonian translation + +2009-05-15 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + fix bug 582619 - remove unused function + +2009-05-15 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + fix bug 582608 - set pointers to NULL after freeing, otherwise you can't create a VinoServer after the destruction of another + +2009-05-13 Marios Zindilis <m.zindilis@dmajor.org> + + Updated Greel translation + +2009-05-12 Claude Paroz <claude@2xlibre.net> + + Updated French translation + +2009-05-12 Luca Ferretti <elle.uca@libero.it> + + Fix UTF-8 encoding declaration + +2009-05-12 Luca Ferretti <elle.uca@libero.it> + + Updated Italian translation + +2009-05-12 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + port from libdbus to dbus-glib + +2009-05-12 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + Generate DBus interface glue + +2009-05-12 Arnaud Maillet <arnaud.maillet@collabora.co.uk> + + add xml file + +2009-05-12 Halton Huo <halton.huo@sun.com> + + Fixes bug #581822 - vino server can not detect the real IP address On Solaris. + +2009-05-08 Halton Huo <halton.huo@sun.com> + + * server/vino-dbus-listener.c: + (get_local_hostname): Use strncmp rather than strcmp to deal with different + loopback interface for Linux and Solaris. + +2009-05-11 kutio <kutioo@gmail.com> + + fix bug 580114 + + fix bug 580114 + +2009-05-11 Jonh Wendell <jwendell@gnome.org> + + Added an option to disable XDamage extension. + + In some environments the XDamage extension does not work properly + on 3D desktops. This adds a boolean gconf key 'disable_xdamage'. + If it is set to TRUE, VinoFB object willl not use it. Closes #533613. + +2009-05-03 Javier Jardón <javierjc1982@gmail.com> + + Use g_timeout_add_seconds to reduce wakeups (closes:GnomeBug #581204) + + * server/vino-server.c + (vino_server_defer_client_auth) + +2009-05-02 Thomas Hindoe Paaboel Andersen <phomes@gmail.com> + + Replace deprecated gtk_status_icon_set_tooltip + + Use gtk_status_icon_set_tooltip_text instead. Also bumps required gtk to 2.16 as needed for gtk_status_icon_set_tooltip_text. + GNOME Bug #578463 + +2009-05-02 Jonh Wendell <jwendell@gnome.org> + + Removed a warning + +2009-05-02 Jonh Wendell <jwendell@gnome.org> + + Fixed vino.doap + +2009-05-02 Jonh Wendell <jwendell@gnome.org> + + Added .gitignore + +2009-04-20 Jonh Wendell <jwendell@gnome.org> + + Added vino.doap file + +2009-04-15 Ihar Hrachyshka <iharh@src.gnome.org> + + Added Belarusian translation. + + svn path=/trunk/; revision=1169 + diff --git a/ChangeLog.pre-git b/ChangeLog.pre-git new file mode 100644 index 0000000..349830f --- /dev/null +++ b/ChangeLog.pre-git @@ -0,0 +1,3638 @@ +2009-04-13 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.26.2 + +==================== 2.26.1 ======================= + +2009-03-19 Jonh Wendell <jwendell@gnome.org> + + * configure.in: Fixes bug #575860 – Regenerating autotools always + tries to compile libifaddr. Thanks to Patryk Zawadzki. + +2009-03-16 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.26.1 + +==================== 2.26.0 ======================= + +2009-03-02 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.26.0 + +==================== 2.25.92 ======================= + +2009-03-02 Jonh Wendell <jwendell@gnome.org> + + * server/vino-upnp.c: More work on NetworkManager integration as + well be more careful when adding ports on the router. + +2009-02-27 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c, + * server/vino-mdns.[ch], + * server/vino-dbus-listener.c: + Fixes #330691 – show .local hostname if avahi is present. + +2009-02-26 Jonh Wendell <jwendell@gnome.org> + + * configure.in, + * server/Makefile.am, + * server/vino-upnp.c: Added dependency on NetworkManager. Monitor for + network state changes and redo the UPnP forward. + New configure flag: --enable-network-manager. If not set, enable it + anyway if NetworkManager libraries are found. Requires NM 0.7. + +2009-02-16 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.25.92 + +==================== 2.25.91 ======================= + +2009-02-13 Jonh Wendell <jwendell@gnome.org> + + * session/: Removed. It's unsed since 2.24, which makes use of new + gnome-session to control vino's life cycle. This avoids things like + bug #571751 being reported. + +2009-02-13 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.desktop.in.in: + Changed the tooltip of capplet menu item. Closes #542338. + +2009-02-13 Jonh Wendell <jwendell@gnome.org> + + Moved ifaddrs.h and getifaddrs.c to their own directory, and only + #include them if system ifaddrs.h is not present. + +2009-02-13 Claude Paroz <claude@2xlibre.net> + + reviewed by: Jonh Wendell <jwendell@gnome.org> + + * tools/vino-passwd.c: (vino_passwd_read): Use ngettext to handle + translation of "%d characters". + Closes #556767. + +2009-02-12 Claude Paroz <claude@2xlibre.net> + + * capplet/vino-preferences.glade: Don't mark "spacing" labels as + translatable. + +2009-02-05 Jonh Wendell <jwendell@gnome.org> + + * server/Makefile.am: Install autostart desktop file in + $sysconfdir/xdg/autostart. Usually you should pass the argument + --sysconfdir=/etc to configure (or autogen.sh) script. + Closes #568755. + +2009-02-02 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.25.91 + +==================== 2.25.90 ======================= + +2009-01-25 Jonh Wendell <jwendell@gnome.org> + + * server/vino-dbus-listener.c (get_local_hostname): Show an IP address + instead of the machine name. + +2009-01-25 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.glade: Put a tooltip in the password entry + telling that the maximum size is 8 chars. Closes #569031. + +2009-01-23 Jonh Wendell <jwendell@gnome.org> + + Make use of a file containinig URLs of WebServices, instead of hard + code. + * capplet/webservices: The file with the URLs. + * capplet/vino-url-webservice.[ch]: Provide a function to retrieve + a URL from the file. + * capplet/vino-preferences.c: Use the function above instead of + hard coding the URL. + +2009-01-22 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.[c,glade]: + Use an eventbox in the connectivity label, closes #568690. + +2009-01-22 Jonh Wendell <jwendell@gnome.org> + + * server/vino-status-icon.c (vino_status_icon_add_client): + Only show notification if the status icon is visible. + Closes Ubuntu #318708. + +2009-01-22 Halton Huo <halton.huo@sun.com> + + Fix typo. Closes #568646 + * server/vino-dbus-listener.c: + (vino_dbus_listener_handle_get_internal_data): + +2009-01-21 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.25.90 + +==================== 2.25.5 ======================= + +2009-01-21 Jonh Wendell <jwendell@gnome.org> + + * lots of files: Rewrite of capplet, hiding some advanced features. + Also, we check now if the machine can be accessed through the Internet. + +2009-01-08 Halton Huo <halton.huo@sun.com> + + Use self-implmented getifaddrs() and freeifaddrs() when system like + Solaris does not have them. Closes #565422 + * capplet/Makefile.am: + * configure.in: + * server/libvncserver/Makefile.am: + * server/libvncserver/getifaddrs.c: (get_lifreq), (nbytes), + (addrcpy), (populate), (getifaddrs), (freeifaddrs): + * server/libvncserver/ifaddrs.h: + +2009-01-05 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.25.5 + +==================== 2.25.4 ======================= + +2008-12-23 Jonh Wendell <jwendell@gnome.org> + + * server/vino-fb.c (vino_fb_init_xdamage): + Don't check if we are running at a composited screen and disable + XDamage extension. This should work fine nowadays. + +2008-12-22 Jonh Wendell <jwendell@gnome.org> + + * server/libvncserver/rfbserver.c (rfbSendFramebufferUpdate): + Resets cursorWasMoved and cursorWasChanged flags, thus eliminating + mouse update changes, when there's no mouse change. Closes #494059. + Thanks to Oliver Gerlich for the patch. + +2008-12-17 Jonh Wendell <jwendell@gnome.org> + + Added UPnP support. Created a new boolean gconf key called use_upnp. + For now, no GUI changes. Closes #564853. + + * server/miniupnp/*: miniUPnP files + * server/vino-upnp.[ch]: New class + * server/vino-server.[ch]: Use new VinoUpnp class + * server/vino-prefs.c: New gconf key: use_upnp + * server/vino-utils.[ch], + * docs/debugging.txt: Added UPnP debug stuff + +2008-12-16 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c: Simulate a user activity through gnome-screensaver + when a client connects, thus not showing the screensaver animation + to the client. Closes #562548. + +2008-12-16 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.25.4 + +==================== 2.25.3 ======================= + +2008-11-25 Jorge Pereira <jorge@jorgepereira.com.br> + + * server/vino-background.c: (vino_background_get_status): + * server/vino-background.h: + * server/vino-prefs.c: (vino_prefs_init), (vino_prefs_shutdown), + (vino_prefs_restore), (vino_prefs_lock), (vino_prefs_unlock): + Disable wallpaper on connection + restart = wallpaper gone + forever. Closes #562281. + +2008-11-25 Jorge Pereira <jorge@jorgepereira.com.br> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_update_for_allowed), + (vino_preferences_load_network_interfaces), + (vino_preferences_dialog_network_interface_update_combox), + (vino_preferences_dialog_network_interface_notify), + (vino_preferences_dialog_network_interface_changed), + (vino_preferences_dialog_setup_network_interface_combox), + (vino_preferences_dialog_init): + * capplet/vino-preferences.glade: + * configure.in: + * server/libvncserver/main.c: (rfbGetScreen): + * server/libvncserver/rfb/rfb.h: + * server/libvncserver/rfbserver.c: (rfbNewClient): + * server/libvncserver/sockets.c: (rfbInitListenSock), + (rfbSetAutoPort), (rfbSetPort), (rfbProcessNewConnection), + (rfbCheckFds), (ListenOnTCPPort), (NewSocketListenTCP), + (rfbSetNetworkInterface): + * server/vino-prefs.c: (vino_prefs_network_interface_changed), + (vino_prefs_create_server), (vino_prefs_init): + * server/vino-server.c: (vino_server_new_connection_pending), + (vino_server_init_from_screen), (vino_server_finalize), + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init), (vino_server_get_network_interface), + (vino_server_set_network_interface): + * server/vino-server.h: + * server/vino-server.schemas.in: + Removed the feature localOnly, added correct support for IPv4 mapped + IPv6, and added a new feature to able to set network interface for + accept connection. Closes #403183,#403192,#488354. + +2008-11-17 Jonh Wendell <jwendell@gnome.org> + + * server/vino-utils.[ch]: Added a new utility function: + vino_util_show_error(). + * server/vino-status-icon.c: Don't use gnome-open anymore. Use + gtk_show_uri instead, and, in case of error, use the new helper + function to show an error dialog. Based on a patch from Emilio + Pozuelo Monfort. Closes #561034. + +2008-11-13 Jonh Wendell <jwendell@gnome.org> + + * tools/vino-passwd.c (vino_passwd_change): Remove a deprecated + GLib symbol. Closes #560450. + +2008-11-13 Jorge Pereira <jorge@jorgepereira.com.br> + * server/libvncserver/auth.c: + * server/libvncserver/main.c: + * server/libvncserver/rfbserver.c: + * server/vino-prefs.c: + * server/vino-util.h: + * tools/vino-passwd.c: + Drop some warning messages. + Closes #558135. + +2008-10-22 Jorge Pereira <jorge@jorgepereira.com.br> + * tools/vino-passwd.c: (vino_passwd_read): + Do not show "Core Dumped" when receive "Ctrl+C". + Closes #557454. + +2008-10-22 Jonh Wendell <jwendell@gnome.org> + + * configure.in: bump version to 2.25.1 + * capplet/vino-preferences.[c,glade]: + Replaced the LinkButton with a Label and a Button, this allows the + user to copy the text and gives more space to add more buttons in + the future. + Also, we show a message when the server is not running, instead of + always show the URL. This closes #513705. + +2008-10-20 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.24.2 + +==================== 2.24.1 ====================== + +2008-10-20 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c: Only restore the wallpaper when the last + client disconnects. Closes LP: #266932. + +2008-10-10 Jonh Wendell <jwendell@gnome.org> + + * server/vino-prompt.[c,glade]: Hopefully fix an window empty bug. + Closes #161180. + +2008-10-08 Jonh Wendell <jwendell@gnome.org> + + Update label in vino-preferences when the port changes. + + * server/vino-dbus-listener.c: Send a dbus signal when port changes. + * capplet/vino-preferences.c: Listen to this signal and updates + the label. + +2008-10-08 Jonh Wendell <jwendell@gnome.org> + + * server/vino-prefs.c: Propagates port changes via avahi. + Closes #555105. + +2008-09-22 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.24.1 + +==================== 2.24.0 ======================= + +2008-09-08 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.24.0 + +==================== 2.23.92 ====================== + +2008-09-04 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.desktop.in.in: Added an icon, closes #550743. + +2008-09-01 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.23.92 + +==================== 2.23.91 ====================== + +2008-09-01 Jonh Wendell <jwendell@gnome.org> + + Make vino work correctly with new gnome-session: + - Dropped bonobo activation. Vino is controlled by gnome-session. + - Made vino-server a gnome-session client, still using libgnomeui. + - The directory session/ is now obsolete. + + * configure.in: + - drop "--enable-session-support"; + - bump d-bus dependency to 1.2.3 + - drop bonobo stuff + * server/GNOME_RemoteDesktop.idl, + * server/GNOME_RemoteDesktop.server.in.in, + * server/vino-shell.[ch]: Deleted + * server/vino-dbus-listener.[ch] (vino_dbus_request_name): + Returns gboolean instead of void. Returns FALSE if there is another + instance running. + * server/vino-main.c (main): Don't use bonobo shell function. Instead, + use vino_dbus_request_name() to exit if there is already an instance + running. + +2008-08-18 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.23.91 + +==================== 2.23.90 ====================== + +2008-08-18 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c: + * configure.in: Get rid of libgnomeui. Requires gtk+ >= 2.13.1 and + glib >= 2.17.0. + +2008-08-11 Halton Huo <halton.huo@sun.com> + + Add vino-server.desktop under /usr/share/gnome/autostart. This is new + autostart mechanism in gnome-session. Closes #546747 + * server/Makefile.am: + * server/vino-server.desktop.in.in: (added) + +2008-07-29 Jonh Wendell <jwendell@gnome.org> + + * capplet/Makefile.am: + * capplet/vino-preferences.c: + * configure.in: Added a compile-time option (--enable-libunique) + to use the LibUnique library, which allows only one instance of + capplet running. + Based on a patch provided by Jorge Pereira <jorge@jorgepereira.com.br>. + +2008-07-26 Wouter Bolsterlee <wbolster@svn.gnome.org> + + Bug 544735 – Use single GTK+ includes + + * server/vino-http.c: + * server/vino-shell.c: + * server/vino-status-icon.h: + * session/vino-session.c: + + Use single <gtk/gtk.h> includes. + +2008-07-25 Jorge Pereira <jorge@jorgepereira.com.br> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_update_for_allowed), + (vino_preferences_dialog_disable_background_toggled), + (vino_preferences_dialog_disable_background_notify), + (vino_preferences_dialog_setup_disable_background_toggle), + (vino_preferences_dialog_init): + * capplet/vino-preferences.glade: + * server/Makefile.am: + * server/vino-background.c: (vino_background_handler), + (vino_background_draw): + * server/vino-background.h: + * server/vino-prefs.c: (vino_prefs_disable_background_changed), + (vino_prefs_create_server), (vino_prefs_init): + * server/vino-server.c: (vino_server_set_disable_background), + (vino_server_get_disable_background), + (vino_server_client_accepted), (vino_server_client_disconnected), + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init): + * server/vino-server.h: + * server/vino-server.schemas.in: + New feature to disable wallpaper when connected to vino. + Close #515072. + +2008-07-25 Matthias Clasen <mclasen@redhat.com> + + * capplet/vino-preferences.glade: Use a standard icon name. + Closes #544639. + +2008-07-24 Halton Huo <halton.huo@sun.com> + + * configure.in: Fix build error in folder tools. Closes #544277. + +2008-07-22 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.23.6 + +==================== 2.23.5 ====================== + +2008-07-22 Jonh Wendell <jwendell@gnome.org> + + * configure.in: pre-release bump version to 2.23.5 + +2008-07-22 Jonh Wendell <jwendell@gnome.org> + + * server/vino-input.c: Fix variable declaration. Closes #544038. + Patch by Alban Crequy. + +2008-07-06 Jorge Pereira <jorge@jorgepereira.com.br> + + * Makefile.am: + * configure.in: + * tools/Makefile.am: + * tools/vino-passwd.c: + * po/POTFILES.in: + * configure.in: + Added a tool to change Vino password, similar to Unix passwd command. + Closes #540853. + +2008-07-02 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.glade: Use default invisible character in + password entry. Closes #541248. + +2008-07-01 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c: Reverted the fix in bug #423027. + The fix was wrong. It's not a vino bug. + +2008-06-25 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.glade: Fix silly strings in the UI. + Closes #516139. + +2008-06-25 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c: Tell people to use vinagre instead of + vncviewer. Closes #521971. + +2008-05-24 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c, + * server/vino-input.[ch]: Fix bug #534262 – cyclic clipboard propagation. + +2008-05-05 Jonh Wendell <jwendell@gnome.org> + + * configure.in: pre-release bump version to 2.23.2 + +==================== 2.22.1 ====================== + +2008-03-13 Jonh Wendell <jwendell@gnome.org> + + * server/vino-status-icon.c (vino_status_icon_remove_client): + Ignore if the client being disconnected is not in our list of + connected clients, thus avoiding the screen to be locked when + that option is enabled. Closes #522058. + +2008-03-13 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.22.1 + +==================== 2.22.0 ====================== + +2008-02-25 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.22.0 + +==================== 2.21.92 ===================== + +2008-02-18 Mark McLoughlin <markmc@redhat.com> + + Fix an issue with vinagre/gtk-vnc where the first + attempted connection fails because gtk-vnc doesn't + send a SetPixelFormat message. + + Narrowed down and tested by Jonh Wendell. + + * server/vino-server.c: (vino_server_handle_new_client): set + the client's pixel format after we've initialized it. + +2008-02-17 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c: + * server/vino-status-icon.c: Fix a crash when client disconnect just + after connecting. + +2008-02-12 Matthias Clasen <mclasen@redhat.com> + + * server/libvncserver/rfbserver.c: + * capplet/vino-preferences.c: Fix the build with recent + glibc by declaring where we use GNU extensions. (#515941) + +2008-02-11 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.21.92 + +==================== 2.21.91 ===================== + +2008-01-28 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.21.91 + +==================== 2.21.90 ===================== + +2008-01-28 Jonh Wendell <jwendell@gnome.org> + + * configure.in, README: pre-release bump version to 2.21.90 + +==================== 2.21.3 ===================== + +2007-12-03 Jonh Wendell <jwendell@gnome.org> + + * configure.in, README: pre-release bump version to 2.21.3 + +2007-11-30 Ross Burton <ross@openedhand.com> + + * configure.in: + The server doesn't need libgnome, just libbonobo (#500632). + +2007-11-27 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c (vino_server_client_disconnected): + Fix a regression, only locks the screen when the *last* client disconnect. + +==================== 2.21.2 ===================== + +2007-11-11 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c, + * capplet/vino-preferences.glade: + More work on user interface + +2007-11-10 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c, + * capplet/vino-preferences.glade: + Added extra stuff, advanced configuration based on tabs (#361891) + +2007-11-09 Jonh Wendell <jwendell@gnome.org> + + * server/vino-main.c, + * server/vino-status-icon.c: Make use of g_[gs]et_application_name() + +2007-11-09 Jonh Wendell <jwendell@gnome.org> + + Added a gconf key to control the behavior of the status icon. + Closes #442696. + + * server/vino-server.[ch]: + (vino_server_get_status_icon): New function + (vino_server_client_accepted), + (vino_server_client_disconnected): Don't create or destroy the icon + object, its life time is the server's life time. + * server/vino-status-icon.[ch]: New property: visibility + (vino_status_icon_update_state): New function, combines tooltip and + visibility properties. + * server/vino-prefs.c, + server/vino-server.schemas.in: Added a new gconf key (icon_visibility) + * server/Makefile.am: Added vino-status-icon.h to vino_enum_headers macro + +==================== 2.21.1 ===================== + +2007-10-19 Dan Winship <danw@gnome.org> + + * server/vino-input.c (vino_input_initialize_keycodes_core): + Finish up the previous fix to completely fix #480544. + +2007-10-19 Jonh Wendell <jwendell@gnome.org> + + * server/vino-status-icon.c (vino_status_icon_popup_menu): + Only show 'disconnect all' popup item in status icon if we have + more than one client connected. + +2007-10-18 Dan Winship <danw@gnome.org> + + * server/vino-input.c (vino_input_initialize_keycodes_core): + Handle another oddity of core keymaps. + (vino_input_init): fix up a bug in the XKB merge; the pointer + mapping was only being initialized in the XKB case, causing clicks + to not work in the core case. #480544 + +2007-10-15 Jonh Wendell <jwendell@gnome.org> + + * server/vino-mdns.c: Better handles disconnection from + avahi-daemon. Thanks to Sebastien Estienne. Closes #415321. + +2007-10-15 Jonh Wendell <jwendell@gnome.org> + + * capplet/vino-preferences.c, + * capplet/vino-preferences.desktop.in.in, + * server/vino-main.c, + * server/vino-status-icon.c, + * server/vino-http.c, + * server/vino-prompt.c: Replaced occurrences of 'gnome-remote-desktop' to + 'preferences-desktop-remote-desktop'. We are not shipping our + own icons anymore. + * configure.in, + * Makefile.am: Dropped references to 'icon/' directory + * icons/ : Dropped + + Thanks to Jaap A. Haitsma for the patch, closes #446523. + +2007-10-15 Jonh Wendell <jwendell@gnome.org> + + * configure.in: Correct version is 2.21.1, am i on drugs? + +2007-10-15 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c, + * server/vino-input.c: Handles clipboard text (Closes #306252) + +2007-10-15 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.21.3 + +==================== 2.20.1 ===================== + +2007-09-17 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump version to 2.20.1 + +==================== 2.20.0 ===================== + +2007-09-17 Jonh Wendell <jwendell@gnome.org> + + * configure.in: pre-release bump version to 2.20.0 + +==================== 2.19.92 ==================== + +2007-09-02 Jonh Wendell <jwendell@gnome.org> + + * configure.in: pre-release bump version to 2.19.92 + +2007-09-02 Jonh Wendell <jwendell@gnome.org> + + * server/vino-fb.c (vino_fb_init_xdamage): + Check if we are running at a composited screen and disable XDamage + extension. We should remove this check when XDamage work perfectly + with 3d desktop. Thanks to Pretto for the testing. Closes #383147. + +2007-09-01 Dan Winship <danw@novell.com> + + * configure.in: check for XKB + + * server/vino-input.c: If the server supports XKB, use that rather + than core X calls to get the keyboard mapping. Add support for + multiple keyboard groups, and watch xkb events to notice when the + keyboard layout changes. + +2007-08-31 Jonh Wendell <jwendell@gnome.org> + + * MAINTAINERS: + Updated to the new format. + +2007-08-30 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.c (vino_server_client_disconnected): + Check if the icon exists before trying to unref it. + +2007-08-13 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump to 2.19.91 + +==================== 2.19.90 ==================== + +2007-08-13 Jonh Wendell <jwendell@gnome.org> + + * configure.in: bump version to to 2.19.90 + +2007-08-06 Jonh Wendell <jwendell@gnome.org> + * server/vino-server.c: (vino_server_auth_client): + Don't call vncEncryptBytes() if the password is NULL, avoiding a + crash (See: Ubuntu #128746) + +2007-08-06 Jonh Wendell <jwendell@gnome.org> + * server/vino-mdns.c: Include hostname in Avahi service name, + closes #461773. + +2007-08-06 Jonh Wendell <jwendell@gnome.org> + * configure.in: Show the configure summary + +2007-07-20 Jonh Wendell <jwendell@gnome.org> + * server/vino-server.schemas.in: Fix some grammar issues, + closes #457138. Thanks to Og Maciel. + +2007-07-09 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump to 2.19.6 + +==================== 2.19.5 ==================== + +2007-07-09 Jonh Wendell <jwendell@gnome.org> + + * configure.in: bump version to to 2.19.5 + +2007-06-30 Jonh Wendell <jwendell@gnome.org> + + * capplet/Makefile.am, + capplet/vino-preferences.c, + server/vino-http.[hc], + server/vino-dbus-listener.c: Show http server address in vino-preferences + if vino is compiled with http support. + Patch from Halton Huo, closes #431635. + +2007-06-30 Jonh Wendell <jwendell@gnome.org> + + * server/vino-main.c, + server/vino-mdns.[hc], + server/vino-prefs.c: Only publish VNC service under Avahi when server + is enabled. Closes #330690. + +2007-06-29 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.schemas.in, + server/vino-server.[hc], + server/vino-prefs.c: Added a new configuration option (gconf key) + 'lock_screen_on_disconnect', which locks the screen when last + user disconnects. Closes #355586. + +2007-06-27 Stef Walter <stef@memberwebs.com> + + * capplet/vino-preferences.c: + * server/vino-server.c: Don't assert on a NULL find result from + gnome-keyring. Closes bug #450074 + +2007-06-09 Jonh Wendell <jwendell@gnome.org> + + * server/vino-dbus-listener.c: Changed introspect_xml variable type + from array to pointer, fixing a crash when dbus Introspect() method + is called. Closes #445525. + +2007-05-23 Jonh Wendell <jwendell@gnome.org> + + * server/vino-input.c: Fix keyboard mapping problem, closes #440429 + +2007-05-08 Jonh Wendell <jwendell@gnome.org> + + * configure.in: Build against libnotify, if it's available (added + --enable-libnotify=auto and make it the default), closes #394467 + +2007-05-07 Jonh Wendell <jwendell@gnome.org> + + * server/Makefile.am, + capplet/Makefile.am: + Use $prefix/share/vino for data in favor of $prefix/share/gnome/vino + Patch from Matthias Clasen, closes #436460 + +2007-05-02 David Farning <dfarning@gmail.com> + + * icons/Makefile.am (update-icon-cache): fix gtk-update-icon-cache + for install and uninstall-hook. + +2007-04-23 Jonh Wendell <jwendell@gnome.org> + + * server/vino-input.c: + Fix crash in mouse wheel movement on non-Xorg system, bug #431627 + Patch from Halton Huo <halton.huo@sun.com> + +2007-04-13 Jonh Wendell <jwendell@gnome.org> + + * server/vino-status-icon.c: + (vino_status_handle_new_client_notification_closed): + Unref notification object, as libnotify bug was fixed. + +2007-04-10 Jonh Wendell <jwendell@gnome.org> + + * server/vino-server.schemas.in: Fix a typo in text, bug #409000 + +2007-04-09 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump to 2.19.1 + +==================== 2.18.1 ==================== + +2007-04-04 Jonh Wendell <jwendell@gnome.org> + * capplet/vino-preferences.c: + (vino_preferences_dialog_password_changed): + Fix crash on critical warning when calling g_base64_encode, + this and previous patch hopefully fix bug #423027 + +2007-04-04 Jonh Wendell <jwendell@gnome.org> + * capplet/vino-preferences.c: + (vino_preferences_dialog_setup_password_entry), + (vino_preferences_vnc_password_notify): + Fix crash on critical warning when calling g_base64_decode, bug #418836 + Patch from Halton Huo <halton.huo@sun.com> + +2007-04-04 Jonh Wendell <jwendell@gnome.org> + + Fix crash on vino_input_init(), fixes bug #425863 + + * server/vino-input.c: Updated VINO_IS_LATIN1_KEYSYM define to check if + the value is less than 0x100. + +2007-03-29 Mark McLoughlin <mark@skynet.ie> + + Fix the non-XDAMAGE, non-XSHM support (bug #423887) + + * server/vino-fb.c: (vino_fb_create_image): create the + XImage data only after allocating the XImage itself + where the actual rowstride is calculated, rather than + making a lame attempt at guessing what rowstride will + be used. + +2007-03-12 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump to 2.18.1 + +==================== 2.18.0 ==================== + +2007-03-06 Jonh Wendell <jwendell@gnome.org> + * capplet/vino-preferences.desktop.in.in: + Remove deprecated categories from the .desktop file + +2007-03-05 Jonh Wendell <jwendell@gnome.org> + * server/vino-status-icon.c: + Allows only one disconnect confirmation dialog running, and + don't use modal window on that dialog, closes #414905. + +2007-02-27 Halton Huo <halton.huo@sun.com> + + * server/vino-http.c: + Add gtk/gtkicontheme.h in vino-http.c for bug #412559. + +2007-02-26 Jonh Wendell <jwendell@gnome.org> + + * configure.in: post-release bump to 2.18.0 + +==================== 2.17.92 ==================== + +2007-02-26 Jonh Wendell <jwendell@gnome.org> + + * configure.in: Version 2.17.92. + + +2007-02-09 Jonh Wendell <jwendell@svn.gnome.org> + + * capplet/vino-preferences.c: + Update the port number (in vino applet) when the server starts, + closes #394005 + +2007-02-02 Jonh Wendell <jwendell@svn.gnome.org> + + * server/vino-status-icon.c: + Show the notification bubble after a timeout, as a workaround + for bug #394462 + +2007-02-02 Mark McLoughlin <mark@skynet.ie> + + Hopefully fix crash when connecting after changing the + screen resolution (bug #357778) + + Thanks to Jonh Wendell for reproducing and suggesting + fixes. + + * server/vino-server.c: (vino_server_setup_framebuffer): + Make sure the screen size gets updated when the first + client connects. + +2007-01-30 Jonh Wendell <jwendell@svn.gnome.org> + + * capplet/vino-preferences.c: + (vino_preferences_vnc_password_notify): + (vino_preferences_dialog_setup_password_entry): + Better handling of gconf values in password field (Bug #400260) + +2007-01-30 Jonh Wendell <jwendell@svn.gnome.org> + + * session/vino-session.c, + server/vino-http.c, + server/vino-prompt.c: Fix minor issues about GnomeIconTheme usage, + yet bug #391850. + +2007-01-18 Jonh Wendell <jwendell@svn.gnome.org> + + * capplet/vino-preferences.desktop.in.in: + Put Vino preferences into the control center's "Internet and Network" + category - Patch from Denis Washington (Closes #394523) + +2007-01-18 Jonh Wendell <jwendell@svn.gnome.org> + + * server/vino-status-icon.c: (vino_status_icon_help): + Uses gnome-open instead of yelp (Closes #391848) + +2007-01-08 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.17.6 + +==================== 2.17.5 ==================== + +2007-01-08 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.17.5. + +2007-01-08 Mark McLoughlin <mark@skynet.ie> + + Display a notification bubble when someone connects + if we haven't already asked the user whether to + allow them. + + Based on a patch from Jonh Wendell in bug #387095 + + * configure.in: add --enable-libnotify + + * server/Makefile.am: link to libnotify + + * server/vino-status-icon.c: Display a notification + bubble when a client connects if the authorization + prompt is disabled. + +2007-01-08 Christian Persch <chpe@svn.gnome.org> + + * server/vino-http.c: (vino_http_lookup_client_logo): + * server/vino-prompt.c: (vino_prompt_setup_icons): + Replace deprecated GnomeIconTheme usage with GtkIconTheme. Bug + #391850. + +2007-01-07 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.c, + server/vino-server.c, + server/vino-dbus-listener.c: don't mark object + property descriptions for translation, but do mark + them as static with G_PARAM_STATIC_NAME etc. + +2007-01-07 Mark McLoughlin <mark@skynet.ie> + + Re-work a fair bit of the D-Bus support e.g. + - Re-name the interface to org.gnome.VinoScreen + - Share a connection between all listeners so that + we don't e.g. request the name more than once + - Remove strange AddMatch/Disconnected handling + - Error handling fixes + - Fix some leaks + - Misc. fixes and code cleanups + + * server/vino-dbus-listener.c: re-name interface, add + shared connection stuff, kill AddMatch/Disconnceted + message handling, fix error handling, fix leaks and + lots of misc. fixing + + * server/vino-dbus-listener.h: add shared connection api + + * server/vino-main.c: (main): request the D-Bus name + here once all the listeners have been created. + + * capplet/vino-preferences.c: (vino_preferences_get_server_port): + Update for interface re-name, fix leak, don't handle impossible + NULL return from dbus_g_proxy_new_for_name(), misc. cleanups. + +2006-12-21 Jonh Wendell <jwendell@cvs.gnome.org> + + Added initial d-bus support, fixing bug #319798 + + * configure.in: Require dbus-glib-1 + + * server/vino-dbus-listener.[ch]: New files + + * server/Makefile.am: Added vino-dbus-listener.[ch] + + * capplet/vino-preferences.c: + (vino_preferences_get_server_port): New function, get server port + number via dbus. + (vino_preferences_get_local_hostname): Call new function; append port + number to function result. + + * server/vino-server.[ch]: Added new object VinoDBusListener; Added new + read-only 'port' property. + + * server/vino-util.[ch]: Added new debug flag: DBUS + +2006-12-18 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.17.5. + +==================== 2.17.4 ==================== + +2006-12-18 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.17.4. + +2006-12-18 Mark McLoughlin <mark@skynet.ie> + + Implement Calum's suggestions from his review of the + status icon UI. Also some code cleanups. Fixes bug #384704 + + * server/vino-main.c: (main): set the default window icon here + + * server/vino-server.[ch]: + (vino_client_disconnect): re-name from vino_server_disconnect_client() + + * server/vino-status-icon.c: + (vino_status_icon_spawn_command): split this helper function out + (vino_status_icon_preferences): user it here + (vino_status_icon_help): and here + (vino_status_icon_about): clean this up; add more authors + (vino_status_icon_disconnect_confirm): split this helper function out + (vino_status_icon_disconnect_client): use it here + (vino_status_icon_disconnect_all_clients): add new function + (vino_status_icon_popup_menu): clean this up and implement calum's + suggestions + (vino_status_icon_activate): pop-up the preferences dialog here + +2006-12-12 Christian Persch <chpe@cvs.gnome.org> + + * server/vino-status-icon.c: (vino_status_icon_finalize), + (vino_status_icon_init), (vino_status_icon_new), + (vino_status_icon_popup_menu), (vino_status_icon_activate), + (vino_status_icon_update_tooltip), (vino_status_icon_class_init): + Fix some buglets and add some improvements. Bug #385058. + +2006-12-12 Andre Klapper <a9016009@gmx.de> + + * server/vino-status-icon.c: correct license string. + fixes bug #384874. + +2006-12-08 Jonh Wendell <jwendell@cvs.gnome.org> + Initial status icon support (Fixes bug #154467) + + * server/vino-status-icon.[ch]: New files + + * server/Makefile.am: Added vino-status-icon.[ch] + + * server/vino-server.[ch]: + (vino_client_get_hostname), + (vino_server_disconnect_client): new functions + (vino_server_handle_prompt_response), + (vino_server_handle_authenticated_client): Call the new + vino_server_client_accepted() + (vino_server_handle_client_gone): Call the new + vino_server_client_disconnected() + +2006-12-07 Mark McLoughlin <mark@skynet.ie> + + Fixes bug #337214 + + * server/vino-prompt.c: (vino_prompt_setup_dialog): + Hide the help button rather than making it insensitive + +2006-12-06 Jonh Wendell <jwendell@cvs.gnome.org> + + * server/vino-server.c: rename VinoServerClientInfo + struct to VinoClient. + +2006-12-06 Mark McLoughlin <mark@skynet.ie> + + * server/vino-prompt.c: use G_DEFINE_TYPE instead of + manually defining it. + +2006-12-06 Mark McLoughlin <mark@skynet.ie> + + Fix broken keyboard handling on Xsun by making use of + Xlib's strange "guess lowercase keysym from upper-case + keycode mapping" logic in XKeycodeToKeysym() + + Based on patch from Halton Huo <halton.huo@sun.com> in + bug #369884 + + * server/vino-input.c: (vino_input_initialize_keycodes): use + XKeycodeToKeysym() rather than XGetKeyboardMapping() to build + our keysym->keycode mapping. + +2006-11-30 Mark McLoughlin <mark@skynet.ie> + + Based on patch from John Wendell <wendell_listas@bani.com.br> + in bug #156967. + + * server/libvncserver/main.c: + (rfbGetScreen): strdup the default desktop name. + (rfbSetDesktopName): add new function. + (rfbScreenCleanup): free the desktop name + + * server/libvncserver/rfb/rfb.h: make desktopName not const + and add rfbSetDesktopName() + + * server/vino-server.c: (vino_server_init_from_screen): set the + desktop name here to user@host + +2006-11-17 Jonh Wendell <jwendell@cvs.gnome.org> + + Fixes bug #376287 - Vino shows the wrong host in 2.17.2 + + * vino/server/libvncserver/rfbserver.c : remove rfbSockaddrToHostname() + function and updated rfbNewClient() so that it gets the right ip/name + from remote machine. + +2006-11-06 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.17.3. + +==================== 2.17.2 ==================== + +2006-11-06 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.17.2. + +2006-10-27 Mark McLoughlin <mark@skynet.ie> + + Use GtkLinkButton instead of VinoURL. + + Patch from Mariano Suárez-Alvarez <mariano.suarezalvarez@gmail.com> + in bug #159216. + + * vino/configure.in: require gtk+ 2.10 + + * vino/capplet/vino-preferences.c: use GtkLinkButton + + * vino/capplet/vino-url.[ch]: remove + + * vino/capplet/Makefile.am: remove vino-url.[ch] + +2006-10-27 Mark McLoughlin <mark@skynet.ie> + + Use glib's base64 functions instead of our own. + + * vino/configure.in: require glib 2.12 + + * vino/server/vino-server.c: (vino_server_auth_client): + Use g_base64_decode() + + * vino/server/vino-util.[ch]: kill vino_base64_unencode() + + * vino/capplet/vino-preferences.c: kill + vino_preferences_dialog_base64_encode() and + vino_preferences_dialog_base64_unencode() + (vino_preferences_vnc_password_notify), + (vino_preferences_dialog_setup_password_entry): + Use g_base64_decode() + (vino_preferences_dialog_password_changed): + Use g_base64_encode() + +2006-10-23 Mark McLoughlin <mark@skynet.ie> + + Fixes bug #345394 - icons do not change when the + icon theme changes. + + * capplet/vino-preferences.c: + (vino_preferences_dialog_setup_icons): use GtkImage + and GtkWindow's icon theme support instead of + GnomeIconTheme. + +2006-10-23 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.glade: manually mark + a few strings as not-translatable. Fingers crossed + that glade won't re-mark them again later. Fixes + bug #331700 + +2006-10-23 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.desktop.in.in: add GTK + category. Fixes bug #328046 + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + Thanks to Srirama Sharma <srirama.sharma@wipro.com> for + the first cut at ipv6 support in bug #310965 + + * vino/server/vino-http.c: (vino_http_create_listening_socket): + Again, if ipv6 support is compiled in, create an ipv6 socket + and fallback to ipv4 if it fails + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + And here's where we actually create an IPv6 socket. + + * vino/server/libvncserver/sockets.c: + (ListenOnTCPPort): if ipv6 support is compiled in, + always try and create an AF_INET6 socket and fallback + to an AF_INET one if it fails. + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + * vino/configure.in: add --enable-ipv6 and check for + IPv6 support. + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + Use inet_ntop() instead of inet_ntoa() + + * vino/server/libvncserver/rfbserver.c: + (rfbSockaddrToHostname): function to use inet_ntop + on ipv4, ipv4-mapped ipv6 and ipv6 addresses. + (rfbNewClient): use it. + + * vino/server/libvncserver/CHANGES: add note. + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + * vino/capplet/vino-preferences.c: + (vino_preferences_get_local_hostname): use getaddrinfo() + instead of gethostbyname() + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + * vino/server/libvncserver/main.c, + vino/server/libvncserver/sockets.c, + vino/server/libvncserver/rfbserver.c, + vino/server/libvncserver/rfb/rfb.h: remove + a heap of threading stuff which we don't + use. + + * vino/server/libvncserver/CHANGES: add note. + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + Remove some unused sockets code so we don't have + to fix it for IPv6 support. + + * vino/server/libvncserver/sockets.c: + (rfbProcessNewConnection): remove libwrap usage + (rfbConnect), (ConnectToTcpAddr): remove unused + functions + + * vino/server/libvncserver/rfb/rfb.h: remove + rfbConnect() and ConnectToTcpAddr() + + * vino/server/libvncserver/CHANGES: add note + +2006-10-20 Mark McLoughlin <mark@skynet.ie> + + * vino/server/vino-http.c: (vino_http_construct_response): + Fix warning + +2006-10-19 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: (vino_server_handle_client_gone): + Don't remove the io_watch if it's zero - fixes assertion + where client disconnects while it's on hold. + +2006-10-18 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/rfbserver.c: cherry-pick some more + fixes from upstream libvncserver. + +2006-10-18 Mark McLoughlin <mark@skynet.ie> + + Fix issue with the CoRRE encoding saying its only sending + a single rectangle, but sending lots more. Problem identified + by Detlef Schmicker <d.schmicker@physik.de> + + Fix is backported from libvncserver upstream. + + * server/libvncserver/rfbserver.c: + (rfbSendFramebufferUpdate): handle maxRectsPerUpdate for + CoRRE and Zlib encodings. + +2006-10-17 Mark McLoughlin <mark@skynet.ie> + + Add a --enable-gnome-keyring option which causes Vino + to store its configured password in the user's keyring. + Disabled by default, because it's not really a good + idea. See comments in bug #344839 + + Based on a patch from Steven Zhang <steven.zhang@sun.com> + + * configure.in: add --enable-gnome-keyring + + * server/vino-server.c: + (vino_server_get_password_from_keyring): helper to + read the password from the keyring. + (vino_server_auth_client): if keyring support is enabled, + authenticate against the password stored in the keyring. + If there's no password in the keyring, authenticate against + the password in GConf. + + * capplet/vino-preferences.c: + (vino_preferences_dialog_get_password_from_keyring): lookup + the password from the user's keyring. + (vino_preferences_dialog_set_password_in_keyring): store + the password in the user's keyring. + (vino_preferences_dialog_password_changed): store the new + password in the keyring, falling back to GConf if that + fails. + (vino_preferences_dialog_setup_password_entry): read the + password from the keyring, falling back to GConf. Only + watch for changes from GConf if we actually used the + one from GConf in the first place. + (vino_preferences_dialog_init): hack to allow variable + number of listeners. + + * server/Makefile.am, capplet/Makefile.am: build against + gnome-keyring + +2006-10-16 Dan Winship <danw@novell.com> + + * server/vino-fb.c (vino_fb_xdamage_idle_handler): If not using + XShm, use XGetSubImage to get the damaged pixels. + (vino_fb_init_fb_image): Don't call XShmCreatePixmap if not using + XShm. + (vino_fb_init_from_screen): Don't use XShm if the server doesn't + support the shared_pixmaps option. Fixes vino on Xgl. #341186 + +2006-10-16 Dan Winship <danw@novell.com> + + * server/libvncserver/rfb/rfbproto.h (rfbProtocolMinorVersion8): + define this. + + * server/libvncserver/auth.c (rfbAuthNewClient, + rfbAuthProcessSecurityTypeMessage, rfbAuthPasswordChecked): + Minor updates to support RFB 3.8. + + * server/libvncserver/rfbserver.c + (rfbProcessClientProtocolVersion): allow the client to specify + protocol version 3.8 even though we still only advertise 3.7. See + bug #356131. + +2006-10-13 Mark McLoughlin <mark@skynet.ie> + + Add "use_alternative_port" and "alternative_port" GConf + keys, allowing people to specify a specific port to listen + on. + + Based on patch from John Wendell <wendell_listas@bani.com.br> + in bug #333752. + + * vino/server/vino-server.schemas.in: add new keys. + + * vino/server/vino-prefs.c: + (vino_prefs_use_alternative_port_changed), + (vino_prefs_alternative_port_changed): handle changes to new keys + (vino_prefs_create_server): create server with new props + (vino_prefs_init): read new keys and set up notify handlers + + * vino/server/vino-server.[ch]: + (vino_server_init_from_screen): explictly set port and turn + off autoPort if use_alternative_port is set. + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init): add new properties. + (vino_server_get_use_alternative_port), + (vino_server_set_use_alternative_port), + (vino_server_get_alternative_port), + (vino_server_set_alternative_port): add accessors - re-init + the listening port if things change after the server is running. + + * vino/server/libvncserver/sockets.c: + (rfbInitSockets): split out some of this into + (rfbInitListenSock): this. + (rfbSetAutoPort), (rfbSetPort): add these two. + + * vino/server/libvncserver/rfb/rfb.h: add rfbSetAutoPort() + and rfbSetPort(). + + * vino/server/libvncserver/CHANGES: add note. + +2006-10-13 Mark McLoughlin <mark@skynet.ie> + + * vino/server/vino-prefs.c, + vino/server/vino-server.h: re-indent some stuff + for the next patch. + +2006-10-12 Mark McLoughlin <mark@skynet.ie> + + Add a "local_only" GConf key, for people who want to exclusively + use SSH tunnels to access the server. + + Based on patch from Shaya Potter <spotter@cs.columbia.edu> + in bug #156242 + + * server/libvncserver/sockets.c: + (rfbInitSockets): pass rfbScreen->localOnly to ListenOnTcpPort() + (rfbSetLocalOnly): re-bind the socket if localOnly changes. + (ListenOnTcpPort): add localOnly argument and bind with + INADDR_LOOPBACK if true. + + * server/libvncserver/rfb/rfb.h: modify ListenOnTcpPort() + prototype and add rfbSetLocalOnly() + + * server/libvncserver/main.c: (rfbGetScreen): init localOnly. + + * server/libvncserver/CHANGES: add note. + + * server/vino-server.schemas.in: add local_only GConf key + + * server/vino-prefs.c: + (vino_prefs_local_only_changed), + (vino_prefs_create_server), + (vino_prefs_init): add handling for local_only key + + * server/vino-server.[ch]: + (vino_server_init_from_screen): propogate local_only to rfbScreen. + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init): add "local-only" property + (vino_server_get_local_only), + (vino_server_set_local_only): add accessors. Call rfbSetLocalOnly() + if it changes. + +2006-10-11 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: + (vino_server_init_from_screen): call update_security_types() + (vino_server_update_security_types): don't segv if the + screen hasn't been set yet. + + * server/vino-prefs.c: (vino_prefs_create_server): set the + screen last when constructing the server + +2006-10-11 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: (vino_server_get_property): + Fix typo + +2006-10-10 Kjartan Maraas <kmaraas@gnome.org> + + * server/vino-prefs.c: (vino_prefs_init): + Revert the broken leak fix here too. + +2006-10-10 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/Makefile.am: + * server/vino-server.c: (vino_server_set_client_on_hold): + Fix couple of nits + +2006-10-10 Mark McLoughlin <mark@skynet.ie> + + * configure.in: bump version to 2.17.1 - 2.16 development + continues on the gnome-2-16 branch. + +2006-10-10 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.16.1 + +==================== 2.16.0 ==================== + +2006-10-05 Kjartan Maraas <kmaraas@gnome.org> + + * NEWS: Updated. + * server/libvncserver/Makefile.am: Fix for compile error with + LDFLAGS="-Wl,--as-needed". Patch from dgrenier at easyconnect fr. + Closes bug #340377. + +2006-10-05 Kjartan Maraas <kmaraas@gnome.org> + + * server/vino-server.c: (vino_server_set_client_on_hold), + (vino_server_handle_new_client): Fix from Gary Coady to fix + problem where vino-server takes 90% CPU on wrong login. + Closes bug #332011. + +2006-10-05 Kjartan Maraas <kmaraas@gnome.org> + + * server/libvncserver/rfb/rfbproto.h: + * server/vino-fb.c: Build fixes for FreeBSD. Patch from + Diego Pettenò. Closes bug 314311. + +2006-10-05 Kjartan Maraas <kmaraas@gnome.org> + + * server/libvncserver/zrle.c: Fix compilation if + --without-zlib and --withoug-libz are passed. Patch from + Leonardo Boshell. Closes bug #314224. + * server/vino-prefs.c: (vino_prefs_init): Fix a small leak. + * configure.in: Set version to 2.16.0. + +2006-08-15 Brian Pepple <bdpepple@gmail.com> + + * po/LINGUAS: New file listing all supported languages. + + * configure.in: Use po/LINGUAS instead of including all languages + directly in this file. See the wiki for more information: + http://live.gnome.org/GnomeGoals/PoLinguas + +2006-08-05 Ani Peter <peter.ani@gmail.com> + + * configure.in: Added Malayalam (ml.po) to ALL_LINGUAS + +2006-08-01 Arangel Angov <ufo@linux.net.mk> + + * configure.in: Added Slovenian Translation. + +2006-07-03 Runa Bhattacharjee <runabh@gmail.com> + + * configure.in: Added Bengali India (bn_IN) to ALL_LINGUAS. + +2006-04-26 Gora Mohanty <gmohanty@cvs.gnome.org> + + * configure.in: Added 'lv' (Latvian) to ALL_LINGUAS. + +2006-04-18 Kjartan Maraas <kmaraas@gnome.org> + + * .cvsignore: Update + * capplet/.cvsignore: Update + * configure.in: Remove obsolete entry for no_NO + * po/.cvsignore: Update + * po/no.po: Remove. + +2006-03-28 Vladimer Sichinava <vlsichinava@gmail.com> + + * configure.in: Added "ka" (Georgian) to ALL_LINGUAS + +2006-02-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * configure.in: Add "zh_HK" to ALL_LINGUAS. + +2006-02-03 Mark McLoughlin <mark@skynet.ie> + + * server/vino-mdns.c: (vino_mdns_get_service_name): + Change the second comment for translators so that + it actually makes sense. + +2006-01-15 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.13.6. + +==================== 2.13.5 ==================== + +2006-01-15 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.13.5. + +2006-01-13 Mark McLoughlin <mark@skynet.ie> + + Add support for publishing over mDNS. Based on patch from very + patient Sebastien Estienne <sebastien.estienne@gmail.com> in + bug #159874 + + * configure.in: add --enable-avahi + + * server/Makefile.am: add vino-mdns.[ch] and build against + avahi if enabled + + * server/vino-mdns.[ch]: + (vino_mdns_add_service), + (vino_mdns_start), + (vino_mdns_stop): add internal publishing API. + + * server/vino-main.c: (main): start and stop the mDNS support + before and after entering the mainloop. + + * server/vino-server.c: (vino_server_init_from_screen): advertise + the rfb service + + * server/vino-http.c: (vino_http_create_listening_socket): advertise + the http service + + * server/vino-util.[ch]: (vino_setup_debug_flags): add mdns + debugging flag + +2006-01-13 Mark McLoughlin <mark@skynet.ie> + + * configure.in: bump version to 2.13.1 - 2.12 development + continues on the gnome-2-12 branch + +2005-11-16 Mark McLoughlin <mark@skynet.ie> + + Fix crash with unicode mapped keysyms (bug #321516) + Patch from Gary Coady <gary@lyranthe.org> + + * server/vino-input.c: update VINO_IS_LATIN1_KEYSYM + to not match keysyms with byte 4 set. + +2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com> + + * configure.in: Added ku (Kurdish) to ALL_LINGUAS + +2005-09-26 Mark McLoughlin <mark@skynet.ie> + + Based on patch from Alexandre Oliva <oliva@lsd.ic.unicamp.br> + Fixes keyboard brokeness with some X server configurations. + + https://bugzilla.redhat.com/158713 + + * server/vino-input.c: (vino_input_handle_key_event): don't + send press/release pairs for each XK_Mode_switch and XK_ISO_Level3_Shift + keypress. + +2005-09-06 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.12.1. + +==================== 2.12.0 ==================== + +2005-09-06 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.12.0. + +2005-09-04 Roozbeh Pournader <roozbeh@farsiweb.info> + + * configure.in: Added "fa" (Persian) to ALL_LINGUAS. + +2005-08-22 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.11.93 + +==================== 2.11.92 ==================== + +2005-08-22 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.11.92. + +2005-07-26 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.11.91 + +==================== 2.11.90 ==================== + +2005-07-26 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.11.90 + +2005-07-25 Mark McLoughlin <mark@skynet.ie> + + Use DamageReportDeltaRectangles rather than + DamageReportRawRectangles, hopefully speeding things + up a tad. + + * server/vino-fb.c: + (vino_fb_xdamage_idle_handler): correctly subtract + the updated region from the damage region *before* + calling CopyArea in order to avoid a race condition. + (vino_fb_xdamage_event_filter): add a small bit more + debug spew. + (vino_fb_init_xdamage): use DamageReportDeltaRectangles + +2005-07-18 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * configure.in: Added "th" (Thai) to ALL_LINGUAS. + +2005-06-28 Kjartan Maraas <kmaraas@gnome.org> + + * capplet/vino-url.c: (vino_url_finalize): Plug a + leak. Closes bug #309177. + +2005-06-06 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * configure.in: Added 'gl' to ALL_LINGUAS. + +2005-05-26 Mark McLoughlin <mark@skynet.ie> + + * docs/Makefile.am: add debugging.txt to EXTRA_DIST. + +2005-05-25 Mark McLoughlin <mark@skynet.ie> + + * docs/debugging.txt: add. + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.11.2 + +==================== 2.11.1.2 ==================== + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.11.1.2. + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + Fix some keyboard handling bugs: + 1) Shift key not working for some charactes (bug #155900) + 2) Caps lock not working (bug #157685) + 3) Key repeat issue: + https://bugzilla.redhat.com/134451 + + * server/vino-input.c: + (vino_input_initialize_keycodes): if the keysym is + defined multiple times in the mapping, choose the + first one. + (vino_input_handle_key_event): ignore Caps Lock altogether + and send a key press/release pair to the Xserver for + each press, rather than waiting for the release. The + Xserver on the client can handle key repeating. + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.11.2 + +==================== 2.11.1.1 ==================== + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.11.1.1. + +2005-05-20 Mark McLoughlin <mark@skynet.ie> + + Fix build failure with released tarball and + not-CVS-HEAD ORBit2. Bug #304843 + + * autogen.sh: build with automake 1.8. + + * server/Makefile.am: add dist-hook hack. + +2005-05-19 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.11.2. + +==================== 2.11.1 ==================== + +2005-05-19 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.11.1. + +2005-05-19 Mark McLoughlin <mark@skynet.ie> + + Patch from Thierry Moisan <thierryn@videotron.ca> in + bug #150460 + + * server/vino-server.schemas.in: fix typo. + +2005-05-19 Mark McLoughlin <mark@skynet.ie> + + Fix crash when switching resolution in bug #166167. + Root cause identified by Leena Gunda <leena.gunda@wipro.com>. + + * server/libvncserver/rfb/rfb.h, + server/libvncserver/main.c: (rfbNewFramebuffer): remove the + arguments relating to format switching, we only ever want to + just update the size of the framebuffer. + + * server/vino-server.c: (vino_server_screen_size_changed): + Update for above change. + +2005-05-16 Mark McLoughlin <mark@skynet.ie> + + Patch from Leena Gunda in bug #166167 + + * server/vino-fb.c: (vino_fb_finalize_screen_data): + Disconnect the size-changed handler. + +2005-05-16 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: (vino_server_init_from_screen): + update comment + +2005-05-16 Mark McLoughlin <mark@skynet.ie> + + Fix for bug #168904 - clicking on help terminates vino-server + + * server/vino-prompt.c: (vino_prompt_setup_dialog): Set the + help button to be insensitive. + + * server/vino-prompt.glade: put an id on the help_button. + +2005-05-16 Mark McLoughlin <mark@skynet.ie> + + Fix for bug #158710 + + * capplet/vino-preferences.c: + (vino_preferences_vnc_password_notify): Don't pass + NULL to gtk_entry_set_text() + +2005-04-19 Pablo Saratxaga <pablo@mandriva.com> + + * configure.in: Added Walloon (wa) to ALL_LINGUAS. + +2005-4-14 Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch> + + * configure.in: Added "ug" to ALL_LINGUAS. + +2005-03-31 Steve Murphy <murf@e-tools.com> + + * configure.in: Added "rw" to ALL_LINGUAS. + +2005-03-30 Adi Attar <aattar@cvs.gnome.org> + + * configure.in: Added "xh" to ALL_LINGUAS. + +2005-03-07 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.10.1. + +==================== 2.10.0 ==================== + +2005-03-07 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.10.0. + +2005-03-05 Abel Cheung <maddog@linuxhall.org> + + * configure.in: Added "vi" to ALL_LINGUAS. + +2005-03-02 Rajesh Ranjan <rranjan@redhat.com> + + * configure.in : Added hi to ALL_LINGUAS. + +2005-02-21 Pawan Chitrakar <pawan@nplinux.org> + + * configure.in: Added ne "Nepali" in ALL_LINGUAS + +2004-12-01 Dafydd Harries <daf@muse.19inch.net> + + * configure.in: Add "cy" (Welsh) to ALL_LINGUAS. + +2004-11-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.9.3. + +==================== 2.9.2 ==================== + +2004-11-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.9.2. + +2004-11-29 Christoffer Olsen <co@deworks.net> + + This adds support for bug buddy autocompletion of + version number when filing a bug report. + + * capplet/vino-preferences.desktop.in: Removed and + replaced with *.desktop.in.in + * capplet/vino-preferences.desktop.in.in: Added + X-GNOME-Bugzilla-Version header + * configure.in: Generates capplet/vino-preferences.desktop.in + from AC_OUTPUT + * po/POTFILES.in: Lists *.desktop.in.in instead + +2004-11-14 Žygimantas Beručka <uid0@akl.lt> + + * configure.in: Added "lt" (Lithuanian) to ALL_LINGUAS. + +2004-11-12 Mark McLoughlin <mark@skynet.ie> + + * icons/gnome-remote-desktop.png: new icon + from Jakub Steiner. + +2004-11-10 Mark McLoughlin <mark@skynet.ie> + + * icons/Makefile.am: install icon into hicolor + icon theme. + +2004-11-10 Mark McLoughlin <mark@skynet.ie> + + * autogen.sh: require automake 1.7. + + * configure.in: modernise. + + * server/Makefile.am: use DISTCLEANFILES. + + * Makefile.am: add intltool stuff to $DISTCLEANFILES. + + * acconfig.h: remove, not needed. + +2004-11-09 Mark McLoughlin <mark@skynet.ie> + + * capplet/Makefile.am: install .desktop file + in $(datadir)/applications. + + * capplet/vino-preferences.desktop.in: + add OnlyShowIn=GNOME; + +2004-11-09 Mark McLoughlin <mark@skynet.ie> + + * configure.in: bump version to 2.9.1 - 2.8.x + development continues on the gnome-2-8 branch. + +2004-10-25 Sanlig Badral <badral@openmn.org> + + * configure.in: added mn (MONGOLIAN) to ALL_LINGUAS. + +2004-10-16 Marcel Telka <marcel@telka.sk> + + * configure.in (ALL_LINGUAS): Added sk. + +2004-10-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.8.2. + +==================== 2.8.1 ==================== + +2004-10-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.8.1. + +2004-10-12 Mohammad DAMT <mdamt@bisnisweb.com> + + * configure.in: added "id" (Indonesian) to ALL_LINGUAS + * po/id.po: added Indonesian translation + +2004-10-07 Leonid Kanter <leon@asplinux.ru> + + * configure.in: added "ru" (Russian) to ALL_LINGUAS + +2004-10-06 Mark McLoughlin <mark@skynet.ie> + + Fixes for two Fedora bugs: + http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134240 + http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134451 + + * server/vino-fb.c: + (vino_fb_xdamage_idle_handler), + (vino_fb_xdamage_event_filter): process damage events in an + idle handler, compressing the events as they come in. This + both prevents us from ignoring incoming client messages for + long periods and being swamped by duplicate damage events. + + * server/vino-input.c: (vino_input_init): use XTestGrabControl() + to snup our noses at metacity and its nasty server grabs. + + * server/vino-server.c: + (vino_server_client_data_pending): process all pending client + messages before updating the client. + +2004-09-29 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.8.1 + +==================== 2.8.0.1 ==================== + +2004-09-29 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.8.0.1. + +2004-09-28 Gora Mohanty <gmohanty@cvs.gnome.org> + + * configure.in: Added 'or' to ALL_LINGUAS. + +2004-09-28 Åsmund Skjæveland <aasmunds@fys.uio.no> + + * configure.in: Added nn to ALL_LINGUAS. + * po/nn.po: Started Norwegian Nynorsk translation. + +2004-09-27 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_response): pass the correct point + as the error dialog's parent. + +2004-09-27 Mark McLoughlin <mark@skynet.ie> + + Hook up the help button to the docs in gnome-user-docs. + Fixes bug #153804. + + * capplet/vino-preferences.c: + (vino_preferences_dialog_response): hook up the docs. + (main): use gnome_program_init(). + +2004-09-21 Mark McLoughlin <mark@skynet.ie> + + Fix from Gregory Thiemonge <gregory.thiemonge@libertysurf.fr> + in bug #153081 + + * server/vino-fb.c: (vino_fb_get_image): fix typo which caused + problems at 800x600 + +2004-09-14 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.8.1. + +==================== 2.8.0 ==================== + +2004-09-14 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.8.0. + +2004-09-12 Mugurel Tudor <mugurelu@go.ro> + + * configure.in: Added "ro" to ALL_LINGUAS + +2004-09-12 Abel Cheung <maddog@linuxhall.org> + + * configure.in: Added "mk" "zh_CN" "zh_TW" to ALL_LINGUAS. + +2004-09-11 Jordi Mallach <jordi@sindominio.net> + + * configure.in (ALL_LINGUAS): Added "ca" (Catalan). + +2004-09-11 Baris Cicek <baris@teamforce.name.tr> + + * configure.in: Added 'tr' to ALL_LINGUAS. + +2004-09-08 Arafat Medini <lumina@arabeyes.org> + + * configure.in: Added Arabic locale "ar" to ALL_LINGUAS. + +2004-09-04 Jayaradha <njaya@redhat.com> + + * configure.in: Added "ta" to ALL_LINGUAS. +2004-09-02 Alessio Frusciante <algol@firenze.linux.it> + + * configure.in: Added "it" (Italian) to ALL_LINGUAS. + +2004-08-31 Mark McLoughlin <mark@skynet.ie> + + Fixes bug where authentication would hang if built without + GNU TLS and require_encryption is TRUE. + + * server/libvncserver/auth.c: append non-TLS security types + if built without GNU TLS. + + * server/vino-server.c: (vino_server_update_security_types): + Fix warning when built without GNU TLS. + +2004-08-31 Mark McLoughlin <mark@skynet.ie> + + * configure.in: don't build vino-session by default - we + have a patch in gnome-session now which does the same thing. + +2004-08-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.93. + +==================== 2.7.92 ==================== + +2004-08-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.92. + +2004-08-30 Christian Neumair <chris@gnome-de.org> + + * configure.in: Added German (de) to ALL_LINGUAS. + +2004-08-28 Akagic Amila <bono@linux.org.ba> + + * configure.in: Added 'bs' to ALL_LINGUAS. + +2004-08-27 Iñaki Larrañaga <dooteo@euskalgnu.org> + + * configure.in: Added "eu" (Basque) to ALL_LINGUAS. + +2004-08-27 Kostas Papadimas <pkst@gnome.org> + + * configure.in: Added "el" to ALL_LINGUAS. + +2004-08-27 Mark McLoughlin <mark@skynet.ie> + + * Makefile.am: add MAINTAINERS to EXTRA_DIST. + +2004-08-25 Maxim Dziumanenko <mvd@mylinux.com.ua> + + * configure.in: Added uk (Ukrainian) to ALL_LINGUAS. + +2004-08-22 Sami Pesonen <sampeson@iki.fi> + + * configure.in: Added "fi" to ALL_LINGUAS. + +2004-08-21 Changwoo Ryu <cwryu@debian.org> + + * configure.in: Added "ko" to ALL_LINGUAS. + +2004-08-21 Kjartan Maraas <kmaraas@gnome.org> + + * configure.in: Added «nb» to ALL_LINGUAS. + +2004-08-19 Takeshi AIHANA <aihana@gnome.gr.jp> + + * configure.in: Added "ja" (Japanese) to ALL_LINGUAS. + +2004-08-18 Ole Laursen <olau@hardworking.dk> + + * configure.in: Added "da" (Danish) to ALL_LINGUAS. + +2003-08-18 Hasbullah Bin Pit <sebol@my-penguin.org> + + * configure.in: Added 'ms' (Malay) to ALL_LINGUAS. + +2004-08-18 Christophe Merlet <redfox@redfoxcenter.org> + + * configure.in: Added "fr" (French) to ALL_LINGUAS. + +2004-08-17 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.92. + +==================== 2.7.91 ==================== + +2004-08-17 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.91. + +2004-08-17 Mark McLoughlin <mark@skynet.ie> + + Make the DAMAGE support actually work. + + * server/vino-fb.c: + (vino_fb_get_image), + (vino_fb_xdamage_event_filter): spew X error details in debug mode. + (vino_fb_create_image), + (vino_fb_init_fb_image): don't confuse the pixmap's bits_per_pixel + with the pixmap's depth. + (vino_fb_init_from_screen): query the MIT-XSHM extension before + setting up the damage stuff. + +2004-08-14 Artur Flinta <aflinta@cvs.gnome.org> + + * configure.in: Added "pl" to ALL_LINGUAS. + +2004-08-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: link against Xfixes when building + with DAMAGE support. + +2004-08-11 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.91. + +==================== 2.7.90 ==================== + +2004-08-11 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.90. + +2004-08-11 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add a --enable-http-server arg which + is off by default, disable all Java stuff. + + * Makefile.am: remove the client subdir. + + * client/*: remove. + + * server/Makefile.am: don't build http-server.[ch] unless + built with --enable-http-server. + + * server/vino-server.c: + (vino_server_init_from_screen), (vino_server_finalize): + #ifdef the http server initialization/destruction. + +2004-08-07 Danilo Šegan <dsegan@gmx.net> + + * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. + +2004-08-01 Sayamindu Dasgupta <sayamindu@gnome.org> + + * configure.in: Added "bn" to ALL_LINGUAS. + +2004-07-31 Kjartan Maraas <kmaraas@gnome.org> + + * configure.in: Added "no" to ALL_LINGUAS. + +2004-07-31 Francisco Javier F. Serrador <serrador@cvs.gnome.org> + + * configure.in: added Spanish (es) translation + +2004-07-21 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.5. + +==================== 2.7.4 ==================== + +2004-07-21 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.4. + +2004-07-21 Mark McLoughlin <mark@skynet.ie> + + Fix for bug #143567 - crasher when connecting with a + RFB 3.3 client and require_encryption is TRUE. + + * server/libvncserver/auth.c: (rfbAuthNewClient3_3): don't + call rfbCloseClient() after calling rfbClientConnFailed(). + +2004-07-17 Dennis Cranston <dennis_cranston at yahoo com> + + * capplet/vino-prefences.glade: HIG alignment adjustments. + +2004-07-13 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.4. + +==================== 2.7.3.1 ==================== + +2004-07-13 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.3.1. + +2004-07-13 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add --disable-gnutls and --disable-gcrypt. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: post-release bump to 2.7.4. + +==================== 2.7.3 ==================== + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 2.7.3. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + Support building without GNU TLS. + + * configure.in: only warn if gnutls or libgcrypt isn't + found. + + * server/libvncserver/auth.c, + server/libvncserver/main.c, + server/libvncserver/rfb/rfb.h, + server/libvncserver/rfb/rfbproto.h, + server/libvncserver/rfbserver.c, + server/libvncserver/sockets.c, + server/libvncserver/vncauth.c, + server/vino-main.c, + server/vino-server.c, + server/vino-util.[ch]: add a bunch of #ifdef HAVE_GNUTLS. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.schemas.in: by default don't require + clients which support encryption. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c, + capplet/vino-preferences.glade: remove the "require + encryption" stuff since vncviewer doesn't support it + yet and change it to display the vncviewer command to + run rather than the url to the java applet. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: fix the check for XDAMAGE. + + * server/vino-fb.c: make it actually build with XDAMAGE. + No guarantees that it really works since the Xnest I built + with damage support core dumps all over the shop. + +2004-07-12 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add a test for XDAMAGE. + + * server/Makefile.am: use XDAMAGE libs. + + * server/vino-fb.c: update. + +2004-07-05 Mark McLoughlin <mark@skynet.ie> + + Add code to allow using the XDAMAGE extension if available. + Based on a patch from Federico Mena Quintero <federico@ximian.com>. + + * server/vino-fb.c: + (vino_fb_copy_tile): clean up substantially. + (vino_fb_finalize_xdamage): free XDAMAGE releated resources. + (vino_fb_finalize_polling): split out from finalize_screen_data(). + (vino_fb_xdamage_event_filter), + (vino_fb_init_xdamage): XDAMAGE support. + (vino_fb_init_fb_image): if using XDAMAGE, create an XShm image for + the framebuffer and wrap it with an XShm Pixmap. + (vino_fb_init_from_screen): upd. for XDAMAGE support. + +2004-06-10 Gustavo Noronha Silva <kov@debian.org> + + * configure.in: added "pt_BR" to ALL_LINGUAS + +2004-06-06 Alexander Shopov <ash@contact.bg> + + * configure.in: Added "bg" (Bulgarian) to ALL_LINGUAS + +2004-06-02 Gareth Owen <gowen72@yahoo.com> + + * configure.in: Added en_GB to ALL_LINGUAS + +2004-05-31 Duarte Loreto <happyguy_pt@hotmail.com> + + * configure.in: Added Portuguese (pt) to ALL_LINGUAS. + +2004-05-30 Adam Weinberger <adamw@gnome.org> + + * configure.in: Added en_CA to ALL_LINGUAS. + +2004-05-28 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.c: + (vino_fb_destroy_image): detach the shared image. + +2004-05-27 Christian Rose <menthos@menthos.com> + + * configure.in: Added "sv" to ALL_LINGUAS. + +2004-04-16 Mark McLoughlin <mark@skynet.ie> + + * configure.in: don't rebuild the jar file by default even when + javac is installed. Add a --enable-java option. + +==================== 0.14 ==================== + +2004-02-06 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.14. + +2004-02-06 Mark McLoughlin <mark@skynet.ie> + + Change the way we use TLS with the RFB protocol after discussions + with the RFB maintainers: + + + Only use a single extra security type (rfbTLS == 18) which has + been registered with the RFB maintainers rather than the original + rfbTlsWithNoAuth(3) and rfbTlsWithVncAuth(4). + + Negotiation the authentication type (rfbNoAuth or rfbVncAuth) once + the TLS handshake has completed. The authentication type negotiation + is exactly the same format as the security type negotiation. + + Server changes: + + * server/vino-server.c: (vino_server_update_security_types): + Update for security/authentication types split. + + * server/libvncserver/auth.c: + (rfbAuthListAuthTypes): impl. listing the authentication types. + (rfbAuthProcessSecurityTypeMessage): don't start authenticating + when the TLS handshake has completed. Instead, just list the + security types and wait for a response. + (rfbAuthProcessTLSHandshake): ditto. + (rfbAuthProcessAuthTypeMessage): begin authenticating with whatever + authentication type the client returns. + + * server/libvncserver/main.c: + (rfbAddAuthType), (rfbClearAuthTypes): API for maintaining the + authentication types list. + + * server/libvncserver/rfb/rfb.h: add the RFB_AUTH_TYPE client + processing state and add the authTypes list to the server + structure. + + * server/libvncserver/rfb/rfbproto.h: update with details of + new TLS security type protocol. + + Client changes: + + * client/java/rfb/CConnection.java: + (CConnection.addAuthType): function for building up a list + of supported authentication types. + (CConnection.processSecurityMsg): handle new return values + from CSecurity::processMsg(). + (CConnection.processAuthTypesMsg): impl. negotiating authentication + type. + + * client/java/rfb/CSecurity.java: (CSecurity): define return values + for processMsg() rather than using silly magic numbers. + + * client/java/rfb/CSecurityNone.java: (CSecurityNone.processMsg): upd. + + * client/java/rfb/CSecurityTls.java: + (CSecurityTls.CSecurityTls.processMsg): re-work so as to not chain + up to the authentication implementation. + + * client/java/rfb/CSecurityVncAuth.java: + (CSecurityVncAuth.processMsg): return proper return codes. + + * client/java/rfb/SecTypes.java: remove the TlsWithNone(3) and + TlsWithVncAuth(4) and add the TLS(18) security type which has + been registered with the protocol maintainers. + + * client/java/vncviewer/CConn.java: update for security types + change. + +2004-02-06 Mark McLoughlin <mark@skynet.ie> + + * client/java/vncviewer/AboutDialog.java: + (AboutDialog.AboutDialog): fix bug #133529 - compile failure + because the about dialog text wasn't defined. + +2004-02-05 Mark McLoughlin <mark@skynet.ie> + + * docs/TODO: update. + +2004-02-05 Mark McLoughlin <mark@skynet.ie> + + * configure.in: require libgnomeui >= 2.5.2 + + * capplet/vino-url.c: (vino_url_activate): + Use gnome_url_show_on_screen() instead of the + egg-screen-help thing. + + * cut-n-paste/screen-exec/*: kill all this. + +==================== 0.12 ==================== + +2004-01-16 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.12. + +2004-01-16 Mark McLoughlin <mark@skynet.ie> + + Based on patch from Leen Gunda. + + * server/vino-server.c: (vino_server_set_client_on_hold): + Set the rfbClient's onHold flag. + +2004-01-16 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_get_local_hostname): use the fully + qualified host name. + + * session/vino-session.c: (remote_desktop_start): + Fix minor indendation issue. + +2003-12-12 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_get_local_hostname), + (vino_preferences_dialog_get_server_url): actuall use + the proper host name in the url. + +==================== 0.11 ==================== + +2003-12-11 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.11. + +2003-12-05 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_update_for_allowed): make the URL + insensitive if allowed is FALSE. + (vino_preferences_vnc_password_notify): fix crasher when + unsetting the key. + (vino_preferences_dialog_construct_mailto): simplify to + just use the e-mail address and URL. + (vino_preferences_dialog_update_url_label), + (vino_preferences_dialog_mailto_notify), + (vino_preferences_dialog_setup_url_labels): Don't make the + URL small or italicised. Also, use the "mailto" key when + constructing the mailto and handle notifications on the key. + (vino_preferences_dialog_finalize): free up some stuff. + + * capplet/vino-preferences.glade: Fix mnemonic conflicts and + put the URL labels on a row of their own so they are padded + more. + + * capplet/vino-url.c: + (vino_url_realize): only set the cursor if we're sensitive. + (vino_url_state_changed): set/unset the cursor based on + the sensitivity. + (vino_url_set_address): don't set the label with the + address. + + * server/vino-server.schemas.in: add a "mailto" key. + +2003-12-04 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-url.c: (vino_url_class_init), + (vino_url_instance_init), (vino_url_finalize): + Don't use GObject's new instance private data as + we don't want to depend on glib 2.3. + +2003-12-03 Mark McLoughlin <mark@skynet.ie> + + First bit of work to allow the URL in the preferences + dialog be clicked on allowing you to send it by email. + + * capplet/vino-preferences.c: + (vino_preferences_dialog_get_server_url): + (vino_preferences_dialog_construct_mailto): + Impl. skeletal versions of these. More work + needed here. + (vino_preferences_dialog_setup_url_labels): + Set up the server URL label. + (vino_preferences_dialog_init): use it. + (main): init and shutdown gnome-vfs. Its needed + for the url handler. + + * capplet/vino-preferences.glade: Remove the + default URL label. + + * capplet/vino-url.[ch]: implementation of a + clickable label which points at a URL. Basically, + just GnomeHref as a label. + + * configure.in: Build the cut-n-paste stuff. + + * cut-n-paste/screen-exec/*: add the screen exec + stuff here as a utility library. + +2003-12-03 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.glade: updates from Calum. + Main change is to shove the URL in there the best way + we can. + +2003-12-01 Mark McLoughlin <mark@skynet.ie> + + Remove the update_timeout when the client is on hold. + + * server/vino-server.c: + (vino_server_handle_client_gone): conditionally remove + the update timeout. + (vino_server_set_client_priority): move into set_client_on_hold(). + (vino_server_set_client_on_hold): add and remove the update timeout + depending on whether the client is on hold. + (vino_server_handle_new_client): don't add the update timeout + here. + (vino_server_handle_authenticated_client): + use set_client_on_hold() instead of set_client_priority(). + (vino_server_set_on_hold): add FIXME. + +2003-12-01 Mark McLoughlin <mark@skynet.ie> + + Implement deferring authentication attempts by 5 seconds + if the previous attempt failed. Simple protection against + brute force guessing the password. + + * server/vino-server.c: + (vino_server_handle_client_gone): free up the deferred auth + resources. + (vino_server_set_client_on_hold): don't process input from + the client directly here - if there is data pending the + io_watch will be triggered and we'll process it then. + (vino_server_auth_client_deferred), + (vino_server_defer_client_auth): impl. verifying the password + after a 5 second timeout. + (vino_server_auth_client), + (vino_server_check_vnc_password): if the check fails, flag the + server to delay the next attempt by 5 seconds. + (vino_server_set_on_hold): don't touch existing clients unless + they have been fully initialized. + + * server/libvncserver/auth.c: + (rfbAuthProcessClientMessage): split out returning the result + to the client. + (rfbAuthPasswordChecked): Allow the deferred authentication. + + * server/libvncserver/rfb/rfb.h: add RFB_CLIENT_AUTH_DEFERRED + state. + + * server/libvncserver/rfbserver.c: if we're in the AUTH_DEFERRED + state ignore any client messages. We'll be onHold so this is + just paranoia. + + * docs/TODO, docs/remote-desktop.txt: update. + +2003-12-01 Mark McLoughlin <mark@skynet.ie> + + * docs/TODO: update. + + * server/libvncserver/auth.c: + (rfbAuthClientAuthenticated): return FALSE by default. + (rfbAuthNewClient3_3): change error message. + (rfbAuthNewClient), (rfbAuthCleanupClient): fixup + coding style. + + * server/libvncserver/main.c: + (rfbClearSecurityTypes): fix up coding style. + + * server/vino-server.c: + (vino_server_check_vnc_password): ditto. + +2003-12-01 Mark McLoughlin <mark@skynet.ie> + + * configure.in: detect the location of libcrypt. + + * server/Makefile.am, + server/libvncserver/Makefile.am: link against libgcrypt + + * server/libvncserver/vncauth.c: (vncRandomBytes): use + libgcrypt to generate the challenge to ensure it is + wholly unpredictable. + + * server/libvncserver/CHANGES: document the change. + + * server/libvncserver/auth.c: (rfbAuthTlsHandshake): fix + coding style. + +2003-11-22 Mark McLoughlin <mark@skynet.ie> + + * server/vino-prompt.c: + (vino_prompt_process_pending_clients): impl. processing + pending clients. + (vino_prompt_handle_dialog_response): use it. + + * server/vino-server.c: + (vino_server_init_from_screen): make the server + shared always. + + * docs/TODO: update. + +==================== 0.10 ==================== + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.10. + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * client/java/Makefile.am: distcheck fix. + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * client/java/vncviewer/VNCViewer.java: + (VNCViewer.init): get vino-client.png as the logo. + (VNCViewer.paint): draw the logo and a label for now. + Pretty crappy, but it will do for the moment. + + * server/vino-http.c: + (vino_http_lookup_client_logo): lookup the icon according + to the icon theme. + (vino_http_construct_response): if the client requests + "vino-client.png" return them "gnome-remote-desktop" + (vino_http_data_pending): don't return an invalid response + on EOF. Just close the connection. + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * docs/TODO: add a "why does the cursor flicker" item. + + * server/vino-prompt.glade: remove the seperator and + tweak some padding. + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + Fix problem when we block on writing the HTTP response. + + * server/vino-http.c: + (vino_http_finalize_client): impl. + (vino_http_queue_pending_response), + (vino_http_write_string): implement queueing the rest + of the response if we block half way through. + (vino_http_data_writable): finish writing. + (vino_http_write_response): use write_string(). + (vino_http_new_connection_pending): update. + (vino_http_finalize): use finalize_client(). + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/rfbserver.c: re-try the handshake + if the client is in the RFB_TLS_HANDSHAKE state. + + * server/libvncserver/auth.c: + (rfbAuthTlsHandshake): don't block until the handshake + completes. + (rfbAuthProcessSecurityTypeMessage): update. + (rfbAuthProcessTlsHandshake): implement re-trying the + handshake if it hasn't completed and there is data + pending. + + * server/libvncserver/rfb/rfb.h: add rfbAuthProcessTlsHandshake + and the RFB_TLS_HANDSHAKE client state. + +2003-11-18 Mark McLoughlin <mark@skynet.ie> + + * server/vino-http.[ch]: + (vino_http_insert_applet_text), + (vino_http_perform_substitutions), + (vino_http_construct_response): implement substituting + $APPLET with an <applet> tag. + (start_probing_at), (vino_http_create_listening_socket): + die magic numbers. + (vino_http_set_property), + (vino_http_get_property), + (vino_http_class_init): remove the "rfb-port" property. + (vino_http_get): rename from vino_http_new() - its + a singleton now. + (vino_http_sort_ports), (vino_http_add_rfb_port), + (vino_http_remove_rfb_port): maintain a list of rfb + ports. + + * server/vino-server.c: (vino_server_init_from_screen), + (vino_server_finalize): update for VinoHTTP changes. + + * client/java/Makefile.am: install vino-client.html. + * client/java/vino-client.html: Template file for the + client web page. $APPLET gets substituted with the + appropriate <applet>. + +2003-11-17 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_setup_icons): make + the icon size #define local to the function. + + * configure.in: make the server require libgnomeui + (for GnomeIconTheme) and libglade. Suck. + + * docs/TODO: add item. + +2003-11-17 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: install the glade file. + + * server/vino-prompt.glade: glade file for the message dialog + according to Calum's input. + + * server/vino-prompt.c: + (vino_prompt_setup_icons), (vino_prompt_setup_dialog), + (vino_prompt_display): re-implement the dialog. + +2003-11-17 Mark McLoughlin <mark@skynet.ie> + + * docs/remote-desktop.txt: update for changes to the capplet. + +2003-11-17 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.glade: add the fairly widespread + changes suggested by Calum. Looks much better now. + + * capplet/vino-preferences.c: + (vino_preferences_dialog_encryption_toggled), + (vino_preferences_dialog_encryption_notify), + (vino_preferences_dialog_setup_encryption_toggle): Change + the sense to reflect the changed semantics in the UI. + (vino_preferences_dialog_setup_icons): setup the icons + using the icon theme. + (vino_preferences_dialog_init): upd. + + * configure.in: make the capplet require libgnomeui for + GnomeIconTheme. + +2003-11-17 Mark McLoughlin <mark@skynet.ie> + + * server/vino-http.[ch]: implement a http server which listens + in the range 5800-5899 and returns a html page pointing which + loads the Java client. + + * server/Makefile.am: build vino-http.[ch]. + + * server/vino-server.c: + (vino_server_init_from_screen): set up the http server. + (vino_server_finalize): chain up to the parent finalize. + + * server/vino-util.[ch]: (vino_setup_debug_flags): setup + http debugging. + + * server/vino-fb.c: (vino_fb_finalize): chain up to parent + finalize. + + * server/vino-prompt.c: (vino_prompt_finalize): ditto. + +2003-11-14 Mark McLoughlin <mark@skynet.ie> + + * client/java/rfb/CConnection.java: (CConnection): + Show the security type in the connection info dialog. + + * client/java/vncviewer/CConn.java: (CConn.showInfo): + Make the CSecurity protected. + +2003-11-14 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: (vino_preferences_dialog_init): + Find the glade file correctly. + + * docs/TODO: update. + + * docs/remote-desktop.txt: add back the require_encryption + toggle button. + +2003-11-14 Mark McLoughlin <mark@skynet.ie> + + * client/java/vncviewer/CConn.java: (CConn.recreateViewport): + Focus the DesktopWindow. It took me way too long to figure + out that one :/ + +2003-11-13 Mark McLoughlin <mark@skynet.ie> + + * session/gsm-remote-desktop.diff: actually add the + gnome-session patch. + +2003-11-13 Mark McLoughlin <mark@skynet.ie> + + Make the client only support 24 bit colour instead of 8 bit + colour. Not ideal ... it would have been nicer to support + all colour depths but ... + + * client/java/rdr/InStream.java: + (InStream.readPixel), (InStream.readPixels): impl reading a + number of 32 bit pixels. + (InStream.readCPixel), (InStream.readCPixels): impl reading + a number of compressed pixels. We can assume they will be + compressed into 24 bits because of our pixel format. + + * client/java/rfb/CMsgHandler.java: + (CMsgHandler.setCursor), (CMsgHandler.imageRect): Take an + int[] instead of a byte[] for the image data. + + * client/java/rfb/CMsgReader.java: + (CMsgReader.getImageBuf): simplify - we never used imageBufIdealSize + and hence always returned the "required" number of bytes and never + the "requested". Take only a single "size" now and always return + a buffer of that size. Also, return an int[] instead of a byte[]. + (CMsgReader.readSetCursor), (CMsgReader): store the image data + in an int[]. + + * client/java/rfb/HextileDecoder.java: + (HextileDecoder.readRect): update for 24 bit colour. + + * client/java/rfb/ManagedPixelBuffer.java: + (ManagedPixelBuffer.dataLen), (ManagedPixelBuffer.checkDataSize): + data is an int[] now. + + * client/java/rfb/PixelBuffer.java: + (PixelBuffer.setPF): pixel format must be 32 bits per pixel now + instead of 8. + (getStride): remove, just use the width. + (PixelBuffer.fillRect), (PixelBuffer.imageRect), + (PixelBuffer.copyRect), (PixelBuffer.maskRect): update to use + an int[] for the image data. + + * client/java/rfb/PixelFormat.java: + (PixelFormat.PixelFormat): change the default pixel format to + 24 bit depth, 32 bits per pixel and true-colour rgb888 packed + encoding. + + * client/java/rfb/RREDecoder.java: + (RREDecoder.readRect): update to decode 24 bit color. + + * client/java/rfb/RawDecoder.java: + (RawDecoder.readRect): simplify because we know getImageBuf() + will always return the required buffer size. Also, update for + 24 bit colour. + + * client/java/rfb/ZRLEDecoder.java: + (ZRLEDecoder.readRect): update to decode 24 bit colour. + + * client/java/vncviewer/CConn.java: + (CConn.setColourMapEntries): kill - we use true-colour now. + (CConn.imageRect): don't take an offset and take an int[] + instead of a byte[]. + (CConn.setCursor): take an int[] for the cursor data. Mask + is still a byte[], though. + + * client/java/vncviewer/DesktopWindow.java: + (DesktopWindow): don't implement Runnable anymore. + (DesktopWindow.setCursor): take an int[]. + (DesktopWindow.setColourMapEntries): kill, unneeded. + (DesktopWindow.imageRect): don't take an offset and take an int[] + instead of a byte[]. + (DesktopWindow.run): kill. + + * client/java/vncviewer/PixelBufferImage.java: + (PixelBufferImage.PixelBufferImage): change the default pixel + format to 24 bit depth, 32 bits per pixel and true-colour + rgb888 packed encoding. Use DirectColorModel instead of + IndexColorModel. + (PixelBufferImage.resize): update to use an int[] for the + image data. + (PixelBufferImage.setColourMapEntries), + (PixelBufferImage.updateColourMap): Kill, we do true-color now. + +2003-11-12 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c, + capplet/vino-preferences.glade: add back + the "Allow unencrypted connections" preference. + + * docs/remote-desktop.txt: update. + +2003-11-11 Mark McLoughlin <mark@skynet.ie> + + * client/java/vncviewer/CConn.java: + (CConn.autoSelectFormatAndEncoding), + (requestNewUpdate): we don't actually support anything + but 8 bit colour, so comment out the code that pretends + to support more. + + * docs/TODO: add a couple more items. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/rfbserver.c: + (rfbSendFrameBufferUpdate): undraw the cursor *after* + encoding the modified rectangles. Doh. Fixes cursor + display on clients which don't support position updates. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: + (vino_server_setup_framebuffer), + (vino_server_release_framebuffer): only monitor the + cursor when we actually have a client. + (vino_server_init_from_screen): don't init the cursor + here. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: distcheck fix. + + * server/vino-server.c: + (vino_server_handle_client_gone): release the framebuffer copy + if this is the last client. + (vino_server_handle_new_client): setup our copy of the framebuffer + if this is the first client. + (vino_server_setup_framebuffer), (vino_server_release_framebuffer): + implement. + (vino_server_init_from_screen): split bits out. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * server/vino-prefs.c: + (vino_prefs_enabled_changed), + (vino_prefs_create_server), + (vino_prefs_init): put the server on hold when "enabled" + is FALSE. + + * server/vino-server.c: + (vino_server_set_client_on_hold): take a VinoServerClientInfo + instead of a rfbClientPtr. + (vino_server_handle_prompt_response): update. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add --enable-session-support argument. + + * server/vino-shell.c: + (vino_shell_idle_quit), (vino_shell_destroy), + (vino_shell_class_init): quit the server in idle when + the shell is unrefed and chain up to the BonoboObject + destroy() implementatin. + + * session/README: blurb. + + * session/vino-session.c: small session managed program + to control the lifecyle of the server. Alternative to + the gnome-session patch. + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + Lots of voodoo goodness to allow the server to + be activated and shutdown by gnome-session depending + on the /desktop/gnome/remote_access/enabled key. + + * configure.in: make the server require libbbonob, figure + out the location of orbit-idl and Bonobo's IDL files. + + * server/GNOME_RemoteDesktop.idl: add dummy interface for + the service. + + * server/GNOME_RemoteDesktop.server.in.in: bonobo-activation + service definition file. + + * server/Makefile.am: create and install the .server file. + Install vino-server into libexec instead of bin. Build the + CORBA skels from the IDL. + + * server/vino-main.c: (main): quit if we fail to + register the service. + + * server/vino-shell.[ch]: implement registering the + GNOME_RemoteDesktop service with bonobo-activation. + * server/vino-shell.h: + +2003-11-10 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.schemas.in, + capplet/vino-preferences.c, + docs/remote-desktop.txt: rename the "allowed" key + to "enabled". + +2003-11-06 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.c: + (vino_fb_get_image): handle X errors and return a bool. + (vino_fb_copy_tile): return a bool. + (vino_fb_poll_scanline): only mark a region as damaged + if we sucessfully copied the tile. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.c: (vino_fb_init_from_screen): remove + pre-condition causing us to crash when the screen + size changed. Handling screen size changes is still + pretty broken though - we seem to not get the + ConfigureNotify on the root window for ages and in the + mean time we get a BadMatch for doing a GetImage with + the wrong size. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.[ch]: + (emit_size_changed): emit "size-changed" signal. + (vino_fb_finalize_screen_data): split out from finalize(). + (vino_fb_screen_size_changed): re-initialize the screen. + (vino_fb_init_from_screen): connect to the GdkScreen + "size-changed" signal. + (vino_fb_finalize): update. + (vino_fb_class_init): initialize the "size-changed" signal. + + * server/vino-server.c: + (vino_server_update_client), (vino_server_handle_new_client), + (vino_server_handle_prompt_response), + (vino_server_handle_authenticated_client), + (vino_server_new_connection_pending), + (vino_server_handle_key_event), (vino_server_handle_pointer_event), + (vino_server_handle_clipboard_event), + (vino_server_check_vnc_password), + (vino_server_handle_damage_notify): add a bunch of preconditions. + (vino_server_screen_size_changed): re-initialize the screen. + (vino_server_init_from_screen): connect to the VinoFB "size-changed" + signal. + + * docs/TODO: update. + +==================== 0.9 ==================== + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.9. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * docs/remote-desktop.txt: update. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.schemas.in: change + require_encryption default to true. + + * docs/TODO: move from toplevel dir. + + * docs/remote-desktop.txt: add. + +==================== 0.8 ==================== + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * configure.in: Version 0.8. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * client/java/Makefile.am: fixed distcheck build. + + * server/libvncserver/cursor.c, + server/libvncserver/main.c, + server/libvncserver/rfb/rfb.h, + server/libvncserver/rfb/rfbregion.h, + server/libvncserver/rfbregion.c, + server/libvncserver/sockets.c, + server/libvncserver/tight.c, + server/libvncserver/zlib.c, + server/libvncserver/zrleencodetemplate.c: loads + of warnings fixes. + + * server/libvncserver/CHANGES: update. + +2003-11-05 Mark McLoughlin <mark@skynet.ie> + + * configure.in: define JAVA_SDK_AVAILABLE if both + jar and javac are found. + + * client/java/Makefile.am: only rebuild if the SDK + is available. + + * client/java/vino-client.jar: check in to CVS. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.glade: removed the "label-for" and + "labelled-by" a11y relations - apparently gail does that + automatically if you set the focus target. + + * server/vino-server.c: + (vino_server_set_client_priority): impl. setting down the priority + on the io watch for the client's socket. If we put the client on + hold we don't want any pending data on the socket starving the + rest of the mainloop. + (vino_server_set_client_on_hold), (vino_server_handle_new_client), + (vino_server_handle_authenticated_client): use it here. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * client/java/rfb/CSecurity.java: (CSecurity): added + a getDescription() abstract methdo. + + * client/java/rfb/CSecurityNone.java, + client/java/rfb/CSecurityTls.java, + client/java/rfb/CSecurityVncAuth.java: implement the + getDescription() methods. + + * client/java/vncviewer/CConn.java: (CConn.getCSecurity): + Output the security type description here. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.schemas.in: change the require_encryption + default to false. In the common case this will be a policy + decision of the client, not the server. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.desktop.in: add a .desktop + file for the capplet. + + * capplet/Makefile.am: install the .desktop file. + + * capplet/vino-preferences.c, + capplet/vino-preferences.glade: remove the "Allow + unencrypted connections" preference from here. We'll + have it on by default and you can turn it off using + gconf-editor. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: + (vino_preferences_dialog_init): use the icon + as the window icon. + + * server/vino-prompt.c: + (vino_prompt_display): ditto. + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * icons/gnome-remote-desktop.png: add an icon. + + * Makefile.am, configure.in: build icons dir. + +2003-11-03 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.schemas.in: add prompt_enabled + preference. + + * capplet/vino-preferences.glade: add it here. + + * capplet/vino-preferences.c: hook it up in here. + + * server/vino-prefs.c: hook it up here too. + + * server/vino-prompt.c: some random stuff to try and + make this a little less broken. + +2003-11-03 Mark McLoughlin <mark@skynet.ie> + + * configure.in: check for glib-genmarshal. + + * server/Makefile.am: generate the masrhallers and + build against vino-prompt.[ch] + + * server/vino-marshal.list: add. + + * server/vino-prompt.[ch]: implement a dialog to + prompt the user before allowing someone to connect. + + * server/vino-server.[ch]: use it here. + + * server/vino-util.[ch]: + (vino_init_stock_items): impl registering a couple + of stock items for the prompt dialog. + + * server/libvncserver/auth.c, + server/libvncserver/rfb/rfb.h: add a hook to enable + reject/accepting clients which have alread been + authenticated. + + * server/libvncserver/rfbserver.c: if newClientHook + isn't defined, accept by default. + + * server/libvncserver/CHANGES: upd. + +2003-11-03 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.glade: setup the label-for + and labelled-by relations. + +2003-11-03 Mark McLoughlin <mark@skynet.ie> + + * capplet/vino-preferences.c: impl. the capplet. + + * capplet/Makefile.am: build it. + + * capplet/vino-preferences.glade: add writability warning thing + and a label for the password entry. + + * server/vino-main.c: (main): initialize i18n stuff. + + * server/vino-prefs.c: (vino_prefs_authentication_methods_changed): + check the list consists of strings. + +2003-11-01 Mark McLoughlin <mark@skynet.ie> + + * Makefile.am: build the capplet subdir. + + * capplet/Makefile.am: install the glade file. + + * capplet/vino-preferences.glade: glade file for + the preferences dialog. + + * client/java/Makefile.am: install jar file to + $(datadir)/gnome/vino + + * configure.in: require libglade for the capplet. + +2003-11-01 Mark McLoughlin <mark@skynet.ie> + + * client/java/vncviewer/CConn.java: + (CConn.CConn): choose a TLS based SecurityType over + a non-encrypted type. + +2003-11-01 Mark McLoughlin <mark@skynet.ie> + + * client/java/Makefile.am: put ViewportFrame.class in + the jar file. + + * server/libvncserver/auth.c: + (rfbAuthProcessSecurityTypeMessage): actually do something + after completing the handshake. + + * server/libvncserver/sockets.c: + (WriteExactOverTls): fix silly buglet. + +2003-10-31 Mark McLoughlin <mark@skynet.ie> + + * client/java/Makefile.am: add rfb/CSecurityTls.java. + + * client/java/rfb/CSecurityTls.java: implement TLS security + handler. + + * client/java/rfb/SecTypes.java: add tlsWithNone and + tlsWithVncAuth. + + * client/java/vncviewer/CConn.java: + (CConn.CConn): use tlsWithNone and tlsWithVncAuth. + (CConn.init): don't set jis and jos here. + (CConn.getCSecurity): handle creating rfb.CSecurityTls. + (CConn.serverInit): set jis and jos here after the + handshake has completed. + + * server/libvncserver/auth.c: (rfbAuthTlsHandshake), + (rfbAuthCleanupClient): don't crash if the handshake fails. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: distcheck fix. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: check for javac and jar. Output + Makefiles. + + * client/java/*: add Java vncview from realVNC. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/sockets.c: + (ReadExactOverTls), (WriteExactOverTls): imlement + reading/writing from/to the TLS stream. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * configure.in: check for gnutls. + + * server/libvncserver/Makefile.am: build against gnutls. + + * server/libvncserver/auth.c: + (rfbAuthInitScreen), (rfbAuthCleanupScreen): implement + global initialisation. + (rfbAuthTlsHandshake): implement TLS handshaking. + (rfbAuthCleanupClient): impl cleaning up TLS session. + (rfbAuthProcessSecurityTypeMessage): initiate a TLS handshake + for rfbTlsWithNoAuth and rfbTlsWithVncAuth. + + * server/libvncserver/main.c: + (rfbGetScreen): init auth params. + (rfbScreenCleanup): cleanup auth params. + + * server/libvncserver/rfb/rfb.h: add anonCredentials and + dhParams to rfbScreenInfo and tlsSession and useTls to + rfbClientRec. Also add rfbAuthInitScreen, + rfbAuthCleanupScreen and rfbAuthCleanupClient. + + * server/libvncserver/sockets.c: + (rfbCloseClient): cleanup client's auth params. + + * server/Makefile.am: build against gnutls. + + * server/vino-main.c, + server/vino-util.[ch]: setup gnutls debugging. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * server/vino-main.c: (main): create a server for each + screen. + + * server/vino-prefs.[ch]: + (vino_prefs_create_server): rename from add_server() + and set all the properties in one go + (vino_prefs_init): split out from add_server() and + only honour the view_only preference if the XServer + has support for XTest. + (vino_prefs_shutdown): unref the servers here. + + * server/vino-server.[ch]: + (vino_server_set_client_on_hold): implement starting an + on hold client. + (vino_server_update_client_timeout): don't update on + hold clients. + (vino_server_handle_new_client): put the client on + hold if the server is on hold. + (vino_server_set_property), + (vino_server_get_property), (vino_server_class_init), + (vino_server_get_on_hold), (vino_server_set_on_hold): + implement the "on-hold" property. + (vino_server_update_security_types): impl. setting + the security types. + (vino_server_set_require_encryption), + (vino_server_set_auth_methods): use it here. + + * server/libvncserver/auth.c: + (rfbAuthNewClient3_3): only send rfbNoAuth or rfbVncAuth, + otherwise error out. + + * server/libvncserver/main.c: + (securityTypeToName): impl for debuggin. + (rfbAddSecurityType): add support for encrypted security + types. + (rfbClearSecurityTypes): don't clear unless there's + actually something to clear. + + * server/libvncserver/rfb/rfbproto.h: add rfbTlsWithNoAuth + and rfbTlsWithVncAuth. Not implement yet, though. + +2003-10-30 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/auth.c: + (rfbAuthNewClient3_7), (rfbAuthNewClient3_3), + (rfbAuthNewClient): implement support for sending the security + types list if the client is using version 3.7 of the protocol. + (rfbAuthProcessSecurityTypeMessage): complete the security + type negotiation. + + * server/libvncserver/main.c: (rfbAddSecurityType): upd. + + * server/libvncserver/rfbserver.c: add support for version + 3.7 of the protocol. + + * server/libvncserver/rfb/rfb.h: add SECURITY_TYPE state, + securityType and minorVersion client members and add + rfbProcessClientInitMessage() and + rfbAuthProcessSecurityTypeMessage(); + + * server/libvncserver/rfb/rfbproto.h: add details of RFB 3.7. + + * server/libvncserver/CHANGES: update. + + * server/vino-prefs.c: (vino_prefs_translate_auth_methods_list): + Return VINO_SERVER_NONE if none of the authentication methods + are recognised. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add --disable-rebuilds option. + + * server/Makefile.am: build vino-enums.[ch] with + glib-mkenums. + + * server/vino-prefs.c: + (vino_prefs_view_only_changed), + (vino_prefs_require_encryption_changed): fix buglets and + add debugging. + (vino_prefs_translate_auth_methods_list): sometimes its a + list of strings. Sometimes its a list of values. Sigh. + (vino_prefs_authentication_methods_changed), + (vino_prefs_vnc_password_changed): fix buglets and add + debugging. + (vino_prefs_add_server): monitor the directory so we get + notifications, add debugging and initialize the VinoServer + with the values we got from GConf. + + * server/vino-server.c: + (vino_server_check_vnc_password): implement VNC authentication. + (vino_server_init_from_screen): hook up. + (vino_server_finalize): free the password. + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init), (vino_server_set_require_encryption), + (vino_server_get_require_encryption), + (vino_server_set_auth_methods), (vino_server_get_auth_methods), + (vino_server_set_vnc_password), (vino_server_get_vnc_password): + impl the view-only, require-encryption, auth-methods and + vnc-password properties. + + * server/vino-server.h: make 0 and invalid auth method. + + * server/vino-util.[ch]: + (vino_setup_debug_flags): add prefs debug flag. + (vino_base64_unencode): add base64 encoding implementation. + + * server/libvncserver/main.c, + server/libvncserver/rfb/rfb.h: + (rfbClearSecurityTypes): add function to clear the + securityTypes array. + + * server/libvncserver/rfb/rfbproto.h: make TRUE == 1 to + agree with glib's idea of the truth. + + * server/libvncserver/CHANGES: upd. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/vino-prefs.c: + (vino_prefs_add_server), (vino_prefs_shutdown): make + it compile. + + * server/vino-main.c: (main): hook up the prefs. + + * server/vino-server.[ch]: + (vino_server_set_require_encryption), + (vino_server_get_require_encryption), + (vino_server_set_auth_methods), + (vino_server_get_auth_methods), + (vino_server_set_vnc_password), + (vino_server_get_vnc_password): add stubs for these. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: add vino-prefs.[ch]. + + * server/vino-prefs.[ch]: first cut at implementing + preferences handling. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * configure.in: require gconf. + + * server/vino-server.schemas.in: first draft of + configuration schemas. + + * server/Makefile.am: install the schemas. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/rfb/rfb.h: remove rfbAuthPasswdData + and rfbAuthPasswdFirstViewOnly from the screen struct. + Add securityTypes, nSecurityTypes and rfbAddSecurityType. + + * server/libvncserver/main.c: + (defaultPasswordCheck), (rfbCheckPasswordByList): + remove default password checking implementations. + (rfbGetScreen): upd. + (rfbAddSecurityType): implement. + + * server/libvncserver/rfb/rfbproto.h: add + RFB_MAX_SECURITY_TYPES. Remove vncEncryptAndStorePasswd + and vncDecryptPasswdFromFile. + + * server/libvncserver/vncauth.c: + (vncEncryptAndStorePasswd), + (vncDecryptPasswdFromFile): remove. + + * server/libvncserver/auth.c: decide on which + authentication method to use using securityTypes. + + * server/libvncserver/CHANGES: upd. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/auth.c: + * server/libvncserver/rfb/rfb.h: + * server/libvncserver/rfbserver.c: remove + reverseConnection support. + + * server/libvncserver/CHANGES: upd. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: add vino-cursor.[ch]. + + * server/vino-cursor.[ch]: simple implementation of + cursor position and shape monitoring. + + * server/vino-server.c: + (vino_server_update_client): update the cursor shape + and position. + (vino_server_init_from_screen), + (vino_server_finalize): initialize and finalize the + cursor monitor. + + * server/libvncserver/cursor.c: + (rfbMakeXCursor): take const char *. + (rfbDrawCursor): fix indexing bug. + (rfbSetCursorPosition): don't unset cursorHasMoved + on the client if its NULL. + + * server/libvncserver/rfb/rfb.h: make rfbMakeXCursor + take const char *. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/cursor.c, + server/libvncserver/rfb/rfb.h: + (rfbSetCursorPosition): expose function to set the + cursor position. + + * server/libvncserver/main.c: (defaultPtrAddEvent): + Use it here. + + * server/libvncserver/CHANGES: upd. + +2003-10-28 Mark McLoughlin <mark@skynet.ie> + + * server/vino-server.c: + (vino_server_handle_client_gone): remove the timeout. + (vino_server_update_client): split out from data_pending. + (vino_server_client_data_pending): upd. + (vino_server_update_client_timeout), + (vino_server_handle_new_client): add timeout to periodically + update the client. + +2003-10-23 Mark McLoughlin <mark@skynet.ie> + + Re-work libvncserver's cursor handling so that the cursor + is drawn to the frame buffer only for the purpose of + sending the FramebufferUpdate message - i.e. we immediately + undraw it after updating the client. + + This should simplify things quite a bit - exposing the + posibility of the cursor being drawn into the frame buffer + made implementing cursor hadnling a lot more complex. + + * server/libvncserver/cursor.c: + (rfbGetCursorBounds): split out from draw/undraw and + cleanup. + (rfbUndrawCursor), (rfbDrawCursor): allow the pre-computed + bounds to be passed in. Clean up these functions a lot. + (rfbSetCursor): no need to undraw the cursor. + + * server/libvncserver/main.c: upd. for the fact that + the cursor doesn't need to be undrawn and that the + enableCursorPosUpdates and enableCursorShapeUpdates + flags have been combined. + + * server/libvncserver/rfb/rfb.h: kill the cursorIsDrawn + and dontConvertRichCursorToXCursor ScreenInfo flags. + Add a ClientRec member which saves the last region we + drew the cursor so that we can update this region with + the client when the cursor moves. + Combine the ShapeUpdates and PosUpdates flags. + Add rfbGetCursorBounds and update rfbDraw/UndrawCursor. + Upd. the FB_UPDATE_PENDING macro. + + * server/libvncserver/rfbserver.c: + (rfbProcessClientNormalMessage): combine the enableCursorPosUpdates + and enableCursorShapeUpdates flags. We either use support + for both or neither. + (rfbSendFramebufferUpdate): draw the cursor before sending + the update and then undraw it after. + +2003-10-22 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/main.c: (rfbGetScreen): + * server/libvncserver/rfb/rfb.h: + remove unused dontSendFramebufferUpdate flag. + + * server/libvncserver/rfbserver.c: disable + both shape/position updates if support for either + is not available. + + * server/libvncserver/CHANGES: upd. + +2003-10-22 Mark McLoughlin <mark@skynet.ie> + + * configure.in: test for the MIT-SHM and XTest + extensions. Also include standard "did pango include + -lX11?" check. + + * server/Makefile.am: link against $X_LIBS, $XSHM_LIBS + and $XTEST_LIBS. + + * server/vino-fb.c: compile without XShm. + + * server/vino-input.[ch]: implement keyboard and pointer + event handling. + + * server/vino-main.c: (main): make the server view-only + if XTest isn't supported. + + * server/vino-server.[ch]: + (vino_server_new): add "view-only" flag to constructor. + + * server/vino-util.[ch]: rename "server" debug flag + to "rfb" and add new "input" debug flag. + +2003-10-22 Mark McLoughlin <mark@skynet.ie> + + * server/libvncserver/*: fixup the various hooks and kill + the UDP and backchannel crackrock. + + * server/Makefile.am: add vino-input.[ch]. + + * server/vino-input.[ch]: add skeletal input event handling. + + * server/vino-fb.c: fixup the pre-conditions. + + * server/vino-server.[ch]: + (vino_server_handle_pointer_event), + (vino_server_handle_clipboard_event), + (vino_server_handle_damage_notify), + (vino_server_init_from_screen): hook up the input event + handling. + (vino_server_set_property), (vino_server_get_property), + (vino_server_class_init), (vino_server_new), + (vino_server_set_view_only), + (vino_server_get_view_only): add a "view-only" property. + +2003-10-21 Mark McLoughlin <mark@skynet.ie> + + * configure.in: add a bunch of autoconf crap + for libvncserver. + + * server/Makefile.am: add libvncserver. + + * server/libvncserver/*: import a copy of libvncserver, + hack it up a bit and cut out some stuff we don't need. + Changes are documented in the CHANGES file. + +2003-10-21 Mark McLoughlin <mark@skynet.ie> + + * server/vino-fb.c, server/vino-server.c: get it all + more or less working, re-factor and cleanup a bit. + +2003-10-20 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: link against libvncserver. + + * server/vino-main.c: (main): use VinoServer. + + * server/vino-server.c: flesh out some more. + + * server/vino-util.[ch]: (vino_setup_debug_flags): + Add server debug flags. + +2003-10-20 Mark McLoughlin <mark@skynet.ie> + + * server/Makefile.am: add vinfo-server.[ch] and + vinfo-util.c. + + * server/vino-fb.[ch]: get a first cut of the screen + polling going. + + * server/vino-main.c: test it out. + + * server/vino-util.[ch]: add debugging foo. + + * server/vino-server.[ch]: skeletal server object. + +2003-10-20 Mark McLoughlin <mark@skynet.ie> + + * Initial import. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..2099840 --- /dev/null +++ b/INSTALL @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..c354d16 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,319 @@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +SUBDIRS = po + +AM_DISTCHECK_CONFIGURE_FLAGS = \ + --with-avahi \ + --with-secret \ + --with-telepathy \ + --with-gnutls \ + --with-gcrypt \ + --with-zlib \ + --with-jpeg \ + --enable-debug \ + --enable-compile-warnings=maximum \ + --with-systemduserunitdir='$${libdir}/systemd/user-distcheck' + +noinst_LTLIBRARIES = \ + libeggsmclient.la + +libeggsmclient_la_CPPFLAGS = \ + -DG_LOG_DOMAIN=\""EggSMClient"\" \ + -DEGG_SM_CLIENT_BACKEND_XSMP \ + $(smclient_platform_defines) \ + $(EGG_SMCLIENT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -I$(top_builddir) + +libeggsmclient_la_LIBADD = \ + $(EGG_SMCLIENT_LIBS) + +libeggsmclient_la_SOURCES = \ + server/smclient/eggsmclient.c \ + server/smclient/eggsmclient.h \ + server/smclient/eggsmclient-private.h \ + server/smclient/eggsmclient-xsmp.c \ + server/smclient/eggdesktopfile.c \ + server/smclient/eggdesktopfile.h + +VINO_MINIUPNP_cppflags = -DNDEBUG + +VINO_MINIUPNP_sources = \ + server/miniupnp/bsdqueue.h \ + server/miniupnp/codelength.h \ + server/miniupnp/declspec.h \ + server/miniupnp/igd_desc_parse.c \ + server/miniupnp/igd_desc_parse.h \ + server/miniupnp/minisoap.c \ + server/miniupnp/minisoap.h \ + server/miniupnp/minissdpc.c \ + server/miniupnp/minissdpc.h \ + server/miniupnp/miniupnpc.c \ + server/miniupnp/miniupnpc.h \ + server/miniupnp/miniwget.c \ + server/miniupnp/miniwget.h \ + server/miniupnp/minixml.c \ + server/miniupnp/minixml.h \ + server/miniupnp/upnpcommands.c \ + server/miniupnp/upnpcommands.h \ + server/miniupnp/upnpreplyparse.c \ + server/miniupnp/upnpreplyparse.h + +if VINO_HAVE_SELF_IFADDRS +VINO_IFADDRS_sources = \ + server/libvncserver/ifaddr/getifaddrs.c \ + server/libvncserver/ifaddr/ifaddrs.h +endif + +rfb_headers = \ + server/libvncserver/rfb/rfb.h \ + server/libvncserver/rfb/rfbregion.h \ + server/libvncserver/rfb/rfbproto.h \ + server/libvncserver/rfb/keysym.h + +VINO_LIBVNCSERVER_sources = \ + server/libvncserver/auth.c \ + server/libvncserver/corre.c \ + server/libvncserver/cursor.c \ + server/libvncserver/cutpaste.c \ + server/libvncserver/d3des.c \ + server/libvncserver/d3des.h \ + server/libvncserver/hextile.c \ + server/libvncserver/main.c \ + server/libvncserver/rfbregion.c \ + server/libvncserver/rfbserver.c \ + server/libvncserver/rre.c \ + server/libvncserver/sockets.c \ + server/libvncserver/stats.c \ + server/libvncserver/tight.c \ + server/libvncserver/translate.c \ + server/libvncserver/vncauth.c \ + server/libvncserver/zlib.c \ + server/libvncserver/zrle.c \ + server/libvncserver/zrleoutstream.c \ + server/libvncserver/zrleoutstream.h \ + server/libvncserver/zrlepalettehelper.c \ + server/libvncserver/zrlepalettehelper.h \ + server/libvncserver/zrletypes.h \ + $(rfb_headers) + +vino_server_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/common \ + -I$(top_srcdir)/server/libvncserver \ + -I$(top_srcdir)/server/miniupnp \ + -I$(top_srcdir)/server/smclient \ + -I$(top_builddir) \ + -I$(top_builddir)/server \ + $(VINO_SERVER_CFLAGS) \ + $(VINO_MINIUPNP_cppflags) \ + $(LIBGCRYPT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -DVINO_LOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DVINO_ICONDIR=\""$(datadir)/pixmaps\"" \ + -DVINO_CLIENTDIR=\""$(pkgdatadir)"\" \ + -DVINO_UIDIR=\""$(pkgdatadir)"\" + +libexec_PROGRAMS = vino-server + +vino_server_LDADD = \ + libeggsmclient.la \ + $(VINO_SERVER_LIBS) \ + $(LIBGCRYPT_LIBS) \ + $(JPEG_LIBS) \ + $(X_LIBS) $(XTEST_LIBS) $(XSHM_LIBS) $(XDAMAGE_LIBS) $(ZLIB_LIBS) + +if VINO_HAVE_TELEPATHY_GLIB +VINO_TELEPATHY_GLIB_sources = \ + server/vino-tube-servers-manager.c \ + server/vino-tube-servers-manager.h \ + server/vino-tube-server.c \ + server/vino-tube-server.h \ + server/vino-status-tube-icon.c \ + server/vino-status-tube-icon.h \ + server/vino-types.h + +clientfiledir = $(datarootdir)/telepathy/clients +dist_clientfile_DATA = server/Vino.client +endif + +BUILT_SOURCES = \ + $(nodist_vino_server_SOURCES) + +vino_server_SOURCES = \ + server/vino-cursor.c \ + server/vino-cursor.h \ + server/vino-dbus.c \ + server/vino-dbus.h \ + server/vino-fb.c \ + server/vino-fb.h \ + server/vino-input.c \ + server/vino-input.h \ + server/vino-main.c \ + server/vino-mdns.c \ + server/vino-mdns.h \ + server/vino-prefs.c \ + server/vino-prefs.h \ + server/vino-prompt.c \ + server/vino-prompt.h \ + server/vino-server.c \ + server/vino-server.h \ + server/vino-util.c \ + server/vino-util.h \ + server/vino-status-icon.c \ + server/vino-status-icon.h \ + server/vino-dbus-listener.c \ + server/vino-dbus-listener.h \ + server/vino-dbus-error.c \ + server/vino-dbus-error.h \ + server/vino-upnp.h \ + server/vino-upnp.c \ + $(VINO_MINIUPNP_sources) \ + $(VINO_IFADDR_sources) \ + $(VINO_LIBVNCSERVER_sources) \ + $(VINO_TELEPATHY_GLIB_sources) + +nodist_vino_server_SOURCES = \ + server/vino-enums.c \ + server/vino-marshal.c + +marshal_data = \ + server/vino-marshal.c \ + server/vino-marshal.h + +server/vino-marshal.h: server/vino-marshal.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=vino_marshal $< > $@ + +server/vino-marshal.c: server/vino-marshal.list server/vino-marshal.h + $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --body --prefix=vino_marshal $< > $@ + +enum_data = \ + server/vino-enums.c \ + server/vino-enums.h + +vino_enum_headers = \ + $(srcdir)/server/vino-server.h \ + $(srcdir)/server/vino-prompt.h \ + $(srcdir)/server/vino-status-icon.h \ + $(srcdir)/server/vino-status-tube-icon.h + +server/vino-enums.c: $(vino_enum_headers) server/vino-enums.h + $(AM_V_GEN)$(GLIB_MKENUMS) \ + --fhead "#include \"vino-enums.h\"\n\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --fprod "#include \"@filename@\"\n" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n" \ + --vhead " static GType type = 0;\n\n" \ + --vhead " if (!type)\n {\n" \ + --vhead " static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n }\n\n" \ + --vtail " return type;\n}\n\n" \ + $(vino_enum_headers) > $@ + +server/vino-enums.h: $(vino_enum_headers) + $(AM_V_GEN)$(GLIB_MKENUMS) \ + --fhead "#ifndef VINO_ENUMS_H_\n" \ + --fhead "#define VINO_ENUMS_H_\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --fprod "/* enumerations from @filename@ */\n" \ + --vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n" \ + --vhead "#define VINO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* VINO_ENUMS_H_ */" \ + $(vino_enum_headers) > $@ + +server/vino-server.desktop.in: server/vino-server.desktop.in.in + $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ + +servicedir = $(datadir)/dbus-1/services +nodist_service_DATA = server/org.freedesktop.Telepathy.Client.Vino.service + +server/org.freedesktop.Telepathy.Client.Vino.service: server/org.freedesktop.Telepathy.Client.Vino.service.in + $(AM_V_GEN)$(SED) -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@ + +if INSTALL_USER_UNITS +systemdservicedir = $(systemduserunitdir) +systemdservice_in_files = server/vino-server.service.in +systemdservice_DATA = server/vino-server.service + +$(systemdservice_DATA): server/vino-server.service.in Makefile + $(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ +endif + +applicationsdir = $(datadir)/applications/ +applications_in_files = server/vino-server.desktop.in +nodist_applications_DATA = $(applications_in_files:.desktop.in=.desktop) + +@INTLTOOL_DESKTOP_RULE@ + +# GSettings schemas, enum files and conversion file +gsettings_ENUM_NAMESPACE = org.gnome.Vino +gsettings_ENUM_FILES = common/vino-settings-enums.h +gsettings_SCHEMAS = common/org.gnome.Vino.gschema.xml + +@GSETTINGS_RULES@ + +if MAINTAINER_MODE +dist-hook: dist-changelog +else +dist-hook: +endif + +dist-changelog: + $(AM_V_at)if git --git-dir=$(top_srcdir)/.git --work-tree=$(top_srcdir) \ + log --no-merges --date=short --pretty='tformat:%cd %an <%ae>%n%n%s%n%n%b' a65e89b3e25a22ea177581462fb253bc392c789b.. | \ + $(SED) -e '/^[12]...-[01].-[0123]. [^<>]* <[^<>]*>$$/,/^$$/ b' \ + -e '/[^ ]/,/^[ ]*$$/ !d' \ + -e 's/^[ ]*/ /' \ + -e 's/^[ ]*$$//' >.ChangeLog.tmp; \ + then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \ + else rm -f .ChangeLog.tmp; exit 1; fi + +dist_noinst_DATA = \ + $(desktop_in_files) \ + $(systemdservice_in_files) \ + \ + $(gsettings_ENUM_FILES) \ + $(gsettings_SCHEMAS) \ + \ + docs/remote-desktop.txt \ + docs/debugging.txt \ + docs/TODO \ + \ + server/vino-marshal.list \ + server/vino-server.desktop.in.in \ + server/org.freedesktop.Telepathy.Client.Vino.service.in \ + server/dbus-interface.xml \ + server/libvncserver/tableinit24.c \ + server/libvncserver/tableinittctemplate.c \ + server/libvncserver/tabletrans24template.c \ + server/libvncserver/tabletranstemplate.c \ + server/libvncserver/tableinitcmtemplate.c \ + server/libvncserver/zrleencodetemplate.c \ + server/miniupnp/README \ + server/miniupnp/LICENCE \ + \ + ChangeLog.pre-git \ + vino.doap + +dist_noinst_SCRIPTS = autogen.sh + +CLEANFILES = \ + $(nodist_desktop_DATA) \ + $(nodist_service_DATA) \ + $(marshal_data) \ + $(enum_data) \ + $(systemdservice_DATA) \ + server/vino-server.desktop \ + server/vino-server.desktop.in + +DISTCLEANFILES = \ + po/.intltool-merge-cache + +MAINTAINERCLEANFILES = $(gsettings_SCHEMAS:.xml=.valid) + +.PHONY: dist-changelog diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..a21f4d9 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,2451 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +libexec_PROGRAMS = vino-server$(EXEEXT) +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(dist_noinst_SCRIPTS) \ + $(am__dist_clientfile_DATA_DIST) $(am__dist_noinst_DATA_DIST) \ + $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +am__DEPENDENCIES_1 = +libeggsmclient_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am__dirstamp = $(am__leading_dot)dirstamp +am_libeggsmclient_la_OBJECTS = \ + server/smclient/libeggsmclient_la-eggsmclient.lo \ + server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo \ + server/smclient/libeggsmclient_la-eggdesktopfile.lo +libeggsmclient_la_OBJECTS = $(am_libeggsmclient_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +am__installdirs = "$(DESTDIR)$(libexecdir)" \ + "$(DESTDIR)$(clientfiledir)" "$(DESTDIR)$(applicationsdir)" \ + "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(systemdservicedir)" +PROGRAMS = $(libexec_PROGRAMS) +am__vino_server_SOURCES_DIST = server/vino-cursor.c \ + server/vino-cursor.h server/vino-dbus.c server/vino-dbus.h \ + server/vino-fb.c server/vino-fb.h server/vino-input.c \ + server/vino-input.h server/vino-main.c server/vino-mdns.c \ + server/vino-mdns.h server/vino-prefs.c server/vino-prefs.h \ + server/vino-prompt.c server/vino-prompt.h server/vino-server.c \ + server/vino-server.h server/vino-util.c server/vino-util.h \ + server/vino-status-icon.c server/vino-status-icon.h \ + server/vino-dbus-listener.c server/vino-dbus-listener.h \ + server/vino-dbus-error.c server/vino-dbus-error.h \ + server/vino-upnp.h server/vino-upnp.c \ + server/miniupnp/bsdqueue.h server/miniupnp/codelength.h \ + server/miniupnp/declspec.h server/miniupnp/igd_desc_parse.c \ + server/miniupnp/igd_desc_parse.h server/miniupnp/minisoap.c \ + server/miniupnp/minisoap.h server/miniupnp/minissdpc.c \ + server/miniupnp/minissdpc.h server/miniupnp/miniupnpc.c \ + server/miniupnp/miniupnpc.h server/miniupnp/miniwget.c \ + server/miniupnp/miniwget.h server/miniupnp/minixml.c \ + server/miniupnp/minixml.h server/miniupnp/upnpcommands.c \ + server/miniupnp/upnpcommands.h \ + server/miniupnp/upnpreplyparse.c \ + server/miniupnp/upnpreplyparse.h server/libvncserver/auth.c \ + server/libvncserver/corre.c server/libvncserver/cursor.c \ + server/libvncserver/cutpaste.c server/libvncserver/d3des.c \ + server/libvncserver/d3des.h server/libvncserver/hextile.c \ + server/libvncserver/main.c server/libvncserver/rfbregion.c \ + server/libvncserver/rfbserver.c server/libvncserver/rre.c \ + server/libvncserver/sockets.c server/libvncserver/stats.c \ + server/libvncserver/tight.c server/libvncserver/translate.c \ + server/libvncserver/vncauth.c server/libvncserver/zlib.c \ + server/libvncserver/zrle.c server/libvncserver/zrleoutstream.c \ + server/libvncserver/zrleoutstream.h \ + server/libvncserver/zrlepalettehelper.c \ + server/libvncserver/zrlepalettehelper.h \ + server/libvncserver/zrletypes.h server/libvncserver/rfb/rfb.h \ + server/libvncserver/rfb/rfbregion.h \ + server/libvncserver/rfb/rfbproto.h \ + server/libvncserver/rfb/keysym.h \ + server/vino-tube-servers-manager.c \ + server/vino-tube-servers-manager.h server/vino-tube-server.c \ + server/vino-tube-server.h server/vino-status-tube-icon.c \ + server/vino-status-tube-icon.h server/vino-types.h +am__objects_1 = server/miniupnp/vino_server-igd_desc_parse.$(OBJEXT) \ + server/miniupnp/vino_server-minisoap.$(OBJEXT) \ + server/miniupnp/vino_server-minissdpc.$(OBJEXT) \ + server/miniupnp/vino_server-miniupnpc.$(OBJEXT) \ + server/miniupnp/vino_server-miniwget.$(OBJEXT) \ + server/miniupnp/vino_server-minixml.$(OBJEXT) \ + server/miniupnp/vino_server-upnpcommands.$(OBJEXT) \ + server/miniupnp/vino_server-upnpreplyparse.$(OBJEXT) +am__objects_2 = +am__objects_3 = server/libvncserver/vino_server-auth.$(OBJEXT) \ + server/libvncserver/vino_server-corre.$(OBJEXT) \ + server/libvncserver/vino_server-cursor.$(OBJEXT) \ + server/libvncserver/vino_server-cutpaste.$(OBJEXT) \ + server/libvncserver/vino_server-d3des.$(OBJEXT) \ + server/libvncserver/vino_server-hextile.$(OBJEXT) \ + server/libvncserver/vino_server-main.$(OBJEXT) \ + server/libvncserver/vino_server-rfbregion.$(OBJEXT) \ + server/libvncserver/vino_server-rfbserver.$(OBJEXT) \ + server/libvncserver/vino_server-rre.$(OBJEXT) \ + server/libvncserver/vino_server-sockets.$(OBJEXT) \ + server/libvncserver/vino_server-stats.$(OBJEXT) \ + server/libvncserver/vino_server-tight.$(OBJEXT) \ + server/libvncserver/vino_server-translate.$(OBJEXT) \ + server/libvncserver/vino_server-vncauth.$(OBJEXT) \ + server/libvncserver/vino_server-zlib.$(OBJEXT) \ + server/libvncserver/vino_server-zrle.$(OBJEXT) \ + server/libvncserver/vino_server-zrleoutstream.$(OBJEXT) \ + server/libvncserver/vino_server-zrlepalettehelper.$(OBJEXT) \ + $(am__objects_2) +@VINO_HAVE_TELEPATHY_GLIB_TRUE@am__objects_4 = server/vino_server-vino-tube-servers-manager.$(OBJEXT) \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino_server-vino-tube-server.$(OBJEXT) \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino_server-vino-status-tube-icon.$(OBJEXT) +am_vino_server_OBJECTS = server/vino_server-vino-cursor.$(OBJEXT) \ + server/vino_server-vino-dbus.$(OBJEXT) \ + server/vino_server-vino-fb.$(OBJEXT) \ + server/vino_server-vino-input.$(OBJEXT) \ + server/vino_server-vino-main.$(OBJEXT) \ + server/vino_server-vino-mdns.$(OBJEXT) \ + server/vino_server-vino-prefs.$(OBJEXT) \ + server/vino_server-vino-prompt.$(OBJEXT) \ + server/vino_server-vino-server.$(OBJEXT) \ + server/vino_server-vino-util.$(OBJEXT) \ + server/vino_server-vino-status-icon.$(OBJEXT) \ + server/vino_server-vino-dbus-listener.$(OBJEXT) \ + server/vino_server-vino-dbus-error.$(OBJEXT) \ + server/vino_server-vino-upnp.$(OBJEXT) $(am__objects_1) \ + $(am__objects_3) $(am__objects_4) +nodist_vino_server_OBJECTS = server/vino_server-vino-enums.$(OBJEXT) \ + server/vino_server-vino-marshal.$(OBJEXT) +vino_server_OBJECTS = $(am_vino_server_OBJECTS) \ + $(nodist_vino_server_OBJECTS) +vino_server_DEPENDENCIES = libeggsmclient.la $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +SCRIPTS = $(dist_noinst_SCRIPTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libeggsmclient_la_SOURCES) $(vino_server_SOURCES) \ + $(nodist_vino_server_SOURCES) +DIST_SOURCES = $(libeggsmclient_la_SOURCES) \ + $(am__vino_server_SOURCES_DIST) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__dist_clientfile_DATA_DIST = server/Vino.client +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__dist_noinst_DATA_DIST = server/vino-server.service.in \ + common/vino-settings-enums.h common/org.gnome.Vino.gschema.xml \ + docs/remote-desktop.txt docs/debugging.txt docs/TODO \ + server/vino-marshal.list server/vino-server.desktop.in.in \ + server/org.freedesktop.Telepathy.Client.Vino.service.in \ + server/dbus-interface.xml server/libvncserver/tableinit24.c \ + server/libvncserver/tableinittctemplate.c \ + server/libvncserver/tabletrans24template.c \ + server/libvncserver/tabletranstemplate.c \ + server/libvncserver/tableinitcmtemplate.c \ + server/libvncserver/zrleencodetemplate.c \ + server/miniupnp/README server/miniupnp/LICENCE \ + ChangeLog.pre-git vino.doap +DATA = $(dist_clientfile_DATA) $(dist_noinst_DATA) \ + $(nodist_applications_DATA) $(nodist_service_DATA) \ + $(systemdservice_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/depcomp \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing AUTHORS COPYING ChangeLog \ + INSTALL NEWS README build-aux/compile build-aux/config.guess \ + build-aux/config.sub build-aux/depcomp build-aux/install-sh \ + build-aux/ltmain.sh build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED = @DISABLE_DEPRECATED@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGG_SMCLIENT_CFLAGS = @EGG_SMCLIENT_CFLAGS@ +EGG_SMCLIENT_LIBS = @EGG_SMCLIENT_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_MKENUMS = @GLIB_MKENUMS@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@ +INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@ +INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@ +INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@ +JPEG_LIBS = @JPEG_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ +LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ +LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +VINO_SERVER_CFLAGS = @VINO_SERVER_CFLAGS@ +VINO_SERVER_LIBS = @VINO_SERVER_LIBS@ +WARN_CFLAGS = @WARN_CFLAGS@ +XDAMAGE_LIBS = @XDAMAGE_LIBS@ +XGETTEXT = @XGETTEXT@ +XMKMF = @XMKMF@ +XSHM_LIBS = @XSHM_LIBS@ +XTEST_LIBS = @XTEST_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZLIB_LIBS = @ZLIB_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +intltool__v_merge_options_ = @intltool__v_merge_options_@ +intltool__v_merge_options_0 = @intltool__v_merge_options_0@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +systemduserunitdir = @systemduserunitdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +SUBDIRS = po +AM_DISTCHECK_CONFIGURE_FLAGS = \ + --with-avahi \ + --with-secret \ + --with-telepathy \ + --with-gnutls \ + --with-gcrypt \ + --with-zlib \ + --with-jpeg \ + --enable-debug \ + --enable-compile-warnings=maximum \ + --with-systemduserunitdir='$${libdir}/systemd/user-distcheck' + +noinst_LTLIBRARIES = \ + libeggsmclient.la + +libeggsmclient_la_CPPFLAGS = \ + -DG_LOG_DOMAIN=\""EggSMClient"\" \ + -DEGG_SM_CLIENT_BACKEND_XSMP \ + $(smclient_platform_defines) \ + $(EGG_SMCLIENT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -I$(top_builddir) + +libeggsmclient_la_LIBADD = \ + $(EGG_SMCLIENT_LIBS) + +libeggsmclient_la_SOURCES = \ + server/smclient/eggsmclient.c \ + server/smclient/eggsmclient.h \ + server/smclient/eggsmclient-private.h \ + server/smclient/eggsmclient-xsmp.c \ + server/smclient/eggdesktopfile.c \ + server/smclient/eggdesktopfile.h + +VINO_MINIUPNP_cppflags = -DNDEBUG +VINO_MINIUPNP_sources = \ + server/miniupnp/bsdqueue.h \ + server/miniupnp/codelength.h \ + server/miniupnp/declspec.h \ + server/miniupnp/igd_desc_parse.c \ + server/miniupnp/igd_desc_parse.h \ + server/miniupnp/minisoap.c \ + server/miniupnp/minisoap.h \ + server/miniupnp/minissdpc.c \ + server/miniupnp/minissdpc.h \ + server/miniupnp/miniupnpc.c \ + server/miniupnp/miniupnpc.h \ + server/miniupnp/miniwget.c \ + server/miniupnp/miniwget.h \ + server/miniupnp/minixml.c \ + server/miniupnp/minixml.h \ + server/miniupnp/upnpcommands.c \ + server/miniupnp/upnpcommands.h \ + server/miniupnp/upnpreplyparse.c \ + server/miniupnp/upnpreplyparse.h + +@VINO_HAVE_SELF_IFADDRS_TRUE@VINO_IFADDRS_sources = \ +@VINO_HAVE_SELF_IFADDRS_TRUE@ server/libvncserver/ifaddr/getifaddrs.c \ +@VINO_HAVE_SELF_IFADDRS_TRUE@ server/libvncserver/ifaddr/ifaddrs.h + +rfb_headers = \ + server/libvncserver/rfb/rfb.h \ + server/libvncserver/rfb/rfbregion.h \ + server/libvncserver/rfb/rfbproto.h \ + server/libvncserver/rfb/keysym.h + +VINO_LIBVNCSERVER_sources = \ + server/libvncserver/auth.c \ + server/libvncserver/corre.c \ + server/libvncserver/cursor.c \ + server/libvncserver/cutpaste.c \ + server/libvncserver/d3des.c \ + server/libvncserver/d3des.h \ + server/libvncserver/hextile.c \ + server/libvncserver/main.c \ + server/libvncserver/rfbregion.c \ + server/libvncserver/rfbserver.c \ + server/libvncserver/rre.c \ + server/libvncserver/sockets.c \ + server/libvncserver/stats.c \ + server/libvncserver/tight.c \ + server/libvncserver/translate.c \ + server/libvncserver/vncauth.c \ + server/libvncserver/zlib.c \ + server/libvncserver/zrle.c \ + server/libvncserver/zrleoutstream.c \ + server/libvncserver/zrleoutstream.h \ + server/libvncserver/zrlepalettehelper.c \ + server/libvncserver/zrlepalettehelper.h \ + server/libvncserver/zrletypes.h \ + $(rfb_headers) + +vino_server_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/common \ + -I$(top_srcdir)/server/libvncserver \ + -I$(top_srcdir)/server/miniupnp \ + -I$(top_srcdir)/server/smclient \ + -I$(top_builddir) \ + -I$(top_builddir)/server \ + $(VINO_SERVER_CFLAGS) \ + $(VINO_MINIUPNP_cppflags) \ + $(LIBGCRYPT_CFLAGS) \ + $(WARN_CFLAGS) \ + $(DISABLE_DEPRECATED) \ + -DVINO_LOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -DVINO_ICONDIR=\""$(datadir)/pixmaps\"" \ + -DVINO_CLIENTDIR=\""$(pkgdatadir)"\" \ + -DVINO_UIDIR=\""$(pkgdatadir)"\" + +vino_server_LDADD = \ + libeggsmclient.la \ + $(VINO_SERVER_LIBS) \ + $(LIBGCRYPT_LIBS) \ + $(JPEG_LIBS) \ + $(X_LIBS) $(XTEST_LIBS) $(XSHM_LIBS) $(XDAMAGE_LIBS) $(ZLIB_LIBS) + +@VINO_HAVE_TELEPATHY_GLIB_TRUE@VINO_TELEPATHY_GLIB_sources = \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-tube-servers-manager.c \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-tube-servers-manager.h \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-tube-server.c \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-tube-server.h \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-status-tube-icon.c \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-status-tube-icon.h \ +@VINO_HAVE_TELEPATHY_GLIB_TRUE@ server/vino-types.h + +@VINO_HAVE_TELEPATHY_GLIB_TRUE@clientfiledir = $(datarootdir)/telepathy/clients +@VINO_HAVE_TELEPATHY_GLIB_TRUE@dist_clientfile_DATA = server/Vino.client +BUILT_SOURCES = \ + $(nodist_vino_server_SOURCES) + +vino_server_SOURCES = \ + server/vino-cursor.c \ + server/vino-cursor.h \ + server/vino-dbus.c \ + server/vino-dbus.h \ + server/vino-fb.c \ + server/vino-fb.h \ + server/vino-input.c \ + server/vino-input.h \ + server/vino-main.c \ + server/vino-mdns.c \ + server/vino-mdns.h \ + server/vino-prefs.c \ + server/vino-prefs.h \ + server/vino-prompt.c \ + server/vino-prompt.h \ + server/vino-server.c \ + server/vino-server.h \ + server/vino-util.c \ + server/vino-util.h \ + server/vino-status-icon.c \ + server/vino-status-icon.h \ + server/vino-dbus-listener.c \ + server/vino-dbus-listener.h \ + server/vino-dbus-error.c \ + server/vino-dbus-error.h \ + server/vino-upnp.h \ + server/vino-upnp.c \ + $(VINO_MINIUPNP_sources) \ + $(VINO_IFADDR_sources) \ + $(VINO_LIBVNCSERVER_sources) \ + $(VINO_TELEPATHY_GLIB_sources) + +nodist_vino_server_SOURCES = \ + server/vino-enums.c \ + server/vino-marshal.c + +marshal_data = \ + server/vino-marshal.c \ + server/vino-marshal.h + +enum_data = \ + server/vino-enums.c \ + server/vino-enums.h + +vino_enum_headers = \ + $(srcdir)/server/vino-server.h \ + $(srcdir)/server/vino-prompt.h \ + $(srcdir)/server/vino-status-icon.h \ + $(srcdir)/server/vino-status-tube-icon.h + +servicedir = $(datadir)/dbus-1/services +nodist_service_DATA = server/org.freedesktop.Telepathy.Client.Vino.service +@INSTALL_USER_UNITS_TRUE@systemdservicedir = $(systemduserunitdir) +@INSTALL_USER_UNITS_TRUE@systemdservice_in_files = server/vino-server.service.in +@INSTALL_USER_UNITS_TRUE@systemdservice_DATA = server/vino-server.service +applicationsdir = $(datadir)/applications/ +applications_in_files = server/vino-server.desktop.in +nodist_applications_DATA = $(applications_in_files:.desktop.in=.desktop) + +# GSettings schemas, enum files and conversion file +gsettings_ENUM_NAMESPACE = org.gnome.Vino +gsettings_ENUM_FILES = common/vino-settings-enums.h +gsettings_SCHEMAS = common/org.gnome.Vino.gschema.xml +dist_noinst_DATA = \ + $(desktop_in_files) \ + $(systemdservice_in_files) \ + \ + $(gsettings_ENUM_FILES) \ + $(gsettings_SCHEMAS) \ + \ + docs/remote-desktop.txt \ + docs/debugging.txt \ + docs/TODO \ + \ + server/vino-marshal.list \ + server/vino-server.desktop.in.in \ + server/org.freedesktop.Telepathy.Client.Vino.service.in \ + server/dbus-interface.xml \ + server/libvncserver/tableinit24.c \ + server/libvncserver/tableinittctemplate.c \ + server/libvncserver/tabletrans24template.c \ + server/libvncserver/tabletranstemplate.c \ + server/libvncserver/tableinitcmtemplate.c \ + server/libvncserver/zrleencodetemplate.c \ + server/miniupnp/README \ + server/miniupnp/LICENCE \ + \ + ChangeLog.pre-git \ + vino.doap + +dist_noinst_SCRIPTS = autogen.sh +CLEANFILES = \ + $(nodist_desktop_DATA) \ + $(nodist_service_DATA) \ + $(marshal_data) \ + $(enum_data) \ + $(systemdservice_DATA) \ + server/vino-server.desktop \ + server/vino-server.desktop.in + +DISTCLEANFILES = \ + po/.intltool-merge-cache + +MAINTAINERCLEANFILES = $(gsettings_SCHEMAS:.xml=.valid) +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +server/smclient/$(am__dirstamp): + @$(MKDIR_P) server/smclient + @: > server/smclient/$(am__dirstamp) +server/smclient/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) server/smclient/$(DEPDIR) + @: > server/smclient/$(DEPDIR)/$(am__dirstamp) +server/smclient/libeggsmclient_la-eggsmclient.lo: \ + server/smclient/$(am__dirstamp) \ + server/smclient/$(DEPDIR)/$(am__dirstamp) +server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo: \ + server/smclient/$(am__dirstamp) \ + server/smclient/$(DEPDIR)/$(am__dirstamp) +server/smclient/libeggsmclient_la-eggdesktopfile.lo: \ + server/smclient/$(am__dirstamp) \ + server/smclient/$(DEPDIR)/$(am__dirstamp) + +libeggsmclient.la: $(libeggsmclient_la_OBJECTS) $(libeggsmclient_la_DEPENDENCIES) $(EXTRA_libeggsmclient_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libeggsmclient_la_OBJECTS) $(libeggsmclient_la_LIBADD) $(LIBS) +install-libexecPROGRAMS: $(libexec_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-libexecPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(libexecdir)" && rm -f $$files + +clean-libexecPROGRAMS: + @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +server/$(am__dirstamp): + @$(MKDIR_P) server + @: > server/$(am__dirstamp) +server/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) server/$(DEPDIR) + @: > server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-cursor.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-dbus.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-fb.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-input.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-main.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-mdns.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-prefs.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-prompt.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-server.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-util.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-status-icon.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-dbus-listener.$(OBJEXT): \ + server/$(am__dirstamp) server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-dbus-error.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-upnp.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/$(am__dirstamp): + @$(MKDIR_P) server/miniupnp + @: > server/miniupnp/$(am__dirstamp) +server/miniupnp/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) server/miniupnp/$(DEPDIR) + @: > server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-igd_desc_parse.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-minisoap.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-minissdpc.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-miniupnpc.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-miniwget.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-minixml.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-upnpcommands.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/miniupnp/vino_server-upnpreplyparse.$(OBJEXT): \ + server/miniupnp/$(am__dirstamp) \ + server/miniupnp/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/$(am__dirstamp): + @$(MKDIR_P) server/libvncserver + @: > server/libvncserver/$(am__dirstamp) +server/libvncserver/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) server/libvncserver/$(DEPDIR) + @: > server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-auth.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-corre.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-cursor.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-cutpaste.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-d3des.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-hextile.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-main.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-rfbregion.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-rfbserver.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-rre.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-sockets.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-stats.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-tight.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-translate.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-vncauth.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-zlib.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-zrle.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-zrleoutstream.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/libvncserver/vino_server-zrlepalettehelper.$(OBJEXT): \ + server/libvncserver/$(am__dirstamp) \ + server/libvncserver/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-tube-servers-manager.$(OBJEXT): \ + server/$(am__dirstamp) server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-tube-server.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-status-tube-icon.$(OBJEXT): \ + server/$(am__dirstamp) server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-enums.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) +server/vino_server-vino-marshal.$(OBJEXT): server/$(am__dirstamp) \ + server/$(DEPDIR)/$(am__dirstamp) + +vino-server$(EXEEXT): $(vino_server_OBJECTS) $(vino_server_DEPENDENCIES) $(EXTRA_vino_server_DEPENDENCIES) + @rm -f vino-server$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(vino_server_OBJECTS) $(vino_server_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f server/*.$(OBJEXT) + -rm -f server/libvncserver/*.$(OBJEXT) + -rm -f server/miniupnp/*.$(OBJEXT) + -rm -f server/smclient/*.$(OBJEXT) + -rm -f server/smclient/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-cursor.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-dbus-error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-dbus-listener.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-dbus.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-enums.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-fb.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-input.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-marshal.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-mdns.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-prefs.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-prompt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-server.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-status-icon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-status-tube-icon.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-tube-server.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-upnp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/$(DEPDIR)/vino_server-vino-util.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-auth.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-corre.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-cursor.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-d3des.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-hextile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-rre.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-sockets.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-stats.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-tight.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-translate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-vncauth.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-zlib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-zrle.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-minisoap.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-miniwget.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-minixml.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/smclient/$(DEPDIR)/libeggsmclient_la-eggdesktopfile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient-xsmp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +server/smclient/libeggsmclient_la-eggsmclient.lo: server/smclient/eggsmclient.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/smclient/libeggsmclient_la-eggsmclient.lo -MD -MP -MF server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient.Tpo -c -o server/smclient/libeggsmclient_la-eggsmclient.lo `test -f 'server/smclient/eggsmclient.c' || echo '$(srcdir)/'`server/smclient/eggsmclient.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient.Tpo server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/smclient/eggsmclient.c' object='server/smclient/libeggsmclient_la-eggsmclient.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/smclient/libeggsmclient_la-eggsmclient.lo `test -f 'server/smclient/eggsmclient.c' || echo '$(srcdir)/'`server/smclient/eggsmclient.c + +server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo: server/smclient/eggsmclient-xsmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo -MD -MP -MF server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient-xsmp.Tpo -c -o server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo `test -f 'server/smclient/eggsmclient-xsmp.c' || echo '$(srcdir)/'`server/smclient/eggsmclient-xsmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient-xsmp.Tpo server/smclient/$(DEPDIR)/libeggsmclient_la-eggsmclient-xsmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/smclient/eggsmclient-xsmp.c' object='server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/smclient/libeggsmclient_la-eggsmclient-xsmp.lo `test -f 'server/smclient/eggsmclient-xsmp.c' || echo '$(srcdir)/'`server/smclient/eggsmclient-xsmp.c + +server/smclient/libeggsmclient_la-eggdesktopfile.lo: server/smclient/eggdesktopfile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/smclient/libeggsmclient_la-eggdesktopfile.lo -MD -MP -MF server/smclient/$(DEPDIR)/libeggsmclient_la-eggdesktopfile.Tpo -c -o server/smclient/libeggsmclient_la-eggdesktopfile.lo `test -f 'server/smclient/eggdesktopfile.c' || echo '$(srcdir)/'`server/smclient/eggdesktopfile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/smclient/$(DEPDIR)/libeggsmclient_la-eggdesktopfile.Tpo server/smclient/$(DEPDIR)/libeggsmclient_la-eggdesktopfile.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/smclient/eggdesktopfile.c' object='server/smclient/libeggsmclient_la-eggdesktopfile.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libeggsmclient_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/smclient/libeggsmclient_la-eggdesktopfile.lo `test -f 'server/smclient/eggdesktopfile.c' || echo '$(srcdir)/'`server/smclient/eggdesktopfile.c + +server/vino_server-vino-cursor.o: server/vino-cursor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-cursor.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-cursor.Tpo -c -o server/vino_server-vino-cursor.o `test -f 'server/vino-cursor.c' || echo '$(srcdir)/'`server/vino-cursor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-cursor.Tpo server/$(DEPDIR)/vino_server-vino-cursor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-cursor.c' object='server/vino_server-vino-cursor.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-cursor.o `test -f 'server/vino-cursor.c' || echo '$(srcdir)/'`server/vino-cursor.c + +server/vino_server-vino-cursor.obj: server/vino-cursor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-cursor.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-cursor.Tpo -c -o server/vino_server-vino-cursor.obj `if test -f 'server/vino-cursor.c'; then $(CYGPATH_W) 'server/vino-cursor.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-cursor.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-cursor.Tpo server/$(DEPDIR)/vino_server-vino-cursor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-cursor.c' object='server/vino_server-vino-cursor.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-cursor.obj `if test -f 'server/vino-cursor.c'; then $(CYGPATH_W) 'server/vino-cursor.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-cursor.c'; fi` + +server/vino_server-vino-dbus.o: server/vino-dbus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus.Tpo -c -o server/vino_server-vino-dbus.o `test -f 'server/vino-dbus.c' || echo '$(srcdir)/'`server/vino-dbus.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus.Tpo server/$(DEPDIR)/vino_server-vino-dbus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus.c' object='server/vino_server-vino-dbus.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus.o `test -f 'server/vino-dbus.c' || echo '$(srcdir)/'`server/vino-dbus.c + +server/vino_server-vino-dbus.obj: server/vino-dbus.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus.Tpo -c -o server/vino_server-vino-dbus.obj `if test -f 'server/vino-dbus.c'; then $(CYGPATH_W) 'server/vino-dbus.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus.Tpo server/$(DEPDIR)/vino_server-vino-dbus.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus.c' object='server/vino_server-vino-dbus.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus.obj `if test -f 'server/vino-dbus.c'; then $(CYGPATH_W) 'server/vino-dbus.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus.c'; fi` + +server/vino_server-vino-fb.o: server/vino-fb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-fb.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-fb.Tpo -c -o server/vino_server-vino-fb.o `test -f 'server/vino-fb.c' || echo '$(srcdir)/'`server/vino-fb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-fb.Tpo server/$(DEPDIR)/vino_server-vino-fb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-fb.c' object='server/vino_server-vino-fb.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-fb.o `test -f 'server/vino-fb.c' || echo '$(srcdir)/'`server/vino-fb.c + +server/vino_server-vino-fb.obj: server/vino-fb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-fb.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-fb.Tpo -c -o server/vino_server-vino-fb.obj `if test -f 'server/vino-fb.c'; then $(CYGPATH_W) 'server/vino-fb.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-fb.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-fb.Tpo server/$(DEPDIR)/vino_server-vino-fb.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-fb.c' object='server/vino_server-vino-fb.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-fb.obj `if test -f 'server/vino-fb.c'; then $(CYGPATH_W) 'server/vino-fb.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-fb.c'; fi` + +server/vino_server-vino-input.o: server/vino-input.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-input.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-input.Tpo -c -o server/vino_server-vino-input.o `test -f 'server/vino-input.c' || echo '$(srcdir)/'`server/vino-input.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-input.Tpo server/$(DEPDIR)/vino_server-vino-input.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-input.c' object='server/vino_server-vino-input.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-input.o `test -f 'server/vino-input.c' || echo '$(srcdir)/'`server/vino-input.c + +server/vino_server-vino-input.obj: server/vino-input.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-input.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-input.Tpo -c -o server/vino_server-vino-input.obj `if test -f 'server/vino-input.c'; then $(CYGPATH_W) 'server/vino-input.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-input.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-input.Tpo server/$(DEPDIR)/vino_server-vino-input.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-input.c' object='server/vino_server-vino-input.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-input.obj `if test -f 'server/vino-input.c'; then $(CYGPATH_W) 'server/vino-input.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-input.c'; fi` + +server/vino_server-vino-main.o: server/vino-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-main.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-main.Tpo -c -o server/vino_server-vino-main.o `test -f 'server/vino-main.c' || echo '$(srcdir)/'`server/vino-main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-main.Tpo server/$(DEPDIR)/vino_server-vino-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-main.c' object='server/vino_server-vino-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-main.o `test -f 'server/vino-main.c' || echo '$(srcdir)/'`server/vino-main.c + +server/vino_server-vino-main.obj: server/vino-main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-main.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-main.Tpo -c -o server/vino_server-vino-main.obj `if test -f 'server/vino-main.c'; then $(CYGPATH_W) 'server/vino-main.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-main.Tpo server/$(DEPDIR)/vino_server-vino-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-main.c' object='server/vino_server-vino-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-main.obj `if test -f 'server/vino-main.c'; then $(CYGPATH_W) 'server/vino-main.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-main.c'; fi` + +server/vino_server-vino-mdns.o: server/vino-mdns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-mdns.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-mdns.Tpo -c -o server/vino_server-vino-mdns.o `test -f 'server/vino-mdns.c' || echo '$(srcdir)/'`server/vino-mdns.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-mdns.Tpo server/$(DEPDIR)/vino_server-vino-mdns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-mdns.c' object='server/vino_server-vino-mdns.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-mdns.o `test -f 'server/vino-mdns.c' || echo '$(srcdir)/'`server/vino-mdns.c + +server/vino_server-vino-mdns.obj: server/vino-mdns.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-mdns.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-mdns.Tpo -c -o server/vino_server-vino-mdns.obj `if test -f 'server/vino-mdns.c'; then $(CYGPATH_W) 'server/vino-mdns.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-mdns.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-mdns.Tpo server/$(DEPDIR)/vino_server-vino-mdns.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-mdns.c' object='server/vino_server-vino-mdns.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-mdns.obj `if test -f 'server/vino-mdns.c'; then $(CYGPATH_W) 'server/vino-mdns.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-mdns.c'; fi` + +server/vino_server-vino-prefs.o: server/vino-prefs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-prefs.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-prefs.Tpo -c -o server/vino_server-vino-prefs.o `test -f 'server/vino-prefs.c' || echo '$(srcdir)/'`server/vino-prefs.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-prefs.Tpo server/$(DEPDIR)/vino_server-vino-prefs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-prefs.c' object='server/vino_server-vino-prefs.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-prefs.o `test -f 'server/vino-prefs.c' || echo '$(srcdir)/'`server/vino-prefs.c + +server/vino_server-vino-prefs.obj: server/vino-prefs.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-prefs.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-prefs.Tpo -c -o server/vino_server-vino-prefs.obj `if test -f 'server/vino-prefs.c'; then $(CYGPATH_W) 'server/vino-prefs.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-prefs.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-prefs.Tpo server/$(DEPDIR)/vino_server-vino-prefs.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-prefs.c' object='server/vino_server-vino-prefs.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-prefs.obj `if test -f 'server/vino-prefs.c'; then $(CYGPATH_W) 'server/vino-prefs.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-prefs.c'; fi` + +server/vino_server-vino-prompt.o: server/vino-prompt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-prompt.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-prompt.Tpo -c -o server/vino_server-vino-prompt.o `test -f 'server/vino-prompt.c' || echo '$(srcdir)/'`server/vino-prompt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-prompt.Tpo server/$(DEPDIR)/vino_server-vino-prompt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-prompt.c' object='server/vino_server-vino-prompt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-prompt.o `test -f 'server/vino-prompt.c' || echo '$(srcdir)/'`server/vino-prompt.c + +server/vino_server-vino-prompt.obj: server/vino-prompt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-prompt.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-prompt.Tpo -c -o server/vino_server-vino-prompt.obj `if test -f 'server/vino-prompt.c'; then $(CYGPATH_W) 'server/vino-prompt.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-prompt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-prompt.Tpo server/$(DEPDIR)/vino_server-vino-prompt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-prompt.c' object='server/vino_server-vino-prompt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-prompt.obj `if test -f 'server/vino-prompt.c'; then $(CYGPATH_W) 'server/vino-prompt.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-prompt.c'; fi` + +server/vino_server-vino-server.o: server/vino-server.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-server.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-server.Tpo -c -o server/vino_server-vino-server.o `test -f 'server/vino-server.c' || echo '$(srcdir)/'`server/vino-server.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-server.Tpo server/$(DEPDIR)/vino_server-vino-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-server.c' object='server/vino_server-vino-server.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-server.o `test -f 'server/vino-server.c' || echo '$(srcdir)/'`server/vino-server.c + +server/vino_server-vino-server.obj: server/vino-server.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-server.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-server.Tpo -c -o server/vino_server-vino-server.obj `if test -f 'server/vino-server.c'; then $(CYGPATH_W) 'server/vino-server.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-server.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-server.Tpo server/$(DEPDIR)/vino_server-vino-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-server.c' object='server/vino_server-vino-server.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-server.obj `if test -f 'server/vino-server.c'; then $(CYGPATH_W) 'server/vino-server.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-server.c'; fi` + +server/vino_server-vino-util.o: server/vino-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-util.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-util.Tpo -c -o server/vino_server-vino-util.o `test -f 'server/vino-util.c' || echo '$(srcdir)/'`server/vino-util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-util.Tpo server/$(DEPDIR)/vino_server-vino-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-util.c' object='server/vino_server-vino-util.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-util.o `test -f 'server/vino-util.c' || echo '$(srcdir)/'`server/vino-util.c + +server/vino_server-vino-util.obj: server/vino-util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-util.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-util.Tpo -c -o server/vino_server-vino-util.obj `if test -f 'server/vino-util.c'; then $(CYGPATH_W) 'server/vino-util.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-util.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-util.Tpo server/$(DEPDIR)/vino_server-vino-util.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-util.c' object='server/vino_server-vino-util.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-util.obj `if test -f 'server/vino-util.c'; then $(CYGPATH_W) 'server/vino-util.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-util.c'; fi` + +server/vino_server-vino-status-icon.o: server/vino-status-icon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-status-icon.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-status-icon.Tpo -c -o server/vino_server-vino-status-icon.o `test -f 'server/vino-status-icon.c' || echo '$(srcdir)/'`server/vino-status-icon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-status-icon.Tpo server/$(DEPDIR)/vino_server-vino-status-icon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-status-icon.c' object='server/vino_server-vino-status-icon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-status-icon.o `test -f 'server/vino-status-icon.c' || echo '$(srcdir)/'`server/vino-status-icon.c + +server/vino_server-vino-status-icon.obj: server/vino-status-icon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-status-icon.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-status-icon.Tpo -c -o server/vino_server-vino-status-icon.obj `if test -f 'server/vino-status-icon.c'; then $(CYGPATH_W) 'server/vino-status-icon.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-status-icon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-status-icon.Tpo server/$(DEPDIR)/vino_server-vino-status-icon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-status-icon.c' object='server/vino_server-vino-status-icon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-status-icon.obj `if test -f 'server/vino-status-icon.c'; then $(CYGPATH_W) 'server/vino-status-icon.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-status-icon.c'; fi` + +server/vino_server-vino-dbus-listener.o: server/vino-dbus-listener.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus-listener.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus-listener.Tpo -c -o server/vino_server-vino-dbus-listener.o `test -f 'server/vino-dbus-listener.c' || echo '$(srcdir)/'`server/vino-dbus-listener.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus-listener.Tpo server/$(DEPDIR)/vino_server-vino-dbus-listener.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus-listener.c' object='server/vino_server-vino-dbus-listener.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus-listener.o `test -f 'server/vino-dbus-listener.c' || echo '$(srcdir)/'`server/vino-dbus-listener.c + +server/vino_server-vino-dbus-listener.obj: server/vino-dbus-listener.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus-listener.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus-listener.Tpo -c -o server/vino_server-vino-dbus-listener.obj `if test -f 'server/vino-dbus-listener.c'; then $(CYGPATH_W) 'server/vino-dbus-listener.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus-listener.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus-listener.Tpo server/$(DEPDIR)/vino_server-vino-dbus-listener.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus-listener.c' object='server/vino_server-vino-dbus-listener.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus-listener.obj `if test -f 'server/vino-dbus-listener.c'; then $(CYGPATH_W) 'server/vino-dbus-listener.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus-listener.c'; fi` + +server/vino_server-vino-dbus-error.o: server/vino-dbus-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus-error.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus-error.Tpo -c -o server/vino_server-vino-dbus-error.o `test -f 'server/vino-dbus-error.c' || echo '$(srcdir)/'`server/vino-dbus-error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus-error.Tpo server/$(DEPDIR)/vino_server-vino-dbus-error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus-error.c' object='server/vino_server-vino-dbus-error.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus-error.o `test -f 'server/vino-dbus-error.c' || echo '$(srcdir)/'`server/vino-dbus-error.c + +server/vino_server-vino-dbus-error.obj: server/vino-dbus-error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-dbus-error.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-dbus-error.Tpo -c -o server/vino_server-vino-dbus-error.obj `if test -f 'server/vino-dbus-error.c'; then $(CYGPATH_W) 'server/vino-dbus-error.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus-error.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-dbus-error.Tpo server/$(DEPDIR)/vino_server-vino-dbus-error.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-dbus-error.c' object='server/vino_server-vino-dbus-error.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-dbus-error.obj `if test -f 'server/vino-dbus-error.c'; then $(CYGPATH_W) 'server/vino-dbus-error.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-dbus-error.c'; fi` + +server/vino_server-vino-upnp.o: server/vino-upnp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-upnp.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-upnp.Tpo -c -o server/vino_server-vino-upnp.o `test -f 'server/vino-upnp.c' || echo '$(srcdir)/'`server/vino-upnp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-upnp.Tpo server/$(DEPDIR)/vino_server-vino-upnp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-upnp.c' object='server/vino_server-vino-upnp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-upnp.o `test -f 'server/vino-upnp.c' || echo '$(srcdir)/'`server/vino-upnp.c + +server/vino_server-vino-upnp.obj: server/vino-upnp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-upnp.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-upnp.Tpo -c -o server/vino_server-vino-upnp.obj `if test -f 'server/vino-upnp.c'; then $(CYGPATH_W) 'server/vino-upnp.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-upnp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-upnp.Tpo server/$(DEPDIR)/vino_server-vino-upnp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-upnp.c' object='server/vino_server-vino-upnp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-upnp.obj `if test -f 'server/vino-upnp.c'; then $(CYGPATH_W) 'server/vino-upnp.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-upnp.c'; fi` + +server/miniupnp/vino_server-igd_desc_parse.o: server/miniupnp/igd_desc_parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-igd_desc_parse.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Tpo -c -o server/miniupnp/vino_server-igd_desc_parse.o `test -f 'server/miniupnp/igd_desc_parse.c' || echo '$(srcdir)/'`server/miniupnp/igd_desc_parse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Tpo server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/igd_desc_parse.c' object='server/miniupnp/vino_server-igd_desc_parse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-igd_desc_parse.o `test -f 'server/miniupnp/igd_desc_parse.c' || echo '$(srcdir)/'`server/miniupnp/igd_desc_parse.c + +server/miniupnp/vino_server-igd_desc_parse.obj: server/miniupnp/igd_desc_parse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-igd_desc_parse.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Tpo -c -o server/miniupnp/vino_server-igd_desc_parse.obj `if test -f 'server/miniupnp/igd_desc_parse.c'; then $(CYGPATH_W) 'server/miniupnp/igd_desc_parse.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/igd_desc_parse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Tpo server/miniupnp/$(DEPDIR)/vino_server-igd_desc_parse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/igd_desc_parse.c' object='server/miniupnp/vino_server-igd_desc_parse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-igd_desc_parse.obj `if test -f 'server/miniupnp/igd_desc_parse.c'; then $(CYGPATH_W) 'server/miniupnp/igd_desc_parse.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/igd_desc_parse.c'; fi` + +server/miniupnp/vino_server-minisoap.o: server/miniupnp/minisoap.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minisoap.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minisoap.Tpo -c -o server/miniupnp/vino_server-minisoap.o `test -f 'server/miniupnp/minisoap.c' || echo '$(srcdir)/'`server/miniupnp/minisoap.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minisoap.Tpo server/miniupnp/$(DEPDIR)/vino_server-minisoap.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minisoap.c' object='server/miniupnp/vino_server-minisoap.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minisoap.o `test -f 'server/miniupnp/minisoap.c' || echo '$(srcdir)/'`server/miniupnp/minisoap.c + +server/miniupnp/vino_server-minisoap.obj: server/miniupnp/minisoap.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minisoap.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minisoap.Tpo -c -o server/miniupnp/vino_server-minisoap.obj `if test -f 'server/miniupnp/minisoap.c'; then $(CYGPATH_W) 'server/miniupnp/minisoap.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minisoap.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minisoap.Tpo server/miniupnp/$(DEPDIR)/vino_server-minisoap.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minisoap.c' object='server/miniupnp/vino_server-minisoap.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minisoap.obj `if test -f 'server/miniupnp/minisoap.c'; then $(CYGPATH_W) 'server/miniupnp/minisoap.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minisoap.c'; fi` + +server/miniupnp/vino_server-minissdpc.o: server/miniupnp/minissdpc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minissdpc.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Tpo -c -o server/miniupnp/vino_server-minissdpc.o `test -f 'server/miniupnp/minissdpc.c' || echo '$(srcdir)/'`server/miniupnp/minissdpc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Tpo server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minissdpc.c' object='server/miniupnp/vino_server-minissdpc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minissdpc.o `test -f 'server/miniupnp/minissdpc.c' || echo '$(srcdir)/'`server/miniupnp/minissdpc.c + +server/miniupnp/vino_server-minissdpc.obj: server/miniupnp/minissdpc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minissdpc.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Tpo -c -o server/miniupnp/vino_server-minissdpc.obj `if test -f 'server/miniupnp/minissdpc.c'; then $(CYGPATH_W) 'server/miniupnp/minissdpc.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minissdpc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Tpo server/miniupnp/$(DEPDIR)/vino_server-minissdpc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minissdpc.c' object='server/miniupnp/vino_server-minissdpc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minissdpc.obj `if test -f 'server/miniupnp/minissdpc.c'; then $(CYGPATH_W) 'server/miniupnp/minissdpc.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minissdpc.c'; fi` + +server/miniupnp/vino_server-miniupnpc.o: server/miniupnp/miniupnpc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-miniupnpc.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Tpo -c -o server/miniupnp/vino_server-miniupnpc.o `test -f 'server/miniupnp/miniupnpc.c' || echo '$(srcdir)/'`server/miniupnp/miniupnpc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Tpo server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/miniupnpc.c' object='server/miniupnp/vino_server-miniupnpc.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-miniupnpc.o `test -f 'server/miniupnp/miniupnpc.c' || echo '$(srcdir)/'`server/miniupnp/miniupnpc.c + +server/miniupnp/vino_server-miniupnpc.obj: server/miniupnp/miniupnpc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-miniupnpc.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Tpo -c -o server/miniupnp/vino_server-miniupnpc.obj `if test -f 'server/miniupnp/miniupnpc.c'; then $(CYGPATH_W) 'server/miniupnp/miniupnpc.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/miniupnpc.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Tpo server/miniupnp/$(DEPDIR)/vino_server-miniupnpc.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/miniupnpc.c' object='server/miniupnp/vino_server-miniupnpc.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-miniupnpc.obj `if test -f 'server/miniupnp/miniupnpc.c'; then $(CYGPATH_W) 'server/miniupnp/miniupnpc.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/miniupnpc.c'; fi` + +server/miniupnp/vino_server-miniwget.o: server/miniupnp/miniwget.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-miniwget.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-miniwget.Tpo -c -o server/miniupnp/vino_server-miniwget.o `test -f 'server/miniupnp/miniwget.c' || echo '$(srcdir)/'`server/miniupnp/miniwget.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-miniwget.Tpo server/miniupnp/$(DEPDIR)/vino_server-miniwget.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/miniwget.c' object='server/miniupnp/vino_server-miniwget.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-miniwget.o `test -f 'server/miniupnp/miniwget.c' || echo '$(srcdir)/'`server/miniupnp/miniwget.c + +server/miniupnp/vino_server-miniwget.obj: server/miniupnp/miniwget.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-miniwget.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-miniwget.Tpo -c -o server/miniupnp/vino_server-miniwget.obj `if test -f 'server/miniupnp/miniwget.c'; then $(CYGPATH_W) 'server/miniupnp/miniwget.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/miniwget.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-miniwget.Tpo server/miniupnp/$(DEPDIR)/vino_server-miniwget.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/miniwget.c' object='server/miniupnp/vino_server-miniwget.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-miniwget.obj `if test -f 'server/miniupnp/miniwget.c'; then $(CYGPATH_W) 'server/miniupnp/miniwget.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/miniwget.c'; fi` + +server/miniupnp/vino_server-minixml.o: server/miniupnp/minixml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minixml.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minixml.Tpo -c -o server/miniupnp/vino_server-minixml.o `test -f 'server/miniupnp/minixml.c' || echo '$(srcdir)/'`server/miniupnp/minixml.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minixml.Tpo server/miniupnp/$(DEPDIR)/vino_server-minixml.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minixml.c' object='server/miniupnp/vino_server-minixml.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minixml.o `test -f 'server/miniupnp/minixml.c' || echo '$(srcdir)/'`server/miniupnp/minixml.c + +server/miniupnp/vino_server-minixml.obj: server/miniupnp/minixml.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-minixml.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-minixml.Tpo -c -o server/miniupnp/vino_server-minixml.obj `if test -f 'server/miniupnp/minixml.c'; then $(CYGPATH_W) 'server/miniupnp/minixml.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minixml.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-minixml.Tpo server/miniupnp/$(DEPDIR)/vino_server-minixml.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/minixml.c' object='server/miniupnp/vino_server-minixml.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-minixml.obj `if test -f 'server/miniupnp/minixml.c'; then $(CYGPATH_W) 'server/miniupnp/minixml.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/minixml.c'; fi` + +server/miniupnp/vino_server-upnpcommands.o: server/miniupnp/upnpcommands.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-upnpcommands.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Tpo -c -o server/miniupnp/vino_server-upnpcommands.o `test -f 'server/miniupnp/upnpcommands.c' || echo '$(srcdir)/'`server/miniupnp/upnpcommands.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Tpo server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/upnpcommands.c' object='server/miniupnp/vino_server-upnpcommands.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-upnpcommands.o `test -f 'server/miniupnp/upnpcommands.c' || echo '$(srcdir)/'`server/miniupnp/upnpcommands.c + +server/miniupnp/vino_server-upnpcommands.obj: server/miniupnp/upnpcommands.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-upnpcommands.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Tpo -c -o server/miniupnp/vino_server-upnpcommands.obj `if test -f 'server/miniupnp/upnpcommands.c'; then $(CYGPATH_W) 'server/miniupnp/upnpcommands.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/upnpcommands.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Tpo server/miniupnp/$(DEPDIR)/vino_server-upnpcommands.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/upnpcommands.c' object='server/miniupnp/vino_server-upnpcommands.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-upnpcommands.obj `if test -f 'server/miniupnp/upnpcommands.c'; then $(CYGPATH_W) 'server/miniupnp/upnpcommands.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/upnpcommands.c'; fi` + +server/miniupnp/vino_server-upnpreplyparse.o: server/miniupnp/upnpreplyparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-upnpreplyparse.o -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Tpo -c -o server/miniupnp/vino_server-upnpreplyparse.o `test -f 'server/miniupnp/upnpreplyparse.c' || echo '$(srcdir)/'`server/miniupnp/upnpreplyparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Tpo server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/upnpreplyparse.c' object='server/miniupnp/vino_server-upnpreplyparse.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-upnpreplyparse.o `test -f 'server/miniupnp/upnpreplyparse.c' || echo '$(srcdir)/'`server/miniupnp/upnpreplyparse.c + +server/miniupnp/vino_server-upnpreplyparse.obj: server/miniupnp/upnpreplyparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/miniupnp/vino_server-upnpreplyparse.obj -MD -MP -MF server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Tpo -c -o server/miniupnp/vino_server-upnpreplyparse.obj `if test -f 'server/miniupnp/upnpreplyparse.c'; then $(CYGPATH_W) 'server/miniupnp/upnpreplyparse.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/upnpreplyparse.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Tpo server/miniupnp/$(DEPDIR)/vino_server-upnpreplyparse.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/miniupnp/upnpreplyparse.c' object='server/miniupnp/vino_server-upnpreplyparse.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/miniupnp/vino_server-upnpreplyparse.obj `if test -f 'server/miniupnp/upnpreplyparse.c'; then $(CYGPATH_W) 'server/miniupnp/upnpreplyparse.c'; else $(CYGPATH_W) '$(srcdir)/server/miniupnp/upnpreplyparse.c'; fi` + +server/libvncserver/vino_server-auth.o: server/libvncserver/auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-auth.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-auth.Tpo -c -o server/libvncserver/vino_server-auth.o `test -f 'server/libvncserver/auth.c' || echo '$(srcdir)/'`server/libvncserver/auth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-auth.Tpo server/libvncserver/$(DEPDIR)/vino_server-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/auth.c' object='server/libvncserver/vino_server-auth.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-auth.o `test -f 'server/libvncserver/auth.c' || echo '$(srcdir)/'`server/libvncserver/auth.c + +server/libvncserver/vino_server-auth.obj: server/libvncserver/auth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-auth.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-auth.Tpo -c -o server/libvncserver/vino_server-auth.obj `if test -f 'server/libvncserver/auth.c'; then $(CYGPATH_W) 'server/libvncserver/auth.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/auth.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-auth.Tpo server/libvncserver/$(DEPDIR)/vino_server-auth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/auth.c' object='server/libvncserver/vino_server-auth.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-auth.obj `if test -f 'server/libvncserver/auth.c'; then $(CYGPATH_W) 'server/libvncserver/auth.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/auth.c'; fi` + +server/libvncserver/vino_server-corre.o: server/libvncserver/corre.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-corre.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-corre.Tpo -c -o server/libvncserver/vino_server-corre.o `test -f 'server/libvncserver/corre.c' || echo '$(srcdir)/'`server/libvncserver/corre.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-corre.Tpo server/libvncserver/$(DEPDIR)/vino_server-corre.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/corre.c' object='server/libvncserver/vino_server-corre.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-corre.o `test -f 'server/libvncserver/corre.c' || echo '$(srcdir)/'`server/libvncserver/corre.c + +server/libvncserver/vino_server-corre.obj: server/libvncserver/corre.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-corre.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-corre.Tpo -c -o server/libvncserver/vino_server-corre.obj `if test -f 'server/libvncserver/corre.c'; then $(CYGPATH_W) 'server/libvncserver/corre.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/corre.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-corre.Tpo server/libvncserver/$(DEPDIR)/vino_server-corre.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/corre.c' object='server/libvncserver/vino_server-corre.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-corre.obj `if test -f 'server/libvncserver/corre.c'; then $(CYGPATH_W) 'server/libvncserver/corre.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/corre.c'; fi` + +server/libvncserver/vino_server-cursor.o: server/libvncserver/cursor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-cursor.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-cursor.Tpo -c -o server/libvncserver/vino_server-cursor.o `test -f 'server/libvncserver/cursor.c' || echo '$(srcdir)/'`server/libvncserver/cursor.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-cursor.Tpo server/libvncserver/$(DEPDIR)/vino_server-cursor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/cursor.c' object='server/libvncserver/vino_server-cursor.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-cursor.o `test -f 'server/libvncserver/cursor.c' || echo '$(srcdir)/'`server/libvncserver/cursor.c + +server/libvncserver/vino_server-cursor.obj: server/libvncserver/cursor.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-cursor.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-cursor.Tpo -c -o server/libvncserver/vino_server-cursor.obj `if test -f 'server/libvncserver/cursor.c'; then $(CYGPATH_W) 'server/libvncserver/cursor.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/cursor.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-cursor.Tpo server/libvncserver/$(DEPDIR)/vino_server-cursor.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/cursor.c' object='server/libvncserver/vino_server-cursor.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-cursor.obj `if test -f 'server/libvncserver/cursor.c'; then $(CYGPATH_W) 'server/libvncserver/cursor.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/cursor.c'; fi` + +server/libvncserver/vino_server-cutpaste.o: server/libvncserver/cutpaste.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-cutpaste.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Tpo -c -o server/libvncserver/vino_server-cutpaste.o `test -f 'server/libvncserver/cutpaste.c' || echo '$(srcdir)/'`server/libvncserver/cutpaste.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Tpo server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/cutpaste.c' object='server/libvncserver/vino_server-cutpaste.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-cutpaste.o `test -f 'server/libvncserver/cutpaste.c' || echo '$(srcdir)/'`server/libvncserver/cutpaste.c + +server/libvncserver/vino_server-cutpaste.obj: server/libvncserver/cutpaste.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-cutpaste.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Tpo -c -o server/libvncserver/vino_server-cutpaste.obj `if test -f 'server/libvncserver/cutpaste.c'; then $(CYGPATH_W) 'server/libvncserver/cutpaste.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/cutpaste.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Tpo server/libvncserver/$(DEPDIR)/vino_server-cutpaste.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/cutpaste.c' object='server/libvncserver/vino_server-cutpaste.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-cutpaste.obj `if test -f 'server/libvncserver/cutpaste.c'; then $(CYGPATH_W) 'server/libvncserver/cutpaste.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/cutpaste.c'; fi` + +server/libvncserver/vino_server-d3des.o: server/libvncserver/d3des.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-d3des.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-d3des.Tpo -c -o server/libvncserver/vino_server-d3des.o `test -f 'server/libvncserver/d3des.c' || echo '$(srcdir)/'`server/libvncserver/d3des.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-d3des.Tpo server/libvncserver/$(DEPDIR)/vino_server-d3des.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/d3des.c' object='server/libvncserver/vino_server-d3des.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-d3des.o `test -f 'server/libvncserver/d3des.c' || echo '$(srcdir)/'`server/libvncserver/d3des.c + +server/libvncserver/vino_server-d3des.obj: server/libvncserver/d3des.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-d3des.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-d3des.Tpo -c -o server/libvncserver/vino_server-d3des.obj `if test -f 'server/libvncserver/d3des.c'; then $(CYGPATH_W) 'server/libvncserver/d3des.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/d3des.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-d3des.Tpo server/libvncserver/$(DEPDIR)/vino_server-d3des.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/d3des.c' object='server/libvncserver/vino_server-d3des.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-d3des.obj `if test -f 'server/libvncserver/d3des.c'; then $(CYGPATH_W) 'server/libvncserver/d3des.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/d3des.c'; fi` + +server/libvncserver/vino_server-hextile.o: server/libvncserver/hextile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-hextile.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-hextile.Tpo -c -o server/libvncserver/vino_server-hextile.o `test -f 'server/libvncserver/hextile.c' || echo '$(srcdir)/'`server/libvncserver/hextile.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-hextile.Tpo server/libvncserver/$(DEPDIR)/vino_server-hextile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/hextile.c' object='server/libvncserver/vino_server-hextile.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-hextile.o `test -f 'server/libvncserver/hextile.c' || echo '$(srcdir)/'`server/libvncserver/hextile.c + +server/libvncserver/vino_server-hextile.obj: server/libvncserver/hextile.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-hextile.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-hextile.Tpo -c -o server/libvncserver/vino_server-hextile.obj `if test -f 'server/libvncserver/hextile.c'; then $(CYGPATH_W) 'server/libvncserver/hextile.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/hextile.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-hextile.Tpo server/libvncserver/$(DEPDIR)/vino_server-hextile.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/hextile.c' object='server/libvncserver/vino_server-hextile.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-hextile.obj `if test -f 'server/libvncserver/hextile.c'; then $(CYGPATH_W) 'server/libvncserver/hextile.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/hextile.c'; fi` + +server/libvncserver/vino_server-main.o: server/libvncserver/main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-main.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-main.Tpo -c -o server/libvncserver/vino_server-main.o `test -f 'server/libvncserver/main.c' || echo '$(srcdir)/'`server/libvncserver/main.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-main.Tpo server/libvncserver/$(DEPDIR)/vino_server-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/main.c' object='server/libvncserver/vino_server-main.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-main.o `test -f 'server/libvncserver/main.c' || echo '$(srcdir)/'`server/libvncserver/main.c + +server/libvncserver/vino_server-main.obj: server/libvncserver/main.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-main.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-main.Tpo -c -o server/libvncserver/vino_server-main.obj `if test -f 'server/libvncserver/main.c'; then $(CYGPATH_W) 'server/libvncserver/main.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/main.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-main.Tpo server/libvncserver/$(DEPDIR)/vino_server-main.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/main.c' object='server/libvncserver/vino_server-main.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-main.obj `if test -f 'server/libvncserver/main.c'; then $(CYGPATH_W) 'server/libvncserver/main.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/main.c'; fi` + +server/libvncserver/vino_server-rfbregion.o: server/libvncserver/rfbregion.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rfbregion.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Tpo -c -o server/libvncserver/vino_server-rfbregion.o `test -f 'server/libvncserver/rfbregion.c' || echo '$(srcdir)/'`server/libvncserver/rfbregion.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Tpo server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rfbregion.c' object='server/libvncserver/vino_server-rfbregion.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rfbregion.o `test -f 'server/libvncserver/rfbregion.c' || echo '$(srcdir)/'`server/libvncserver/rfbregion.c + +server/libvncserver/vino_server-rfbregion.obj: server/libvncserver/rfbregion.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rfbregion.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Tpo -c -o server/libvncserver/vino_server-rfbregion.obj `if test -f 'server/libvncserver/rfbregion.c'; then $(CYGPATH_W) 'server/libvncserver/rfbregion.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rfbregion.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Tpo server/libvncserver/$(DEPDIR)/vino_server-rfbregion.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rfbregion.c' object='server/libvncserver/vino_server-rfbregion.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rfbregion.obj `if test -f 'server/libvncserver/rfbregion.c'; then $(CYGPATH_W) 'server/libvncserver/rfbregion.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rfbregion.c'; fi` + +server/libvncserver/vino_server-rfbserver.o: server/libvncserver/rfbserver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rfbserver.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Tpo -c -o server/libvncserver/vino_server-rfbserver.o `test -f 'server/libvncserver/rfbserver.c' || echo '$(srcdir)/'`server/libvncserver/rfbserver.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Tpo server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rfbserver.c' object='server/libvncserver/vino_server-rfbserver.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rfbserver.o `test -f 'server/libvncserver/rfbserver.c' || echo '$(srcdir)/'`server/libvncserver/rfbserver.c + +server/libvncserver/vino_server-rfbserver.obj: server/libvncserver/rfbserver.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rfbserver.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Tpo -c -o server/libvncserver/vino_server-rfbserver.obj `if test -f 'server/libvncserver/rfbserver.c'; then $(CYGPATH_W) 'server/libvncserver/rfbserver.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rfbserver.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Tpo server/libvncserver/$(DEPDIR)/vino_server-rfbserver.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rfbserver.c' object='server/libvncserver/vino_server-rfbserver.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rfbserver.obj `if test -f 'server/libvncserver/rfbserver.c'; then $(CYGPATH_W) 'server/libvncserver/rfbserver.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rfbserver.c'; fi` + +server/libvncserver/vino_server-rre.o: server/libvncserver/rre.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rre.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rre.Tpo -c -o server/libvncserver/vino_server-rre.o `test -f 'server/libvncserver/rre.c' || echo '$(srcdir)/'`server/libvncserver/rre.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rre.Tpo server/libvncserver/$(DEPDIR)/vino_server-rre.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rre.c' object='server/libvncserver/vino_server-rre.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rre.o `test -f 'server/libvncserver/rre.c' || echo '$(srcdir)/'`server/libvncserver/rre.c + +server/libvncserver/vino_server-rre.obj: server/libvncserver/rre.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-rre.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-rre.Tpo -c -o server/libvncserver/vino_server-rre.obj `if test -f 'server/libvncserver/rre.c'; then $(CYGPATH_W) 'server/libvncserver/rre.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rre.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-rre.Tpo server/libvncserver/$(DEPDIR)/vino_server-rre.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/rre.c' object='server/libvncserver/vino_server-rre.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-rre.obj `if test -f 'server/libvncserver/rre.c'; then $(CYGPATH_W) 'server/libvncserver/rre.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/rre.c'; fi` + +server/libvncserver/vino_server-sockets.o: server/libvncserver/sockets.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-sockets.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-sockets.Tpo -c -o server/libvncserver/vino_server-sockets.o `test -f 'server/libvncserver/sockets.c' || echo '$(srcdir)/'`server/libvncserver/sockets.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-sockets.Tpo server/libvncserver/$(DEPDIR)/vino_server-sockets.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/sockets.c' object='server/libvncserver/vino_server-sockets.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-sockets.o `test -f 'server/libvncserver/sockets.c' || echo '$(srcdir)/'`server/libvncserver/sockets.c + +server/libvncserver/vino_server-sockets.obj: server/libvncserver/sockets.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-sockets.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-sockets.Tpo -c -o server/libvncserver/vino_server-sockets.obj `if test -f 'server/libvncserver/sockets.c'; then $(CYGPATH_W) 'server/libvncserver/sockets.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/sockets.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-sockets.Tpo server/libvncserver/$(DEPDIR)/vino_server-sockets.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/sockets.c' object='server/libvncserver/vino_server-sockets.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-sockets.obj `if test -f 'server/libvncserver/sockets.c'; then $(CYGPATH_W) 'server/libvncserver/sockets.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/sockets.c'; fi` + +server/libvncserver/vino_server-stats.o: server/libvncserver/stats.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-stats.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-stats.Tpo -c -o server/libvncserver/vino_server-stats.o `test -f 'server/libvncserver/stats.c' || echo '$(srcdir)/'`server/libvncserver/stats.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-stats.Tpo server/libvncserver/$(DEPDIR)/vino_server-stats.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/stats.c' object='server/libvncserver/vino_server-stats.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-stats.o `test -f 'server/libvncserver/stats.c' || echo '$(srcdir)/'`server/libvncserver/stats.c + +server/libvncserver/vino_server-stats.obj: server/libvncserver/stats.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-stats.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-stats.Tpo -c -o server/libvncserver/vino_server-stats.obj `if test -f 'server/libvncserver/stats.c'; then $(CYGPATH_W) 'server/libvncserver/stats.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/stats.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-stats.Tpo server/libvncserver/$(DEPDIR)/vino_server-stats.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/stats.c' object='server/libvncserver/vino_server-stats.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-stats.obj `if test -f 'server/libvncserver/stats.c'; then $(CYGPATH_W) 'server/libvncserver/stats.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/stats.c'; fi` + +server/libvncserver/vino_server-tight.o: server/libvncserver/tight.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-tight.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-tight.Tpo -c -o server/libvncserver/vino_server-tight.o `test -f 'server/libvncserver/tight.c' || echo '$(srcdir)/'`server/libvncserver/tight.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-tight.Tpo server/libvncserver/$(DEPDIR)/vino_server-tight.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/tight.c' object='server/libvncserver/vino_server-tight.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-tight.o `test -f 'server/libvncserver/tight.c' || echo '$(srcdir)/'`server/libvncserver/tight.c + +server/libvncserver/vino_server-tight.obj: server/libvncserver/tight.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-tight.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-tight.Tpo -c -o server/libvncserver/vino_server-tight.obj `if test -f 'server/libvncserver/tight.c'; then $(CYGPATH_W) 'server/libvncserver/tight.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/tight.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-tight.Tpo server/libvncserver/$(DEPDIR)/vino_server-tight.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/tight.c' object='server/libvncserver/vino_server-tight.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-tight.obj `if test -f 'server/libvncserver/tight.c'; then $(CYGPATH_W) 'server/libvncserver/tight.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/tight.c'; fi` + +server/libvncserver/vino_server-translate.o: server/libvncserver/translate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-translate.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-translate.Tpo -c -o server/libvncserver/vino_server-translate.o `test -f 'server/libvncserver/translate.c' || echo '$(srcdir)/'`server/libvncserver/translate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-translate.Tpo server/libvncserver/$(DEPDIR)/vino_server-translate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/translate.c' object='server/libvncserver/vino_server-translate.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-translate.o `test -f 'server/libvncserver/translate.c' || echo '$(srcdir)/'`server/libvncserver/translate.c + +server/libvncserver/vino_server-translate.obj: server/libvncserver/translate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-translate.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-translate.Tpo -c -o server/libvncserver/vino_server-translate.obj `if test -f 'server/libvncserver/translate.c'; then $(CYGPATH_W) 'server/libvncserver/translate.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/translate.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-translate.Tpo server/libvncserver/$(DEPDIR)/vino_server-translate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/translate.c' object='server/libvncserver/vino_server-translate.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-translate.obj `if test -f 'server/libvncserver/translate.c'; then $(CYGPATH_W) 'server/libvncserver/translate.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/translate.c'; fi` + +server/libvncserver/vino_server-vncauth.o: server/libvncserver/vncauth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-vncauth.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-vncauth.Tpo -c -o server/libvncserver/vino_server-vncauth.o `test -f 'server/libvncserver/vncauth.c' || echo '$(srcdir)/'`server/libvncserver/vncauth.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-vncauth.Tpo server/libvncserver/$(DEPDIR)/vino_server-vncauth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/vncauth.c' object='server/libvncserver/vino_server-vncauth.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-vncauth.o `test -f 'server/libvncserver/vncauth.c' || echo '$(srcdir)/'`server/libvncserver/vncauth.c + +server/libvncserver/vino_server-vncauth.obj: server/libvncserver/vncauth.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-vncauth.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-vncauth.Tpo -c -o server/libvncserver/vino_server-vncauth.obj `if test -f 'server/libvncserver/vncauth.c'; then $(CYGPATH_W) 'server/libvncserver/vncauth.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/vncauth.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-vncauth.Tpo server/libvncserver/$(DEPDIR)/vino_server-vncauth.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/vncauth.c' object='server/libvncserver/vino_server-vncauth.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-vncauth.obj `if test -f 'server/libvncserver/vncauth.c'; then $(CYGPATH_W) 'server/libvncserver/vncauth.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/vncauth.c'; fi` + +server/libvncserver/vino_server-zlib.o: server/libvncserver/zlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zlib.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zlib.Tpo -c -o server/libvncserver/vino_server-zlib.o `test -f 'server/libvncserver/zlib.c' || echo '$(srcdir)/'`server/libvncserver/zlib.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zlib.Tpo server/libvncserver/$(DEPDIR)/vino_server-zlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zlib.c' object='server/libvncserver/vino_server-zlib.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zlib.o `test -f 'server/libvncserver/zlib.c' || echo '$(srcdir)/'`server/libvncserver/zlib.c + +server/libvncserver/vino_server-zlib.obj: server/libvncserver/zlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zlib.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zlib.Tpo -c -o server/libvncserver/vino_server-zlib.obj `if test -f 'server/libvncserver/zlib.c'; then $(CYGPATH_W) 'server/libvncserver/zlib.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zlib.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zlib.Tpo server/libvncserver/$(DEPDIR)/vino_server-zlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zlib.c' object='server/libvncserver/vino_server-zlib.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zlib.obj `if test -f 'server/libvncserver/zlib.c'; then $(CYGPATH_W) 'server/libvncserver/zlib.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zlib.c'; fi` + +server/libvncserver/vino_server-zrle.o: server/libvncserver/zrle.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrle.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrle.Tpo -c -o server/libvncserver/vino_server-zrle.o `test -f 'server/libvncserver/zrle.c' || echo '$(srcdir)/'`server/libvncserver/zrle.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrle.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrle.c' object='server/libvncserver/vino_server-zrle.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrle.o `test -f 'server/libvncserver/zrle.c' || echo '$(srcdir)/'`server/libvncserver/zrle.c + +server/libvncserver/vino_server-zrle.obj: server/libvncserver/zrle.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrle.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrle.Tpo -c -o server/libvncserver/vino_server-zrle.obj `if test -f 'server/libvncserver/zrle.c'; then $(CYGPATH_W) 'server/libvncserver/zrle.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrle.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrle.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrle.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrle.c' object='server/libvncserver/vino_server-zrle.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrle.obj `if test -f 'server/libvncserver/zrle.c'; then $(CYGPATH_W) 'server/libvncserver/zrle.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrle.c'; fi` + +server/libvncserver/vino_server-zrleoutstream.o: server/libvncserver/zrleoutstream.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrleoutstream.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Tpo -c -o server/libvncserver/vino_server-zrleoutstream.o `test -f 'server/libvncserver/zrleoutstream.c' || echo '$(srcdir)/'`server/libvncserver/zrleoutstream.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrleoutstream.c' object='server/libvncserver/vino_server-zrleoutstream.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrleoutstream.o `test -f 'server/libvncserver/zrleoutstream.c' || echo '$(srcdir)/'`server/libvncserver/zrleoutstream.c + +server/libvncserver/vino_server-zrleoutstream.obj: server/libvncserver/zrleoutstream.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrleoutstream.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Tpo -c -o server/libvncserver/vino_server-zrleoutstream.obj `if test -f 'server/libvncserver/zrleoutstream.c'; then $(CYGPATH_W) 'server/libvncserver/zrleoutstream.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrleoutstream.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrleoutstream.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrleoutstream.c' object='server/libvncserver/vino_server-zrleoutstream.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrleoutstream.obj `if test -f 'server/libvncserver/zrleoutstream.c'; then $(CYGPATH_W) 'server/libvncserver/zrleoutstream.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrleoutstream.c'; fi` + +server/libvncserver/vino_server-zrlepalettehelper.o: server/libvncserver/zrlepalettehelper.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrlepalettehelper.o -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Tpo -c -o server/libvncserver/vino_server-zrlepalettehelper.o `test -f 'server/libvncserver/zrlepalettehelper.c' || echo '$(srcdir)/'`server/libvncserver/zrlepalettehelper.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrlepalettehelper.c' object='server/libvncserver/vino_server-zrlepalettehelper.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrlepalettehelper.o `test -f 'server/libvncserver/zrlepalettehelper.c' || echo '$(srcdir)/'`server/libvncserver/zrlepalettehelper.c + +server/libvncserver/vino_server-zrlepalettehelper.obj: server/libvncserver/zrlepalettehelper.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/libvncserver/vino_server-zrlepalettehelper.obj -MD -MP -MF server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Tpo -c -o server/libvncserver/vino_server-zrlepalettehelper.obj `if test -f 'server/libvncserver/zrlepalettehelper.c'; then $(CYGPATH_W) 'server/libvncserver/zrlepalettehelper.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrlepalettehelper.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Tpo server/libvncserver/$(DEPDIR)/vino_server-zrlepalettehelper.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/libvncserver/zrlepalettehelper.c' object='server/libvncserver/vino_server-zrlepalettehelper.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/libvncserver/vino_server-zrlepalettehelper.obj `if test -f 'server/libvncserver/zrlepalettehelper.c'; then $(CYGPATH_W) 'server/libvncserver/zrlepalettehelper.c'; else $(CYGPATH_W) '$(srcdir)/server/libvncserver/zrlepalettehelper.c'; fi` + +server/vino_server-vino-tube-servers-manager.o: server/vino-tube-servers-manager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-tube-servers-manager.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Tpo -c -o server/vino_server-vino-tube-servers-manager.o `test -f 'server/vino-tube-servers-manager.c' || echo '$(srcdir)/'`server/vino-tube-servers-manager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Tpo server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-tube-servers-manager.c' object='server/vino_server-vino-tube-servers-manager.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-tube-servers-manager.o `test -f 'server/vino-tube-servers-manager.c' || echo '$(srcdir)/'`server/vino-tube-servers-manager.c + +server/vino_server-vino-tube-servers-manager.obj: server/vino-tube-servers-manager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-tube-servers-manager.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Tpo -c -o server/vino_server-vino-tube-servers-manager.obj `if test -f 'server/vino-tube-servers-manager.c'; then $(CYGPATH_W) 'server/vino-tube-servers-manager.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-tube-servers-manager.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Tpo server/$(DEPDIR)/vino_server-vino-tube-servers-manager.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-tube-servers-manager.c' object='server/vino_server-vino-tube-servers-manager.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-tube-servers-manager.obj `if test -f 'server/vino-tube-servers-manager.c'; then $(CYGPATH_W) 'server/vino-tube-servers-manager.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-tube-servers-manager.c'; fi` + +server/vino_server-vino-tube-server.o: server/vino-tube-server.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-tube-server.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-tube-server.Tpo -c -o server/vino_server-vino-tube-server.o `test -f 'server/vino-tube-server.c' || echo '$(srcdir)/'`server/vino-tube-server.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-tube-server.Tpo server/$(DEPDIR)/vino_server-vino-tube-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-tube-server.c' object='server/vino_server-vino-tube-server.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-tube-server.o `test -f 'server/vino-tube-server.c' || echo '$(srcdir)/'`server/vino-tube-server.c + +server/vino_server-vino-tube-server.obj: server/vino-tube-server.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-tube-server.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-tube-server.Tpo -c -o server/vino_server-vino-tube-server.obj `if test -f 'server/vino-tube-server.c'; then $(CYGPATH_W) 'server/vino-tube-server.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-tube-server.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-tube-server.Tpo server/$(DEPDIR)/vino_server-vino-tube-server.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-tube-server.c' object='server/vino_server-vino-tube-server.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-tube-server.obj `if test -f 'server/vino-tube-server.c'; then $(CYGPATH_W) 'server/vino-tube-server.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-tube-server.c'; fi` + +server/vino_server-vino-status-tube-icon.o: server/vino-status-tube-icon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-status-tube-icon.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-status-tube-icon.Tpo -c -o server/vino_server-vino-status-tube-icon.o `test -f 'server/vino-status-tube-icon.c' || echo '$(srcdir)/'`server/vino-status-tube-icon.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-status-tube-icon.Tpo server/$(DEPDIR)/vino_server-vino-status-tube-icon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-status-tube-icon.c' object='server/vino_server-vino-status-tube-icon.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-status-tube-icon.o `test -f 'server/vino-status-tube-icon.c' || echo '$(srcdir)/'`server/vino-status-tube-icon.c + +server/vino_server-vino-status-tube-icon.obj: server/vino-status-tube-icon.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-status-tube-icon.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-status-tube-icon.Tpo -c -o server/vino_server-vino-status-tube-icon.obj `if test -f 'server/vino-status-tube-icon.c'; then $(CYGPATH_W) 'server/vino-status-tube-icon.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-status-tube-icon.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-status-tube-icon.Tpo server/$(DEPDIR)/vino_server-vino-status-tube-icon.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-status-tube-icon.c' object='server/vino_server-vino-status-tube-icon.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-status-tube-icon.obj `if test -f 'server/vino-status-tube-icon.c'; then $(CYGPATH_W) 'server/vino-status-tube-icon.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-status-tube-icon.c'; fi` + +server/vino_server-vino-enums.o: server/vino-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-enums.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-enums.Tpo -c -o server/vino_server-vino-enums.o `test -f 'server/vino-enums.c' || echo '$(srcdir)/'`server/vino-enums.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-enums.Tpo server/$(DEPDIR)/vino_server-vino-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-enums.c' object='server/vino_server-vino-enums.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-enums.o `test -f 'server/vino-enums.c' || echo '$(srcdir)/'`server/vino-enums.c + +server/vino_server-vino-enums.obj: server/vino-enums.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-enums.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-enums.Tpo -c -o server/vino_server-vino-enums.obj `if test -f 'server/vino-enums.c'; then $(CYGPATH_W) 'server/vino-enums.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-enums.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-enums.Tpo server/$(DEPDIR)/vino_server-vino-enums.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-enums.c' object='server/vino_server-vino-enums.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-enums.obj `if test -f 'server/vino-enums.c'; then $(CYGPATH_W) 'server/vino-enums.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-enums.c'; fi` + +server/vino_server-vino-marshal.o: server/vino-marshal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-marshal.o -MD -MP -MF server/$(DEPDIR)/vino_server-vino-marshal.Tpo -c -o server/vino_server-vino-marshal.o `test -f 'server/vino-marshal.c' || echo '$(srcdir)/'`server/vino-marshal.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-marshal.Tpo server/$(DEPDIR)/vino_server-vino-marshal.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-marshal.c' object='server/vino_server-vino-marshal.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-marshal.o `test -f 'server/vino-marshal.c' || echo '$(srcdir)/'`server/vino-marshal.c + +server/vino_server-vino-marshal.obj: server/vino-marshal.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT server/vino_server-vino-marshal.obj -MD -MP -MF server/$(DEPDIR)/vino_server-vino-marshal.Tpo -c -o server/vino_server-vino-marshal.obj `if test -f 'server/vino-marshal.c'; then $(CYGPATH_W) 'server/vino-marshal.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-marshal.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) server/$(DEPDIR)/vino_server-vino-marshal.Tpo server/$(DEPDIR)/vino_server-vino-marshal.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='server/vino-marshal.c' object='server/vino_server-vino-marshal.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vino_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o server/vino_server-vino-marshal.obj `if test -f 'server/vino-marshal.c'; then $(CYGPATH_W) 'server/vino-marshal.c'; else $(CYGPATH_W) '$(srcdir)/server/vino-marshal.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf server/smclient/.libs server/smclient/_libs + +distclean-libtool: + -rm -f libtool config.lt +install-dist_clientfileDATA: $(dist_clientfile_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_clientfile_DATA)'; test -n "$(clientfiledir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(clientfiledir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(clientfiledir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(clientfiledir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(clientfiledir)" || exit $$?; \ + done + +uninstall-dist_clientfileDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_clientfile_DATA)'; test -n "$(clientfiledir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(clientfiledir)'; $(am__uninstall_files_from_dir) +install-nodist_applicationsDATA: $(nodist_applications_DATA) + @$(NORMAL_INSTALL) + @list='$(nodist_applications_DATA)'; test -n "$(applicationsdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(applicationsdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(applicationsdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(applicationsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(applicationsdir)" || exit $$?; \ + done + +uninstall-nodist_applicationsDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_applications_DATA)'; test -n "$(applicationsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(applicationsdir)'; $(am__uninstall_files_from_dir) +install-nodist_serviceDATA: $(nodist_service_DATA) + @$(NORMAL_INSTALL) + @list='$(nodist_service_DATA)'; test -n "$(servicedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(servicedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(servicedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(servicedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(servicedir)" || exit $$?; \ + done + +uninstall-nodist_serviceDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_service_DATA)'; test -n "$(servicedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(servicedir)'; $(am__uninstall_files_from_dir) +install-systemdserviceDATA: $(systemdservice_DATA) + @$(NORMAL_INSTALL) + @list='$(systemdservice_DATA)'; test -n "$(systemdservicedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(systemdservicedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(systemdservicedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdservicedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(systemdservicedir)" || exit $$?; \ + done + +uninstall-systemdserviceDATA: + @$(NORMAL_UNINSTALL) + @list='$(systemdservice_DATA)'; test -n "$(systemdservicedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(systemdservicedir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + @case `sed 15q $(srcdir)/NEWS` in \ + *"$(VERSION)"*) : ;; \ + *) \ + echo "NEWS not updated; not releasing" 1>&2; \ + exit 1;; \ + esac + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ + config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(clientfiledir)" "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(servicedir)" "$(DESTDIR)$(systemdservicedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f server/$(DEPDIR)/$(am__dirstamp) + -rm -f server/$(am__dirstamp) + -rm -f server/libvncserver/$(DEPDIR)/$(am__dirstamp) + -rm -f server/libvncserver/$(am__dirstamp) + -rm -f server/miniupnp/$(DEPDIR)/$(am__dirstamp) + -rm -f server/miniupnp/$(am__dirstamp) + -rm -f server/smclient/$(DEPDIR)/$(am__dirstamp) + -rm -f server/smclient/$(am__dirstamp) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ + clean-noinstLTLIBRARIES mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf server/$(DEPDIR) server/libvncserver/$(DEPDIR) server/miniupnp/$(DEPDIR) server/smclient/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-dist_clientfileDATA \ + install-nodist_applicationsDATA install-nodist_serviceDATA \ + install-systemdserviceDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-libexecPROGRAMS + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf server/$(DEPDIR) server/libvncserver/$(DEPDIR) server/miniupnp/$(DEPDIR) server/smclient/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-dist_clientfileDATA uninstall-libexecPROGRAMS \ + uninstall-nodist_applicationsDATA uninstall-nodist_serviceDATA \ + uninstall-systemdserviceDATA + +.MAKE: $(am__recursive_targets) all check install install-am \ + install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libexecPROGRAMS clean-libtool clean-noinstLTLIBRARIES \ + cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-compile \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_clientfileDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-libexecPROGRAMS install-man \ + install-nodist_applicationsDATA install-nodist_serviceDATA \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip install-systemdserviceDATA installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-dist_clientfileDATA uninstall-libexecPROGRAMS \ + uninstall-nodist_applicationsDATA uninstall-nodist_serviceDATA \ + uninstall-systemdserviceDATA + +.PRECIOUS: Makefile + + +server/vino-marshal.h: server/vino-marshal.list + $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=vino_marshal $< > $@ + +server/vino-marshal.c: server/vino-marshal.list server/vino-marshal.h + $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --body --prefix=vino_marshal $< > $@ + +server/vino-enums.c: $(vino_enum_headers) server/vino-enums.h + $(AM_V_GEN)$(GLIB_MKENUMS) \ + --fhead "#include \"vino-enums.h\"\n\n" \ + --fprod "/* enumerations from \"@filename@\" */\n" \ + --fprod "#include \"@filename@\"\n" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n" \ + --vhead " static GType type = 0;\n\n" \ + --vhead " if (!type)\n {\n" \ + --vhead " static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n }\n\n" \ + --vtail " return type;\n}\n\n" \ + $(vino_enum_headers) > $@ + +server/vino-enums.h: $(vino_enum_headers) + $(AM_V_GEN)$(GLIB_MKENUMS) \ + --fhead "#ifndef VINO_ENUMS_H_\n" \ + --fhead "#define VINO_ENUMS_H_\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --fprod "/* enumerations from @filename@ */\n" \ + --vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n" \ + --vhead "#define VINO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* VINO_ENUMS_H_ */" \ + $(vino_enum_headers) > $@ + +server/vino-server.desktop.in: server/vino-server.desktop.in.in + $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ + +server/org.freedesktop.Telepathy.Client.Vino.service: server/org.freedesktop.Telepathy.Client.Vino.service.in + $(AM_V_GEN)$(SED) -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@ + +@INSTALL_USER_UNITS_TRUE@$(systemdservice_DATA): server/vino-server.service.in Makefile +@INSTALL_USER_UNITS_TRUE@ $(AM_V_GEN) $(SED) -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@ + +@INTLTOOL_DESKTOP_RULE@ + +@GSETTINGS_RULES@ + +@MAINTAINER_MODE_TRUE@dist-hook: dist-changelog +@MAINTAINER_MODE_FALSE@dist-hook: + +dist-changelog: + $(AM_V_at)if git --git-dir=$(top_srcdir)/.git --work-tree=$(top_srcdir) \ + log --no-merges --date=short --pretty='tformat:%cd %an <%ae>%n%n%s%n%n%b' a65e89b3e25a22ea177581462fb253bc392c789b.. | \ + $(SED) -e '/^[12]...-[01].-[0123]. [^<>]* <[^<>]*>$$/,/^$$/ b' \ + -e '/[^ ]/,/^[ ]*$$/ !d' \ + -e 's/^[ ]*/ /' \ + -e 's/^[ ]*$$//' >.ChangeLog.tmp; \ + then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \ + else rm -f .ChangeLog.tmp; exit 1; fi + +.PHONY: dist-changelog + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..4bde278 --- /dev/null +++ b/NEWS @@ -0,0 +1,2888 @@ +Vino 3.22.0 +=========== + +David King (1): + Update NEWS for 3.22.0 release + +Vino 3.21.92 +============ + +Alberts Muktupāvels (1): + build: Fix syntax error introduced in 27785a2 + +Bastien Nocera (2): + server: Add a way for Vino to be started via user systemd + build: Use AM_DISTCHECK_CONFIGURE_FLAGS + +Cédric Valmary (2): + Updated Occitan translation + Updated Occitan translation + +Daniel Mustieles (1): + Updated Spanish translation + +David King (4): + Update British English translation + Allow building on non-systemd systems + Check for sm and ice in configure + Remove unused --with-network-manager option + +Eric R. Schulz (1): + Fix two memory leaks + +Fabio Tomat (3): + Updated Friulian translation + Updated Friulian translation + Updated Friulian translation (cherry picked from commit 02c55160b2703675f55880dd8238c84342405532) + +Piotr Drąg (4): + Updated Polish translation + Add Language headers to po files + Updated Polish translation + Updated Polish translation + +Tiago Santos (1): + Updated Portuguese translation + +Vino 3.20.0 +=========== + +Ask Hjorth Larsen (1): + Updated Danish translation + +Cédric Valmary (1): + Updated Occitan translation + +Sveinn í Felli (3): + Updated Icelandic translation + Updated Icelandic translation + Updated Icelandic translation + +Vino 3.18.1 +=========== + +David King (1): + Avoid a crash when showing the preferences + +Vino 3.18.0 +=========== + +Piotr Drąg (1): + Fix FSF address in Polish translation + +Vino 3.17.91 +============ + +Chao-Hsiung Liao (1): + Updated Chinese (Taiwan) translation + +Cédric Valmary (2): + Updated Occitan translation + Updated Occitan translation + +Dimitri Tarassenko (1): + Improve handling of name resolution failure + +Fabio Tomat (2): + Added Friulian translation + Updated Friulian translation + +Jordi Mas (1): + Fixes to Catalan transation + +Pedro Albuquerque (1): + Updated Portuguese translation + +Piotr Drąg (1): + Updated Polish translation + +Sveinn í Felli (1): + Added Icelandic translation + +Vino 3.16.0 +=========== + +David King (1): + Update NEWS for 3.16.0 release + +Vino 3.15.92 +============ + +Alexander Shopov (1): + Updated Bulgarian translation + +Baurzhan Muftakhidinov (1): + Updated Kazakh translation + +Josef Andersson (1): + Updated Swedish translation + +Samir Ribic (1): + Updated Bosnian translation + +Vino 3.15.91 +============ + +David King (1): + Avoid a critical EggSMClient warning on startup + +Ondrej Holy (1): + Handle closed signal properly on notification prompt + +Vino 3.15.90 +============ + +Dan Winship (1): + vino-upnp: Use GNetworkMonitor + +Vino 3.15.4 +=========== + +David King (6): + Remove obsolete GSettings conversion file + Fix Turkish desktop keywords translation + Remove obsolete intltool scripts from Makefile + Skip intermediate file with Automake 1.15 + Do not set obsolete PKG_NAME variable + Update NEWS for 3.15.4 release + +Emin Tufan (1): + Updated Turkish translation + +Muhammet Kara (1): + Updated Turkish translation + +Timo Jyrinki (1): + Change Finnish translation team web page to l10n.gnome.org + +Trần Ngọc Quân (1): + Updated Vietnamese translation + +Vino 3.14.0 +=========== + +Maria Mavridou (1): + Updated Greek translation + +Pawan Chitrakar (1): + Updated Nepali translation + +Saibal Ray (1): + Updated Bengali (India) translation + +Vino 3.13.90 +============ + +Kjartan Maraas (1): + Updated Norwegian bokmål translation from Åka Sikrom. + +Mihai Capotă (1): + Remove all HTTP server code + +Olav Vitters (1): + doap category core + +Piotr Drąg (1): + doap: add <programming-language> + +Vino 3.13.3 +=========== + +Anders Jonsson (1): + Updated Swedish translation + +Bastien Nocera (1): + Get started by the g-s-d sharing plugin + +Vino 3.12.0 +=========== + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Vino 3.11.92 +============ + +Daniel Mustieles (2): + Updated FSF's address + Revert "Updated FSF's address" + +Kjartan Maraas (3): + Updated Norwegian bokmål translation + Updated Norwegian bokmål translation + Updated Norwegian bokmål translation + +Piotr Drąg (1): + Add a trailing semicolon to keywords in Kannada translation + +Ryan Lortie (1): + libvncserver: fix non-literal format string issue + +Shankar Prasad (1): + updated kn.po + +Vino 3.11.4 +=========== + +Antoine Jacoutot (1): + remove dependency on libsoup + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +David King (6): + Post-release version bump to 3.11.1 + Remove vino-passwd + Update links to GNOME wiki + Use correct wiki link + Add dependencies on generated files, bug 720956 + Move dbus code under server/ directory + +Søren Sandmann (1): + vino_background_draw: Make 'initialised' static + +Victor Ibragimov (3): + Tajik translation updated + Tajik translation updated + Tajik translation updated + +eternalhui (1): + Update Chinese simplified translation + +Vino 3.10.0 +=========== + +Daniel Martinez (1): + Added Aragonese translation + +David King (1): + Post-release bump to 3.10.0 + +Khaled Hosny (1): + Update Arabic translation + +Vino 3.9.92 +=========== + +Daniel P. Berrange (1): + Fix reading of TLS data to account for cached data + +David King (2): + Post-release version bump to 3.9.5 + Reject new clients if in the deferred state + +Jiro Matsuzawa (1): + l10n: Update Japanese translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Vino 3.9.3 +========== + +David King (2): + Update NEWS for 3.9.3 release + Post-release bump to 3.9.3 + +Jonh Wendell (1): + Move tube declaration to the right place + +Vino 3.9.2 +========== + +Andika Triwidada (1): + Updated Indonesian translation + +Daniel Korostil (1): + Update uk translation + +David King (4): + Update NEWS for 3.9.2 release + Post-release version bump to 3.9.1 + Back out "authentication-method" setting change + Remove preferences dialog, bug 700070 + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Matthias Clasen (1): + Be more careful with memory allocation + +Vino 3.8.0 +========== + +Arash Mousavi (1): + L10N: Updated Persian Translation + +Ask H. Larsen (1): + Updated Danish translation + +David King (2): + Post-release version bump to 3.8.0 + Update NEWS for 3.8.0 release + +Dr.T.Vasudevan (1): + Updated Tamil translation + +Khaled Hosny (1): + Update Arabic translation + +Krishnababu Krothapalli (1): + Updated Telugu Translations + +ManojKumar Giri (1): + Updated Odia Language along with FUEL implementation + +Rajesh Ranjan (1): + hindi translation + +Sandeep Sheshrao Shedmake (1): + Updated Marathi Translations + +Shankar Prasad (1): + Updated kn translations + +Victor Ibragimov (1): + [l10n] Added Tadjik translation + +Vino 3.7.92 +=========== + +Balázs Úr (1): + Updated Hungarian translation + +Carles Ferrando (1): + [l10n] Updated Catalan (Valencian) translation + +Changwoo Ryu (1): + Updated Korean translation + +Claude Paroz (1): + Updated French translation + +Claudio Arseni (1): + [l10n] Updated Italian translation. + +David King (3): + Post-release version bump to 3.7.92 + Remove choices from authentication-methods setting + Update NEWS for 3.7.92 release + +Duarte Loreto (1): + Updated Portuguese translation and converted to New Spelling (Novo AO) + +Enrico Nicoletto (1): + Updated Brazilian Portuguese translation + +Ihar Hrachyshka (1): + Updated Belarusian translation. + +Joan Duran (1): + [l10] Updated Catalan translation + +Joe Hansen (1): + Updated Danish translation + +Jonathan Kamens (1): + Reset sockets when changing ports, bug 668187 + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Nilamdyuti Goswami (1): + Assamese translation updated for gnome 3.8 + +Richard Stanislavský (1): + Updated slovak translation + +Rūdolfs Mazurs (1): + Updated Latvian translation + +Sweta Kothari (1): + Updated gujarati file + +Ville-Pekka Vainio (1): + Finnish translation update by Jiri Grönroos + +Vino 3.7.91 +=========== + +A S Alam (1): + Punjabi: Translation updated (aalam) + +David King (2): + Post-release version bump to 3.7.91 + Update NEWS for 3.7.91 + +Dimitris Spingos (1): + Updated Greek translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Marek Černocký (1): + Updated Czech translation + +Mario Blättermann (1): + [l10n] Updated German translation + +Yuri Myasoedov (1): + Updated Russian translation + +Vino 3.7.90 +=========== + +Anish A (1): + Updated Malayalam Localization + +Aurimas Černius (1): + Updated Lithuanian translation + +Bastien Nocera (4): + Export whether the server is connected to through D-Bus + server: Make libnotify a hard dependency + Use notifications to prompt + Fix notification desktop hint + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +Daniel Mustieles (1): + Updated Spanish translation + +David King (2): + Post-release version bump to 3.7.5 + Update NEWS for 3.7.90 release + +Fran Diéguez (1): + Updated Galician translations + +Gheyret Kenji (3): + Updated Uyghur translation + Updated Uyghur translation + Updated Uyghur translation + +Ihar Hrachyshka (1): + Updated Belarusian translation. + +Inaki Larranaga Murgoitio (1): + Updated Basque language + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Matej Urbančič (2): + Updated Slovenian translation + Updated Slovenian translation + +Matthias Clasen (2): + Don't show vino-preferences in GNOME + Bring up the sharing panel when available + +Piotr Drąg (3): + Updated POTFILES.in + Updated Polish translation + Updated Polish translation + +Robert Ancell (1): + Change schema path to standard format + +Wouter Bolsterlee (1): + Updated Dutch translation + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Мирослав Николић (2): + Updated Serbian translation + Updated Serbian translation + +Vino 3.7.4 +========== + +Adrián Arévalo (1): + Updated Spanish translation + +Alexander Shopov (1): + Updated Bulgarian translation + +Aurimas Černius (1): + Updated Lithuanian translation + +Daniel Mustieles (1): + Added keywords to .desktop file, bug 691062 + +David King (3): + Post-release version bump to 3.7.4 + Add "desktop-entry" notification hint, bug 691045 + Update NEWS for 3.7.4 release + +Dimitris Spingos (1): + Updated Greek translation + +Fran Diéguez (1): + Updated Galician translations + +Gheyret Kenji (1): + Updated Uyghur translation + +Khaled Hosny (1): + Update Arabic translation + +Kjartan Maraas (2): + Updated Norwegian bokmål translation + Updated Norwegian bokmål translation + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Piotr Drąg (1): + Updated Polish translation + +Shankar Prasad (1): + Updated Kannada Translations + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Vino 3.7.3 +========== + +Alexandre Rostovtsev (1): + Consistently use SECRET_DEPS, not LIBSECRET_DEPS + +David King (4): + Post-release version bump to 3.7.1 + Update GSettings schema descriptions and summaries + Use https URLs where possible in DOAP file + Update NEWS for 3.7.3 release + +Dr.T.Vasudevan (1): + Updated Tamil translation + +Fran Diéguez (1): + Updated Galician translations + +Huzaifa Sidhpurwala (1): + Do not leak clipboard to unauthenticated clients + +Ihar Hrachyshka (1): + Updated Belarusian translation. + +Khoem Sokhem (1): + [l10n] Added Khmer translation + +ManojKumar Giri (1): + Updated Odia Translation with FUEL implementation. + +Nilamdyuti Goswami (1): + Assamese translation updated + +Richard Stanislavský (3): + Updated Slovak translation + Updated Slovak translation + Updated slovak translation + +Ryan Lortie (1): + server/miniupnp/: -Wmissing-prototypes fixups + +Rūdolfs Mazurs (1): + Updated Latvian translation + +Wolfgang Stoeggl (1): + Updated German translation + +ozu17928 (1): + Set quality level if JPEG support is enabled + +Vino 3.6.0 +========== + +Alexander Shopov (1): + Updated Bulgarian translation + +Carles Ferrando (1): + [l10n]Updated Catalan (Valencian) translation + +Daniel Korostil (1): + Uploaded Ukranian + +David King (2): + Add a translation comment for tube mode + Update NEWS for 3.6.0 release + +Ihar Hrachyshka (2): + Updated Belarusian translation. + Updated Belarusian translation. + +Joan Duran (1): + [l10n] Updated Catalan translation + +Krishnababu Krothapalli (1): + Updated Telugu Translations + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Milo Casagrande (1): + [l10n] Updated Italian translation. + +Rajesh Ranjan (1): + hindi update by Chandan Kumar + +Runa Bhattacharjee (1): + Updated Bengali India Translation + +Rūdolfs Mazurs (1): + Updated Latvian translation + +YunQiang Su (1): + update Simplified Chinese (zh_CN) translation + +Vino 3.5.92 +=========== + +A S Alam (1): + update Punjabi Translation + +Ani Peter (1): + Updated Malayalam file + +Ask H. Larsen (1): + Updated Danish translation + +Aurimas Černius (1): + Updated Lithuanian translation + +Changwoo Ryu (2): + Updated Korean translation + Updated Korean translation + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +Chris Leonard (1): + Updated British English translation + +Claude Paroz (1): + Updated French translation + +Daniel Mustieles (1): + Updated Spanish translation + +Daniel Nylander (1): + Updated Swedish translation + +David King (1): + Post-release version bump to 3.5.91 + Update NEWS for 3.5.92 release + +Dirgita (1): + Updated Indonesian translation + +Dr.T.Vasudevan (1): + updated Tamil translation + +Duarte Loreto (1): + Updated Portuguese translation + +Fran Diéguez (1): + Updated Galician translations + +Gabor Kelemen (1): + Updated Hungarian translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Marek Černocký (1): + Updated Czech translation + +Matej Urbančič (1): + Updated Slovenian translation + +Muhammet Kara (1): + [l10n]Updated Turkish translation + +Nguyễn Thái Ngọc Duy (2): + po/vi: import from Damned Lies + Updated Vietnamese translation + +Nilamdyuti Goswami (2): + Assamese translation updated + Implemented FUEL entries to Assamese translation + +Piotr Drąg (2): + Updated Polish translation + Updated Polish translation + +Rafael Ferreira (1): + Updated Brazilian Portuguese translation + +Sandeep Sheshrao Shedmake (1): + Updated Marathi Translations + +Sweta Kothari (1): + Updated gujarati file + +Takayuki KUSANO (1): + [l10n] Update Japanese translation + +Theppitak Karoonboonyanan (1): + Updated Thai translation. + +Timo Jyrinki (1): + Finnish translation update by Jiri Grönroos + +Tom Tryfonidis (1): + Updated Greek translation + +Vincent Untz (1): + Fix license headers of a few files + +Yaron Shahrabani (2): + Updated Hebrew translation. + Updated Hebrew translation. + +Yuri Myasoedov (1): + Updated Russian translation + +Мирослав Николић (1): + Updated Serbian translation + +Vino 3.5.90 +=========== + +Alexander Shopov (1): + Updated Bulgarian translation + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +Daniel Mustieles (1): + Updated Spanish translation + +David King (5): + Post-release version bump to 3.5.3 + Post-release version bump to 3.5.90 + Rename defines from gnome-keyring to secret + Update POTFILES.in + Update NEWS for 3.5.90 release + +Duarte Loreto (1): + Updated Portuguese translation + +Fran Diéguez (2): + Updated Galician translations + Updated Galician translations + +Jiro Matsuzawa (1): + [l10n] Update Japanese translation + +Kjartan Maraas (2): + Updated Norwegian bokmål translation + Updated Norwegian bokmål translation + +Matej Urbančič (1): + Updated Slovenian translation + +Mattias Põldaru (2): + [l10n] Updated Estonian translation + [l10n] Updated Estonian translation + +Mitsuya Shibata (1): + [l10n] Update Japanese translation + +Nilamdyuti Goswami (1): + Assamese translation reviewed + +Sandeep Sheshrao Shedmake (1): + Updated Marathi Translations + +Stef Walter (1): + Migrate from libgnome-keyring to libsecret + +Sweta Kothari (2): + Updated gujarati file + Updated gujarati file + +Tom Tryfonidis (1): + Updated Greek translation + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Мирослав Николић (1): + Updated Serbian translation + +Vino 3.5.2 +========== + +Bruno Brouard (2): + Updated French translation + Updated French translation + +David King (3): + Depend on intltool 0.50 for GSettings translations + Post-release version bump to 3.5.2 + Update NEWS for 3.5.2 release + +Fabrice Bellet (3): + Use XFixes to provide RFB cursor image + Fix the cursor bounds computation + Fix iteration of the cursor->source[] array + +Kostas Papadimas (2): + Updated Greek translation + Updated Greek translation + +Luca Ferretti (1): + l10n: updated Italian translation + +Mantas Kriaučiūnas (1): + Updated Lithuanian translation + +Vino 3.5.1 +========== + +Carles Ferrando (1): + [l10n]Updated Catalan (Valencian) translation + +Daniel Mustieles (1): + Updated Spanish translation + +David King (3): + Post-release version bump to 3.5.1 + Add vino_server_set_notify_on_connect() + Update NEWS for 3.5.1 release + +Fran Diéguez (1): + Updated Galician translations + +Guillaume Desmottes (13): + Add vino_dbus_listener_get_server() + Add VinoServer:reject-incoming property + Add --tube arg to launch Vino in ‘tube only’ mode + VinoTubeServersManager::tube-disconnected signal + Relay tube-disconnected signal in VinoDbusListener + Exit when tube is closed if run in tube mode + Depend on telepathy-glib 0.18.0 + Use tp_simple_handler_new_with_factory() + Rely on the factory to prepare the TpContact + Rename VinoTubeServer.tp_channel to .tube + Remove VinoTubeServer::connection property + Use TP_CONTACT_FEATURE_AVATAR_DATA + Use tp_stream_tube_channel_get_service() + +Jordi Serratosa (1): + [l10n] Fixes on Catalan translation + +Khaled Hosny (1): + Updated Arabic translation + +Mitsuya Shibata (1): + [l10n] Update Japanese translation + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Vino 3.4.0 +========== + +Alexander Shopov (1): + Updated Bulgarian translation + +David King (2): + Post-release version bump to 3.4.0 + Update NEWS for 3.4.0 release + +Krishnababu Krothapalli (1): + Translations Updated with FUEL + +Sweta Kothari (1): + Updated Gujarati Translations + +YunQiang Su (1): + update Simplified Chinese (zh_CN) translation + +Vino 3.3.92 +=========== + +A S Alam (1): + update Punjabi Translation + +Alexander Shopov (1): + Updated Bulgarian translation + +Anita Reitere (1): + Updated Latvian translation. + +Antonio Fernandes C. Neto (1): + Updated Brazilian Portuguese translation + +Arash Mousavi (1): + Updated Persian Translation + +Ask H. Larsen (1): + Updated Danish translation + +Bruce Cowan (1): + Updated British English translation + +Carles Ferrando (1): + [l10n]Updated Catalan (Valencian) translation + +Changwoo Ryu (1): + Updated Korean translation + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +Claudio Arseni (1): + [l10n] Updated Italian translation + +Daniel Korostil (1): + Uploaded Ukranian + +Daniel Nylander (1): + Updated Swedish translation + +David King (3): + Post-release version bump to 3.3.4 + Version bump to 3.3.92 + Update NEWS for 3.3.92 release + +Dr.T.Vasudevan (1): + updated Tamil translation + +Duarte Loreto (1): + Updated Portuguese translation + +Fran Diéguez (1): + Updated Galician translations + +Gabor Kelemen (1): + Updated Hungarian translation + +Inaki Larranaga Murgoitio (1): + Updated Basque language + +Joan Duran (1): + [l10n] Updated Catalan translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Krishnababu Krothapalli (1): + Updated Telugu Translations + +Kristjan SCHMIDT (1): + Updated Esperanto translation + +Marek Černocký (1): + Updated Czech translation + +Mario Blättermann (1): + [l10n] Updated German translation + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Nilamdyuti Goswami (1): + Assamese translation completed + +Piotr Drąg (1): + Updated Polish translation + +Rajesh Ranjan (3): + hindi translation by Chandan Kumar + hindi translation by Chandan Kumar + hindi translation by Chandan Kumar, correcting and commiting right file + +Timo Jyrinki (1): + Updated Finnish translation by Jiri Grönroos + +Yuri Myasoedov (1): + Updated Russian translation + +Мирослав Николић (1): + Updated Serbian translation + +Vino 3.3.3 +========== + +Alexandre Franke (1): + Update French translation + +Daniel Mustieles (1): + Updated Spanish translation + +David King (2): + Post-release version bump to 3.3.2 + Update NEWS for 3.3.3 release + +Hideki Yamane (1): + Updated Japanese translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Matej Urbančič (1): + Updated Slovenian translation + +Mateusz Maćkowski (1): + Added option to disable connect notifications + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Muhammet Kara (1): + [l10n]Updated Turkish translation + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Vino 3.3.1 +========== + +David King (3): + Post-release version bump to 3.3.1 + Update smclient to latest libegg version + Update NEWS for 3.3.1 release + +Ihar Hrachyshka (1): + Updated Belarusian translation. + +krishnababu k (1): + Updated Telugu Translations + +Vino 3.2.0 +========== + +Carles Ferrando (1): + [l10n]Updated Catalan (Valencian) translation + +Changwoo Ryu (1): + Updated Korean translation + +David King (2): + Post-release version bump to 3.2.0 + Update NEWS for 3.2.0 release + +Gabor Kelemen (1): + Updated Hungarian translation + +Inaki Larranaga Murgoitio (1): + Updated Basque language + +Nilamdyuti Goswami (1): + Update Assamese translation + +Piotr Drąg (2): + Updated Polish translation + Updated Polish translation + +Vino 3.1.92 +=========== + +Bruce Cowan (1): + Updated British English translation + +Claudio Arseni (1): + l10n: Updated Italian translation + +David King (3): + Post-release version bump to 3.1.92 + Enable AM_MAINTAINER_MODE in configure.ac + Update NEWS for 3.1.92 release + +Duarte Loreto (1): + Updated Portuguese translation + +Ihar Hrachyshka (1): + Updated Belarusian translation. + +Jeremy Bicha (1): + Corrected new help links + +Jiro Matsuzawa (1): + Updated Japanese translation + +Joan DUran (1): + [l10n]Updated Catalan translation + +Joe Hansen (1): + Updated Danish translation + +Piotr Drąg (1): + Updated Polish translation + +Wouter Bolsterlee (1): + Updated Dutch translation by Wouter Bolsterlee + +Yinghua Wang (1): + update Simplified Chinese (zh_CN) translation + +Vino 3.1.91 +=========== + +David King (4): + Post-release version bump to 3.1.91 + Use new location for Mallard help, bug 657927 + Make all targets use compiler warning flags + Update NEWS for 3.1.91 release + +Dr.T.Vasudevan (1): + updated Tamil translation + +Og B. Maciel (1): + Updated Brazilian Portuguese translation. + +Yuri Myasoedov (1): + Updated Russian translation + +Vino 3.1.90 +=========== + +A S Alam (1): + update translation for Punjabi + +David King (2): + Post-release version bump to 3.1.90 + Update NEWS for 3.1.90 release + +Marek Černocký (1): + Updated Czech translation + +Mario Blättermann (1): + [l10n] Updated German translation + +Vino 3.1.5 +========== + +Alexander Shopov (1): + Updated Bulgarian translation + +Aurimas Černius (1): + Updated Lithuanian translation + +Claude Paroz (1): + Updated French translation + +Daniel Nylander (1): + Updated Swedish translation + +David King (3): + Post-release version bump to 3.1.5 + Use GtkBox rather than GtkHBox or GtkVBox + Update NEWS for 3.1.5 release + +Theppitak Karoonboonyanan (1): + Updated Thai translation. + +Vino 3.1.4 +========== + +Abduxukur Abdurixit (1): + Added UG translation + +Bastien Nocera (1): + Add GConf to GSettings convert file, bug 654901 + +David King (3): + Post-release version bump to 3.1.4 + Only call g_settings_sync() when necessary + Update NEWS for 3.1.4 release + +Rudolfs Mazurs (1): + Updated Latvian translation. + +Tommi Vainikainen (1): + Updated Finnish translation + +Vino 3.1.3 +========== + +David King (2): + Post-release version bump to 3.1.3 + Add more categories to preferences desktop file + +Javier Jardón (1): + Use const instead deprecated G_CONST_RETURN + +Michael Terry (1): + Make desktop files appear in Unity too, bug 653802 + +Vino 3.1.2 +========== + +Abduxukur Abdurixit (1): + Added UG translation + +Andika Triwidada (1): + Updated Indonesian translation + +Arash Mousavi (1): + Updated Persian translation + +Carles Ferrando (1): + [l10n]Updated Catalan (Valencian) translation + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +David King (2): + Post-release version bump to 3.1.2 + Remove gettext macros from configure.ac + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Kristjan SCHMIDT (1): + Updated Esperanto translation + +Sjoerd Simons (2): + Fix _TELEPATHY_GLIB mistyped as _TELEPATHY_GLUB + Do not set non-existent use-dbus-listener property + +Мирослав Николић (1): + Updated Serbian translation + +Vino 3.1.1 +========== + +Abduxukur Abdurixit (2): + Added UG translation + Added UG translation + +Daniel Korostil (1): + Uploaded Ukranian + +Daniel Mustieles (3): + Updated Spanish translation + Updated Spanish translation + Updated Spanish translation + +David King (8): + Improve description of UPnP feature, bug 594521 + Improve status icon tooltip string, bug 594253 + Post-release version bump to 3.1.1 + Update copyright information in about dialog + Do not use deprecated GnuTLS functions, bug 648606 + Use ‘Desktop Sharing’ rather than ‘Remote Desktop’ + Avoid out-of-bounds memory accesses + Change *.tar.gz to *.tar.xz in .gitignore + +Fran Diéguez (1): + Updated galician translations + +Jordi Mallach (1): + Fix defines to match configure script output + +Jordi Serratosa (1): + [l10n]Fixes on Catalan translation + +Kjartan Maraas (1): + Updated Norwegian bokmål translation + +Marek Černocký (1): + Updated Czech translation + +Matej Urbančič (2): + Updated Slovenian translation + Updated Slovenian translation + +Muhammet Kara (2): + Updated Turkish translation + Updated Turkish translation + +Oliver Gerlich (2): + Fix cursor update logic, bug 617436 + Only send a motion event when the pointer moved + +Theppitak Karoonboonyanan (1): + Updated Thai translation. + +Thorsten Glaser (1): + Bind both an IPv4 and an IPv6 socket + +Travis B. Hartwell (1): + String improvements in preferences capplet + +Yaron Shahrabani (1): + Updated Hebrew translation. + +Vino 3.0.0 +========== + +Abduxukur Abdurixit (1): + Added UG translation + +Ask H. Larsen (1): + Updated Danish translation + +Chao-Hsiung Liao (1): + Updated Traditional Chinese translation(Hong Kong and Taiwan) + +David King (4): + Add description to DOAP file + Require automake 1.11.1 and dist as .xz only + Add dbus-glib-1 to telepathy-glib pkg-config check + Add translator comments from eggsmclient + +Dr.T.Vasudevan (1): + Updated Tamil translation + +Inaki Larranaga Murgoitio (1): + Updated Basque language + +Kjartan Maraas (1): + Include config.h where necessary + +Vino 2.99.5 +=========== + +Brett Witherspoon (1): + Use GSettings autostart condition + +Claudio Arseni (1): + Updated Italian translation + +David King (1): + Post-release version bump to 2.99.5 + +Rodrigo Padula de Oliveira (1): + Updated Brazilian Portuguese translation + +Runa Bhattacharjee (1): + Updated Bengali India Translation + +============== +Version 2.99.4 +============== + +Amitakhya Phukan (1): + Updated Assamese translations + +Bruce Cowan (1): + Updated British English translation + +Claudio Arseni (1): + Updated Italian translation + +David King (13): + Post-release bump to 2.99.4 + Fix configure options containing extra dashes + Fix underlinking with libX11 and libz + Fix non-functional PKG_CHECK_EXISTS checks + Correct gcrypt CFLAGS and LIBS variable usage + Add website to AC_INIT and use in about dialog + Check for the inline keyword with AC_C_INLINE + Generate ChangeLog from commit log during 'dist' + Tidy the marshal and enums generation rules + Update README for upcoming release + Remove some unnecessary code in the capplet + Generate enums and marshalers before they are used + Remove server reachability message from the UI + This is a workaround that addresses CVE-2011-1164. + +Dirgita (1): + Updated Indonesian translation + +Duarte Loreto (1): + Updated Portuguese translation + +Fran Diéguez (1): + Updated Galician translations + +Gabor Kelemen (1): + Updated Hungarian translation + +Joan Duran (1): + [l10n] Updated Catalan translation + +Lucian Adrian Grijincu (2): + Updated Romanian translation + Updated Romanian translation + +Marek Černocký (1): + Updated Czech translation + +Mario Blättermann (1): + [l10n] Updated German translation + +Mattias Põldaru (1): + [l10n] Updated Estonian translation + +Piotr Drąg (1): + Updated Polish translation + +Priit Laes (1): + [l10n] Updated Estonian translation + +Rudolfs Mazurs (1): + Updated Latvian translation. + +Wouter Bolsterlee (1): + Updated Dutch translation by Wouter Bolsterlee + +Yunqiang Su (1): + Update Simplified Chinese translation. + +Yuri Myasoedov (1): + Updated Russian translation + +============== +Version 2.99.3 +============== + + Fixes: + + + Overhaul build system. (David King) + Note to packagers: Arguments to the configure script were changed. + All functionality is now automagically enabled, and can be disabled + or explicitly enabled with the appropriate configure arguments. + Please check `configure --help`. + + Translations: + + + Bruno Brouard (fr) + + Sweta Kothari (gu) + + Changwoo Ryu (ko) + + Manoj Kumar Giri (or) + + A S Alam (pa) + + Matej Urbančič (sl) + +============== +Version 2.99.2 +============== + + Fixes: + + + Added back telepathy functionality. (Pierre Wieser) + + Added DISTCHECK_CONFIGURE_FLAGS to Makefile.am. (Chris Kühl) + +============== +Version 2.99.1 +============== + + Fixes: + + + Added back basic mdns functionality. (Chris Kühl) + + Fixed typo in configure.in (Chris Kühl) + + Translations: + + + Daniel Mustieles (es) + + Kjartan Maraas (nb) + + Daniel Nylander (sv) + + Alexander Shopov (bg) + +============== +Version 2.99.0 +============== + + Fixes: + + + Port to Gtk3 (Ryan Lortie, Matthias Clasen) + + Port to GSettings (Ryan Lortie, Chris Kühl) + + Port to GtkApplication (Ryan Lortie, Chris Kühl) + + Port to GDBus (Ryan Lortie) + + Translations: + + + Daniel Korostil (uk) + + Yaron Shahrabani (he) + +============== +Version 2.32.1 +============== + + Fixes: + + + Be compatible with old (< 0.7.0) and new (>= 0.7.0) libnotify + + Translations: + + + Joan Duran (ca@valencia) + + Thanos Lefteris (el) + + Priit Laes (et) + + Takayuki KUSANO (ja) + + Changwoo Ryu (ko) + + Sahran (ug) + +Vino 2.32.0 +=========== + + Translations: + + + Baurzhan Muftakhidinov (kk) + + Takayuki KUSANO (ja) + +Vino 2.31.91 +============ + + Translations: + + + Fran Diéguez (gl) + + krishnababu k (te) + + Kristjan Schmidt (eo) + + Petr Kovar (cs) + +Vino 2.31.4 +=========== + + Features: + + + Improvements on Telepathy tubes stuff + + Various internal work on replacing deprecated stuff + + Translations: + + + Andika Triwidada (id) + + Carles Ferrando (ca@valencia) + + Leonid Kanter (ru) + + Luca Ferretti (it) + + Matej Urbančič (sl) + + Priit Laes (et) + + Sira Nokyoongtong (th) + + Theppitak Karoonboonyanan (th) + + Thomas Thurman (en@shaw) + +Vino 2.28.2 +=========== + + Fixes: + + - Check if mDNS is active before asking for a local hostname. + + + Translations: + + + Fran Diéguez (gl) + + Inaki Larranaga Murgoitio (eu) + + Jamil Ahmed (bn) + + Jordi Serratosa (ca) + + Kenneth Nielsen (da) + + Kjartan Maraas (nb) + + Peteris Krisjanis (lv) + + Piotr Drąg (pl) + + Sweta Kothari (gu) + + Tao Wei (zh_CN) + + Thomas Thurman (en@shaw) + + Torstein Adolf Winterseth (nn) + + Wouter Bolsterlee (nl) + + Xandru Armesto Fernandez (ast) + + Yaron Shahrabani (he) + +Vino 2.28.1 +=========== + + Fixes + + - Fix build in OpenBSD + - Don't use restart feature of session manager + + Translations: + + + Leonid Kanter (ru) + + Takeshi AIHANA (ja) + + Tomasz Dominikowski (pl) + +Vino 2.28.0 +=========== + + Translations + + + Adi Roiban (ro) + + Amitakhya Phukan (as) + + Ani (ml) + + Ask H. Larsen (da) + + Bruce Cowan (en_GB) + + Carles Ferrando (ca@valencia) + + Christian Kirbach (de) + + Fábio Nogueira (pt_BR) + + Gabor Kelemen (hu) + + Joan Duran (ca) + + Kjartan Maraas (nb) + + Kostas Papadimas (el) + + krishnababu k (te) + + Luca Ferretti (it) + + Manoj Kumar Giri (or) + + Matej Urbančič (sl) + + Maxim V. Dziumanenko (uk) + + Pavel Šefránek (cs) + + Rajesh Ranjan (hi) + + Rajesh Ranjan (mai) + + Shankar Prasad (kn) + +Vino 2.27.92 +============ + + Fixes + + + Fix a regression that allows more than one instance of the server to run. + + Use vino's debug framework instead of g_printerr (mainly in tube code). + + Make Avahi use the network interface defined in vino preferences. + + Use integer (instead of double) as the port parameter in dbus calls. + (This fix 'localhost' appearing in preferences applet) + + Fixed a warning in libgcrypt initialization. + + Translations + + A S Alam (pa) + + Baris Cicek (tr) + + Changwoo Ryu (ko) + + Chao-Hsiung Liao (zh_HK) (zh_TW) + + Duarte Loreto (pt) + + G Karunakar (hi) + + ifelix (ta) + + Inaki Larranaga Murgoitio (eu) + + Ivar Smolin (et) + + Jamil Ahmed (bn) + + Jonh Wendell (pt_BR) + + Khaled Hosny (ar) + + Kjartan Maraas (nb) + + Miloš Popović (sr) (sr@latin) + + Sandeep Shedmake (mr) + + Sweta Kothari (gu) + + Tomasz Dominikowski (pl) + +Vino 2.27.91 +============ + + Fixes + + (vino-passwd): Do not crash if a GConf server is not available. + + Improvements in Telepathy tubes (Arnaud Maillet). + + Translations: + + Alexander Shopov (bg) + + Antón Méixome (gl) + + Claude Paroz (fr) + + Daniel Nylander (sv) + + Gintautas Miliauskas (lt) + + Jochen Skulj (de) + + Jorge González (es) + + Mattias Põldaru (et) + + Runa Bhattacharjee (bn_IN) + + Seán de Búrca (ga) + + Tommi Vainikainen (fi) + + +Vino 2.27.90 +============ + + Fixes + + Minor fixes + + Translations + + + Chao-Hsiung Liao (zh_HK) (zh_TW) + + Daniel Nylander (sv) + + Fran Dieguez (gl) + + Jorge González (es) + + Kjartan Maraas (nb) + + Mattias Põldaru (et) + +Vino 2.27.5 +=========== + + Features and Fixes + + Added an (GConf) option to disable XDamage extension. See #533613. + + Added Telepathy tubes support, allowing you to share the desktop + with an IM buddy. (Arnaud Maillet) + + Dropped libgnome dependency. Using EggSmClient. + + Migrate from libglade to GtkBuilder. (Javier Jardón) + + Many small bug fixes. + + Translations + + + Alexander Shopov (bg) + + A S Alam (pa) + + Ask H. Larsen (da) + + Chao-Hsiung Liao (zh_HK) (zh_TW) + + Claude Paroz (fr) + + Daniel Nylander (sv) + + drtvasudevan (ta) + + Gabor Kelemen (hu) + + Ihar Hrachyshka (be) + + Ivar Smolin (et) + + Jonh Wendell (pt_BR) + + Jorge Gonzalez (es) + + Laurent Coudeur (fr) + + Luca Ferretti (it) + + Marios Zindilis (el) + + Matej Urban (sl) + + Mattias Põldaru (et) + + Maxim V. Dziumanenko (uk) + + Yaron Shahrabani (he) + +Vino 2.26.1 +=========== + + Fixes + + + #575860 – Regenerating autotools always tries to compile local + libifaddr. Thanks to Patryk Zawadzki. + + Translations + + + Usama Akkad (ar) + + Suso Baleato (gl) + + Shankar Prasad (kn) + + Kjartan Maraas (nb) + + Ray Wang (zh_CN) + +Vino 2.26.0 +=========== + + Translations + + + Amitakhya Phukan (as) + + Alexander Shopov (bg) + + Runa Bhattacharjee (bn_IN) + + Pavel Šefránek (cs) + + Hendrik Richter (de) + + Jennie Petoumenou (el) + + Jorge González (es) + + Sweta Kothari (gu) + + Yaron Shahrabani (he) + + Takeshi AIHANA (ja) + + Žygimantas Beručka (lt) + + Sandeep Shedmake (mr) + + Manoj Kumar Giri (or) + + Duarte Loreto (pt) + + Yuriy Penkin (ru) + + +Vino 2.25.92 +============ + + Fixes + + + Added dependency on NetworkManager for monitoring when network + state changes. New configure flag: --enable-network-manager. If not + set, enable it anyway if NetworkManager libraries are found. + Requires NM 0.7. + + #330691 – show .local hostname if avahi is present. + + Translations + + + Ihar Hrachyshka (be@latin) + + Joan Duran (ca) + + David Lodge (en_GB) + + Mattias Põldaru (et) + + Iñaki Larrañaga Murgoitio (eu) + + Ilkka Tuohela (fi) + + Claude Paroz (fr) + + Gabor Kelemen (hu) + + Milo Casagrande (it) + + Changwoo Ryu (ko) + + Kjartan Maraas (nb) + + Dr.T.vasudevan (ta) + + Baris Cicek (tr) + + 甘露(Gan Lu) (zh_CN) + + Chao-Hsiung Liao (zh_HK) + + Chao-Hsiung Liao (zh_TW) + +Vino 2.25.91 +============ + + Fixes + + + Install autostart file in $sysconfdir/xgd/autostart. Usually you + should pass the argument --sysconfdir=/etc to configure (or autogen.sh) + script. + + i18n related fixes. + + Minor fixes. + + Translations + + + xa (ast) + + Alexander Shopov (bg) + + Joan Duran (ca) + + Ask Hjorth Larsen (da) + + Jorge González (es) + + Mattias Põldaru (et) + + Iñaki Larrañaga Murgoitio (eu) + + Gabor Kelemen (hu) + + Wouter Bolsterlee (nl) + + Manoj Kumar Giri (or) + + Tomasz Dominikowski (pl) + + Jonh Wendell (pt_BR) + + Duarte Loreto (pt) + + Adi Roiban (ro) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + + Clytie Siddall (vi) + + Chao-Hsiung Liao (zh_HK) + + Chao-Hsiung Liao (zh_TW) + +Vino 2.25.90 +============ + + Fixes + + + Only show notification if the status icon is visible. + + Fix drawing issues in the connectivity label. + + Uses a file containing links to webservices, instead of use a hard + coded one. + + Shows an IP address instead of the local hostname in the connectivity + label. + + Translations + + + Runa Bhattacharjee (bn_IN) + + Jorge González (es) + + Changwoo Ryu (ko) + + Kjartan Maraas (nb) + + Daniel Nylander (sv) + +Vino 2.25.5 +=========== + + Features + + + New capplet. + + Translations + + + Runa Bhattacharjee (bn_IN) + + Andre Klapper (de) + + Jorge González (es) + + Claude Paroz (fr) + + Oldie (he) + + Kjartan Maraas (nb) + +Vino 2.25.4 +=========== + + Features + + + Added UPnP support. Created a new boolean gconf key called use_upnp. + For now, no GUI changes + + Translations + + + Jorge González (es) + + Mattias Põldaru (et) + + Kjartan Maraas (nb) + + +Vino 2.25.3 +=========== + + Features + + + Removed local_only preference, and allow you to specify the network + interface to listen. + + Fixes + + + Some minor fixes + + Translations + + + Jorge González (es) + + Mattias Põldaru (et) + + Iñaki Larrañaga Murgoitio (eu) + + Oldie (he) + + Gabor Kelemen (hu) + +Vino 2.24.1 +=========== + + Fixes + + Bug #555105: Propagates port changes via avahi. + + Update label in vino-preferences when the port changes. + + Bug #161180: Hopefully fix an window empty bug. + + LP: #266932: Only restore the wallpaper when the last + client disconnects. + + Translations + + + Usama Akkad (ar) + + Ihar Hrachyshka (be@latin) + + Alexander Shopov (bg) + + Milo Casagrande (it) + +Vino 2.24.0 +=========== + + Translations + + + Usama Akkad (ar) + + Joan Duran (ca) + + Pavel Šefránek (cs) + + Ask Hjorth Larsen (da) + + Andre Klapper (de) + + Ankit Patel (gu) + + Ante Karamatić (hr) + + Gabor Kelemen (hu) + + Milo Casagrande (it) + + Shankar Prasad (kn) + + Young-Ho Cha (ko) + + Žygimantas Beručka (lt) + + പ്രവീണ് (ml) + + Dan Damian (ro) + + Alexandre Prokoudine (ru) + + Laurent Dhima (sq) + + Данило Шеган (sr) + + Baris Cicek (tr) + + Chao-Hsiung Liao (zh_HK) + + Chao-Hsiung Liao (zh_TW) + +Vino 2.23.92 +============ + + Fixes + + + Added an icon to session desktop file. + + Translations + + + Alexander Shopov (bg) + + Runa Bhattacharjee (bn_IN) + + David Lodge (en_GB) + + Takeshi AIHANA (ja) + + Kjartan Maraas (nb) + + Wouter Bolsterlee (nl) + + Manoj Kumar Giri (or) + + Tomasz Dominikowski (pl) + + Duarte Loreto (pt) + +Vino 2.23.91 +============ + + Fixes + + + Make vino work correctly with new gnome-session. (Jonh Wendell) + + Translations + + + Jorge González (es) + + Ivar Smolin (et) + + Iñaki Larrañaga Murgoitio (eu) + + Ilkka Tuohela (fi) + + Claude Paroz (fr) + + Oldie (he) + + Arangel Angov (mk) + + Sandeep Shedmake (mr) + + Kjartan Maraas (nb) + + Og Maciel (pt_BR) + + Daniel Nylander (sv) + + Tirumurthi Vasudevan (ta) + + Theppitak Karoonboonyanan (th) + +Vino 2.23.90 +============ + + Features + + + Added the ability to hide the background on connections. (Jorge Pereira) + + New compile-time option (--enable-libunique), allows only one + instance of capplet running. (Jorge, Jonh Wendell) + + Added vino-server.desktop file required by new gnome-session. (Halton Huo) + + Get rif of libgnome[ui] in the capplet. (Jonh) + + Fixes + + + Minor bug fixes + + Translations + + + Djihed Afifi (ar) + + Jorge González (es) + + Ivar Smolin (et) + + Ilkka Tuohela (fi) + + Claude Paroz (fr) + + Ignacio Casal Quinteiro (gl) + + Oldie (he) + + Arangel Angov (mk) + + Kjartan Maraas (nb) + + Wouter Bolsterlee (nl) + + Enrico Nicoletto (pt_BR) + + Duarte Loreto (pt) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + +Vino 2.23.5 +============ + + Features + + + New command-line tool, vino-passwd, which allows you to change + vino password. Similar to Unix passwd command. (Jorge Pereira) + + Fixes + + + Bug #534262 - cyclic clipboard propagation (Jonh Wendell) + + Minor bug fixes + + Translations + + + Djihed Afifi (ar) + + Rostislav "zbrox" Raykov (bg) + + Jorge González (es) + + Ivar Smolin (et) + + Ignacio Casal Quinteiro (gl) + + Oldie (he) + + Kjartan Maraas (nb) + + Wouter Bolsterlee (nl) + + Yannig Marchegay (Kokoyaya) (oc) + + Matej Urbančič (sl) + + Laurent Dhima (sq) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + +Vino 2.22.1 +============ + + Fixes + + + Don't lock the screen in fake connections (Jonh Wendell) + + Translations + + + Kostas Papadimas (el) + + Ivar Smolin (et) + + Eskild Hustvedt (nn) + + Marcel Telka (sk) + + Baris Cicek (tr) + +Vino 2.22.0 +=========== + + Translations + + + Djihed Afifi (ar) + + Ihar Hrachyshka (be@latin) + + Runa Bhattacharjee (bn_IN) + + Kenneth Nielsen (da) + + David Lodge (en_GB) + + Jorge González (es) + + Stéphane Raimbault (fr) + + Gabor Kelemen (hu) + + Milo Casagrande (it) + + Takeshi AIHANA (ja) + + Žygimantas Beručka (lt) + + I. Felix (ta) + + Maxim Dziumanenko (uk) + + Chao-Hsiung Liao (zh_HK) + + Chao-Hsiung Liao (zh_TW) + +Vino 2.21.92 +============ + + Fixes + + + Fix a crash with the vinagre client. (Mark McLoughlin) + + Fix a crash when client disconnects just after connecting. (Jonh Wendell) + + Fix the build with recent glibc. (Matthias Clasen) + + Translations + + + Josep Puigdemont (ca) + + Pavel Šefránek (cs) + + Ilkka Tuohela (fi) + + Robert-André Mauchin (fr) + + Nyitrai István (hu) + + Shankar Prasad (kn) + + Young-Ho Cha (ko) + + Arangel Angov (mk) + + Badral (mn) + + Shyam Krishna Bal (ne) + + Duarte Loreto (pt) + + Clytie Siddall (vi) + +Vino 2.21.91 +============ + + Translations + + + Djihed Afifi (ar) + + Amitakhya Phukan (as) + + Petr Kovar (cs) + + Andre Klapper (de) + + Arangel Angov (mk) + + Wouter Bolsterlee (nl) + + Tomasz Dominikowski (pl) + + Vladimir Melo (pt_BR) + + Zhovner Pavel (ru) + + Theppitak Karoonboonyanan (th) + +Vino 2.21.90 +============ + + Translations + + + Runa Bhattacharjee (bn_IN) + + Andre Klapper (de) + + Iñaki Larrañaga Murgoitio (eu) + + sandeep shedmake (mr) + + Kjartan Maraas (nb) + + Yannig Marchegay (Kokoyaya) (oc) + + Marcel Telka (sk) + + Daniel Nylander (sv) + + Clytie Siddall (vi) + +Vino 2.21.3 +============ + + Fixes + + + Minor fixes + + Translations + + + Ivar Smolin (et) + + Ignacio Casal Quinteiro (gl) + + Matapathi Pramod (te) + + Zhovner Pavel, Vasiliy Faronov (ru) + +Vino 2.21.2 +============ + + Features + + + New gconf key to control the status icon behaviour + + Added more options in the configuration applet + + Translations + + + Jorge González (es) + + Matej Urbančič (sl) + + Daniel Nylander (sv) + +Vino 2.21.1 +============ + + Features + + + Handles clipboard copy and paste (Jonh) + + Don't ship icons/ directory anymore (Jaap A. Haitsma) + + Fixes + + + Fixes some key presses issues (Dan Winship) + + Only show 'disconnect all' popup item in status icon if we have + more than one client connected (Jonh) + + Better handles disconnection from avahi-daemon (Sebastien Estienne) + + Translations + + + Djihed Afifi (ar) + + Oldie (he) + + Matej Urbančič (sl) + +Vino 2.20.1 +=========== + + Translations + + + Djihed Afifi (ar) + + Rostislav "zbrox" Raykov (bg) + + Iñaki Larrañaga Murgoitio (eu) + + Young-Ho Cha (ko) + + Dr.T.Vasudevan (ta) + +Vino 2.20.0 +=========== + + Translations + + + Khaled Hosny (ar) + + Iñaki Larrañaga Murgoitio (eu) + + Gabor Kelemen (hu) + + Arangel Angov (mk) + + Wouter Bolsterlee (nl) + + Og Maciel (pt_BR) + + Duarte Loreto (pt) + + Nickolay V. Shmyrev (ru) + + Laurent Dhima (sq) + + Данило Шеган (sr) + + Maxim Dziumanenko (uk) + + Clytie Siddall (vi) + +Vino 2.19.92 +============ + + Fixes + + + Bug #353304 - using Alt-Gr from a Windows VNC client to vino + + Bug #383147 - beryl windows manager does not support vino only metacity + + Translations + + + Josep Puigdemont (ca) + + Ask Hjorth Larsen (da) + + Hendrik Richter (de) + + Ivar Smolin (et) + + Stéphane Raimbault (fr) + + Takeshi AIHANA (ja) + + Young-Ho Cha (ko) + + Žygimantas Beručka (lt) + + Arangel Angov (mk) + + Tomasz Dominikowski (pl) + + Og Maciel (pt_BR) + +Vino 2.19.90 +============ + + Features + + + Included hostname in Avahi service name + + Show the configure summary + + Fixes + + + Minor fixes + + Translations + + + Runa Bhattacharjee (bn_IN) + + Denis Radovanović (bs) + + Hendrik Richter (de) + + Athanasios Lefteris (el) + + David Lodge (en_GB) + + Jorge González (es) + + Ivar Smolin (et) + + Iñaki Larrañaga Murgoitio (eu) + + Ilkka Tuohela (fi) + + Ankit Patel (gu) + + Rajesh Ranjan (hi) + + Takeshi AIHANA (ja) + + Vladimer Sichinava (ka) + + Raivis Dejus (lv) + + Hasbullah Bin Pit (ms) + + Kjartan Maraas (nb) + + Wouter Bolsterlee (nl) + + Gora Mohanty (or) + + Og Maciel (pt_BR) + + Leonid Kanter (ru) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + + Baris Cicek (tr) + + Maxim Dziumanenko (uk) + +Vino 2.19.5 +=========== + + Features + + + Show http server address in vino-preferences if vino is compiled + with http support (Halton Huo) + + Added a new configuration option (gconf key) + 'lock_screen_on_disconnect', which locks the screen when last + user disconnects (Jonh) + + Build against libnotify, if it's available (added + --enable-libnotify=auto and make it the default) + + Fixes + + + Only publish VNC service under Avahi when server is enabled, + bug #330690 (Jonh) + + Don't assert on a NULL find result from gnome-keyring, + bug #450074 (Stef Walter) + + Fix a crash when dbus Introspect() method is called, + bug #445525 (Jonh) + + Fix keyboard mapping problem, bug #440429 (Jonh) + + Use $prefix/share/vino for data in favor of $prefix/share/gnome/vino, + bug #436460 (Matthias Clasen) + + Fix gtk-update-icon-cache for install and uninstall-hook (David Farning) + + Fix crash in mouse wheel movement on non-Xorg system, + bug #431627 (Halton Huo) + + Translations + + + Khaled Hosny (ar) + + Jakub Friedl (cs) + + Tshewang Norbu (dz) + + David Lodge (en_GB) + + Jorge González (es) + + Ivar Smolin (et) + + Ignacio Casal Quinteiro (gl) + + Oldie (he) + + Espen Stefansen (nb) + + Danishka Navin (si) + + Daniel Nylander (sv) + + Dr.T.Vasudevan (ta) + + Theppitak Karoonboonyanan (th) + + Clytie Siddall (vi) + + Yang Zhang (zh_CN) + +Vino 2.18.1 +=========== + + Fixes + + + Fix the non-XDAMAGE, non-XSHM support, bug #423887 (Mark) + + Fix crash on vino_input_init(), bug #425863 (Jonh, Mark) + + Fix crashes on critical warning in vino-preferences applet, + bug #418836 and bug #423027 (Halton Huo, Jonh) + + Translations + + + Peter Bach (da) + + Maria Majadas (es) + + Iñaki Larrañaga Murgoitio (eu) + + Ignacio Casal Quinteiro (gl) + +Vino 2.18.0 +=========== + + Fixes + + + Fix build fail with --enable-http-server (Halton Huo) + + Fix crash when 'disconnect client' menu item is called twice (Jonh, Mark) + + Adjusts in .desktop file, making it valid according with freedesktop.org (Jonh) + + Translations + + + norbu (dz) + + Athanasios Lefteris (el) + + Ankit Patel (gu) + + Milo Casagrande (it) + + Takeshi AIHANA (ja) + + Žygimantas Beručka (lt) + + Kjartan Maraas (nb) + + Reinout van Schouwen (nl) + + Gnome PL Team (pl) + + Leonardo Ferreira Fontenelle (pt_BR) + + Данило Шеган (sr) + + Maxim Dziumanenko (uk) + +Vino 2.17.92 +=========== + + Fixes + + + A few issues related to new Vino Status Icon (Jonh, Christian Persch) + + Adjust Categories in desktop file according with new Control Center (Denis Washington) + + Fix minor issues about GnomeIconTheme usage (Jani Monoses) + + Updates port number in preferences window when server starts (Jonh) + + Translations + + + Khaled Hosny (ar) + + Rostislav Raykov (bg) + + Josep Puigdemont (ca) + + Hendrik Richter (de) + + David Lodge (en_GB) + + Ivar Smolin (et) + + Ilkka Tuohela (fi) + + Jonathan Ernst (fr) + + Oldie (he) + + Gabor Kelemen (hu) + + Young-Ho Cha (ko) + + Jovan Naumovski (mk) + + Kjartan Maraas (nb) + + Reinout van Schouwen (nl) + + Leonardo Ferreira Fontenelle (pt_BR) + + Duarte Loreto (pt) + + Leonid Kanter (ru) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + + Nguyễn Thái Ngọc Duy (vi) + + Chao-Hsiung Liao (zh_HK, zh_TW) + +Vino 2.17.5 +=========== + + Features + + + Add D-Bus support so that capplet can find out the port number + from the server (Jonh, Mark) + + Display a notification bubble when someone connects if we + haven't already prompted the user for authorization (Jonh, Mark) + + Fixes + + + Replace deprecated GnomeIconTheme usage with GtkIconTheme (Christian Persch) + + Don't mark GObject property descriptions for translation (Mark) + + Translations + + + Khaled Hosny (ar) + + Hendrik Richter (de) + + David Lodge (en_GB) + + Francisco Javier F. Serrador (es) + + Satrou SATOH (ja) + + Raivis Dejus (lv) + + Kjartan Maraas (nb) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + +Vino 2.17.4 +=========== + + Features + + + Add a status icon allowing you to disconnect users + (Jonh Wendell, Christian Persch, Mark, Calum, Andre Klapper) + + Fixes + + + Hide the help button in the prompt dialog (Mark) + + Fix broken keyboard under Xsun (Halton Huo, Mark) + + Fix the desktop name remoted to the client (Jonh Wendell) + + Fix the stringification of the client hostname (Jonh Wendell) + + Translators + + + Khaled Hosny (ar) + + Francisco Javier F. Serrador (es) + + Mohammad DAMT (id) + + Kjartan Maraas (nb) + + Daniel Nylander (sv) + + Theppitak Karoonboonyanan (th) + +Vino 2.17.2 +=========== + + Features + + + Add "local_only" GConf key for use with SSH tunnels (Mark, Shaya Potter) + + Add "alternative_port" GConf key (Mark, John Wendell) + + Add ability to use gnome-keyring to store VNC password (Mark, Steven Zhang) + + Add IPv6 support (Mark, Srirama Sharma) + + Fixes + + + Update for RFB 3.8 (Dan Winship) + + Fix for X servers which don't support XShm (Dan Winship) + + Fix CoRRE encoding problem (Mark) + + Back-port some fixes from upstream libvncserver (Mark) + + Add GTK category to .desktop file (Mark) + + Mark some weird glade strings as non-translatable (Mark) + + Fix icons not changing when icon theme changes (Mark) + + Use glib's base64 functions instead of our own (Mark) + + Use GtkLinkButton instead of VinoURL (Mariano Suárez-Alvarez) + + Translators + + + Rostislav \"zbrox\" Raykov (bg) + + Francisco Javier F. Serrador (es) + + Ivar Smolin (et) + + Ilkka Tuohela (fi) + + Christophe Merlet (RedFox) (fr) + + Ankit Patel (gu) + + Satrou SATOH (ja) + + Jovan Naumovski (mk) + + Shiva Prasad Pokharel (ne) + + Marcel Telka (sk) + + Daniel Nylander (sv) + + Clytie Siddall (vi) + +Vino 2.16.0 +=========== + + Fixes + + + Fix hang on wrong login (Gary Coady) + + Build fixes for FreeBSD (Diego Pettenò) + + Build fixes (Leonardo Boshell) + +Vino 2.13.5 +=========== + + Features + + + Publish services over mDNS (Sebastien Estienne, Mark McLoughlin) + + Fixes + + + Fix keyboard brokeness with some X server configurations (Alexandre Oliva) + + Fix crash with unicode mapped keysyms (Gary Coady) + + Translators + + + Rostislav Raykov (bg) + + Iñaki Larrañaga Murgoitio (eu) + + Alessio Frusciante (it) + + Erdal Ronahi (ku) + +Vino 2.12.0 +=========== + + Translators + + + Rhys Jones (cy) + + Hendrik Richter (de) + + Meelad Zakaria (fa) + + Christophe Merlet (RedFox) (fr) + + Satrou SATOH (ja) + + Young-Ho Cha (ko) + + Žygimantas Beručka (lt) + + Leonid Kanter (ru) + + Андрија Зарић (sr) + + Baris Cicek (tr) + +Vino 2.11.92 +============ + + Translators + + + Josep Puigdemont (ca) + + Ivar Smolin (et) + + Gabor Kelemen (hu) + + Gnome PL Team (pl) + + Raphael Higino (pt_BR) + + Duarte Loreto (pt) + + Dan Damian (ro) + + Maxim Dziumanenko (uk) + + storm (zh_CN) + + Chi-Wei Chen (zh_TW) + +Vino 2.11.90 +============ + + Fixes + + + Performance improvement using DamageReportDeltaRectangles (Mark) + + Plug a leak (Kjartan Maraas) + + Translators + + + Rostislav "zbrox" Raykov (bg) + + Miloslav Trmac (cs) + + Martin Willemoes Hansen (da) + + Hendrik Richter (de) + + Adam Weinberger (en_CA) + + Francisco Javier F. Serrador (es) + + Priit Laes (et) + + Ilkka Tuohela (fi) + + Ignacio Casal Quinteiro (gl) + + Ankit Patel (gu) + + Oldie (he) + + Kjartan Maraas (nb, no) + + Ronald van Engelen (nl) + + Marcel Telka (sk) + + Elian Myftiu (sq) + + Theppitak Karoonboonyanan (th) + + Clytie Siddall (vi) + + Chi-Wei Chen (zh_TW) + +Vino 2.11.1.2 +============= + + Fixes + + + Fix Caps Lock not working (Mark) + + Fix Shift not working for some keys (Mark) + + Fix over-eager key repeat issue (Mark) + +Vino 2.11.1.1 +============= + + Fixes + + + Fix build failure with not-CVS-HEAD ORBit2 (Mark) + +Vino 2.11.1 +=========== + + Fixes + + + Fix crasher when changing screen size (Leena Gunda, Mark) + + Fix accumulation of signal handlers with ever screen size change (Leena Gunda) + + Don't let the help button on the prompt dialog terminate it (Mark) + + Fix warning spew when deleting password in capplet (Mark) + + Translators + + + Adam Weinberger (en_CA) + + Priit Laes (et) + + Gabor Kelemen (hu) + + Jyotsna Shrestha (ne) + + Steve Murphy (rw) + + Abduxukur Abdurixit (ug) + + Pablo Saratxaga (wa) + + Canonical Ltd (xh) + +Vino 2.10.0 +=========== + + Translators + + + Rostislav Raykov (bg) + + Josep Puigdemont (ca) + + Rhys Jones (cy) + + Priit Laes (et) + + Rajesh Ranjan (hi) + + Žygimantas Beručka (lt) + + Kjartan Maraas (nb) + + Rajeev Shrestha (ne) + + Åsmund Skjæveland (nn) + + Kjartan Maraas (no) + + Leonid Kanter (ru) + + Elian Myftiu (sq) + + Chi-Wei Chen (zh_TW) + +Vino 2.9.2 +========== + + Fixes + + + New icon (Jakub Steiner) + + Add X-GNOME-Bugzilla-Version to .desktop file for bug-buddy (Christoffer Olsen) + + Install icon into hicolor icon theme (Mark) + + Update to automake 1.7 (Mark) + + Install .desktop file in $(datadir)/applications (Mark) + + Translators + + + Rostislav Raykov (bg) + + Alessio Frusciante (it) + + Žygimantas Beručka (lt) + + Badral (mn) + + Kjartan Maraas (nb) + + Gora Mohanty (or) + + Marcel Telka (sk) + +Vino 2.8.1 +========== + + Fixes + + + Improve the key repeat rate situation a lot (Mark) + + Don't get screwed up with Metacity's reduced_resources mode (Mark) + + Translators + + + Mohammad DAMT (id) + +Vino 2.8.0.1 +============ + + Fixes + + + Fix typo which caused problems at 800x600 (Gregory Thiemong) + + Hook up help dialog to docs in gnome-user-docs (Mark) + + Translators + + + Adam Weinberger (en_CA) + + Åsmund Skjæveland (nn) + + Gora Mohanty (or) + +Vino 2.8.0 +========== + + Translators + + + Ayman Hourieh (ar) + + Mətin Əmirov (az) + + Josep Puigdemont (ca) + + Miloslav Trmac (cs) + + Nikos Charonitakis (el) + + Luca Ferretti (it) + + Mişu Moldovan (ro) + + Jayaradha N (ta) + + Baris Cicek (tr) + + Chi-Wei Chen (zh_TW) + +Vino 2.7.92 +=========== + + Translators + + + Denis Radovanović (bs) + + Ole Laursen (da) + + Christian Neumair (de) + + Kostas Papadimas (el) + + Iñaki Larrañaga Murgoitio (eu) + + Sami Pesonen (fi) + + Audrey Simons (fr) + + Satrou SATOH (ja) + + Young-Ho Cha (ko) + + Hasbullah Bin Pit (ms) + + Kjartan Maraas (nb) + + Elian Myftiu (sq) + + Christian Rose (sv) + + Maxim Dziumanenko (uk) + +Vino 2.7.91 +=========== + + Fixes + + + Make the DAMAGE support actually work (Mark) + + Link against Xfixes when building DAMAGE support (Mark) + + Translators + + + Gnome PL Team (pl) + + Duarte Loreto (pt) + +Vino 2.7.90 +=========== + + Fixes + + + Remove the Java client (Mark) + + Don't build the http server by default but add a --enable-http-server arg (Mark) + + Translators + + + Rostislav Raykov (bg) + + Runa Bhattacharjee (bn) + + Adam Weinberger (en_CA) + + Gareth Owen (en_GB) + + Francisco Javier F. Serrador (es) + + Ankit Patel (gu) + + Gabor Kelemen (hu) + + Vincent van Adrighem (nl) + + Kjartan Maraas (no) + + Amanpreet Singh Alam (pa) + + Duarte Loreto (pt) + + Elian Myftiu (sq) + + Данило Шеган (sr) + + storm (zh_CN) + +Vino 2.7.4 +========== + + Fixes + + + Don't crash with an RFB 3.3 client when require_encryption is set (Mark) + + Change the layout of the preferences dialog to be HIG compliant (Dennis Cranston) + + Translators + + + Miloslav Trmac (cs) + + Raphael Higino (pt_BR) + + Christian Rose (sv) + +Vino 2.7.3.1 +============ + + Build Stuff + + + Add --disable-gnutls and --disable-gcrypt configure args (Mark) + +Vino 2.7.3 +========== + + Server + + + Add support for XDAMAGE (Federico Mena, Mark) + + Don't require clients to support encryption by default (Mark) + + Fix a shared memory leak (Mark) + + Capplet + + + Remove the require encryption toggle (Mark) + + Display a vncviewer command line instead of a url (Mark) + + Build Stuff + + + Make GNU TLS a conditional build requirement (Mark) + + Add a --enable-java configure arg (Mark) + + Translators + + + Rostislav Raykov (bg) + + Miloslav Trmac (cs) + + Adam Weinberger (en_CA) + + Gareth Owen (en_GB) + + Elros Cyriatan (nl) + + Raphael Higino (pt_BR) + + Duarte Loreto (pt) + + Christian Rose (sv) + + storm (zh_CN) + +Vino 0.14 +========= + + Server + + + Modify the way the protocol uses TLS + + Client + + + Update for protocol changes + + Fix compile failure + + Preferences Dialog + + + Use new gtk+ APIs rather than egg_screen_blah() + +Vino 0.12 +========= + + Server + + + Don't leave the client on hold after user accepts them (Leena Gunda) + + Preferences Dialog + + + Display the correct hostname in the URL (Mark) + +Vino 0.11 +========= + + Server + + + Fix inefficiency when clients are on hold + + After an unsuccessful authentication attempt, defer the next one for 5 seconds + + Use libgcrypt to generate a wholly unpredictable challenge + + Properly manage the prompt dialog when multiple clients connect + + + Preferences Dialog + + + Fix some mnemonic conflicts + + Put HTTP URL for the server in the dialog based on Calum's feedback + +Vino 0.10 +========= + + Server + + + Implement a HTTP server which returns a web page with the applet + + Handle RandR screen size changes + + Register with bonobo-activation-server to support activation + + Don't poll the screen/pointer unless a client is connected + + Fix cursor updates for clients that don't support CursorShape encoding + + Re-do the prompt dialog incorporating suggestions from Calum + + Fix problem with blocking during the TLS handshake + + Preferences Dialog + + + Completely new look designed by Calum + + Add back the "Allow encrypted connections" preference + + Client + + + Support 24-bit color instead of 8-bit color + + Focus the window on startup + + Show the security type in the info dialog + + Make the applet draw our icon instead of a RealVNC blurb + + Misc + + + Add a session managed client to handle activating the server + +Vino 0.9 +======== + + Server + + + VNC server based on the same concepts as x0rfbserver, krfb etc. + + TLS/SSL support for encrypted communication + + Preferences in GConf + + User may authorize each connection individually + + Uses GTK+, GDK, GObject and glib + + Preferences Dialog + + + GNOME HIG compliant preferences dialog + + Client + + + Java client from RealVNC's distribution + + Support for TLS/SSL + + + + diff --git a/README b/README new file mode 100644 index 0000000..2f166d3 --- /dev/null +++ b/README @@ -0,0 +1,32 @@ +Vino +==== + +This package is free software and is part of the GNOME project. + +The package contains an integrated VNC server for GNOME. + +You can download or see more information about it on: + https://wiki.gnome.org/Projects/Vino + +Installation +============ + +See the file 'INSTALL' for generic installation instructions. + +You need the development packages of the following libraries: + +* gtk+-3.0 +* glib-2.0 +* libsoup-2.4 + +Optional support for external libraries can be enabled with the configure +script. Relevant libraries include: + +* telepathy-glib +* libnotify +* gnome-keyring +* GnuTLS +* gcrypt +* avahi-client and avahi-glib +* zlib +* libjpeg diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..ddcb8a5 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,2053 @@ +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +dnl Autoconf macros for libgcrypt +dnl Copyright (C) 2002, 2004, 2011 Free Software Foundation, Inc. +dnl +dnl This file is free software; as a special exception the author gives +dnl unlimited permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + +dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, +dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) +dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. +dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed +dnl with the API version to also check the API compatibility. Example: +dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed +dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using +dnl this features allows to prevent build against newer versions of libgcrypt +dnl with a changed API. +dnl +AC_DEFUN([AM_PATH_LIBGCRYPT], +[ AC_REQUIRE([AC_CANONICAL_HOST]) + AC_ARG_WITH(libgcrypt-prefix, + AC_HELP_STRING([--with-libgcrypt-prefix=PFX], + [prefix where LIBGCRYPT is installed (optional)]), + libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") + if test x$libgcrypt_config_prefix != x ; then + if test x${LIBGCRYPT_CONFIG+set} != xset ; then + LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config + fi + fi + + AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) + tmp=ifelse([$1], ,1:1.2.0,$1) + if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then + req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` + min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` + else + req_libgcrypt_api=0 + min_libgcrypt_version="$tmp" + fi + + AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) + ok=no + if test "$LIBGCRYPT_CONFIG" != "no" ; then + req_major=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` + req_minor=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` + req_micro=`echo $min_libgcrypt_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` + libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` + major=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` + minor=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` + micro=`echo $libgcrypt_config_version | \ + sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` + if test "$major" -gt "$req_major"; then + ok=yes + else + if test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok=yes + else + if test "$minor" -eq "$req_minor"; then + if test "$micro" -ge "$req_micro"; then + ok=yes + fi + fi + fi + fi + fi + fi + if test $ok = yes; then + AC_MSG_RESULT([yes ($libgcrypt_config_version)]) + else + AC_MSG_RESULT(no) + fi + if test $ok = yes; then + # If we have a recent libgcrypt, we should also check that the + # API is compatible + if test "$req_libgcrypt_api" -gt 0 ; then + tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` + if test "$tmp" -gt 0 ; then + AC_MSG_CHECKING([LIBGCRYPT API version]) + if test "$req_libgcrypt_api" -eq "$tmp" ; then + AC_MSG_RESULT([okay]) + else + ok=no + AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) + fi + fi + fi + fi + if test $ok = yes; then + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + ifelse([$2], , :, [$2]) + libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` + if test x"$libgcrypt_config_host" != xnone ; then + if test x"$libgcrypt_config_host" != x"$host" ; then + AC_MSG_WARN([[ +*** +*** The config script $LIBGCRYPT_CONFIG was +*** built for $libgcrypt_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgcrypt-prefix +*** to specify a matching config script. +***]]) + fi + fi + else + LIBGCRYPT_CFLAGS="" + LIBGCRYPT_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(LIBGCRYPT_CFLAGS) + AC_SUBST(LIBGCRYPT_LIBS) +]) + +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) + +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29) +dnl +dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. +dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_ENABLE_DEBUG([enable by default=yes/info/profile/no], [ENABLE DEBUG VARIABLES ...], [DISABLE DEBUG VARIABLES NDEBUG ...], [IS-RELEASE]) +# +# DESCRIPTION +# +# Check for the presence of an --enable-debug option to configure, with +# the specified default value used when the option is not present. Return +# the value in the variable $ax_enable_debug. +# +# Specifying 'yes' adds '-g -O0' to the compilation flags for all +# languages. Specifying 'info' adds '-g' to the compilation flags. +# Specifying 'profile' adds '-g -pg' to the compilation flags and '-pg' to +# the linking flags. Otherwise, nothing is added. +# +# Define the variables listed in the second argument if debug is enabled, +# defaulting to no variables. Defines the variables listed in the third +# argument if debug is disabled, defaulting to NDEBUG. All lists of +# variables should be space-separated. +# +# If debug is not enabled, ensure AC_PROG_* will not add debugging flags. +# Should be invoked prior to any AC_PROG_* compiler checks. +# +# IS-RELEASE can be used to change the default to 'no' when making a +# release. Set IS-RELEASE to 'yes' or 'no' as appropriate. By default, it +# uses the value of $ax_is_release, so if you are using the AX_IS_RELEASE +# macro, there is no need to pass this parameter. +# +# AX_IS_RELEASE([git-directory]) +# AX_CHECK_ENABLE_DEBUG() +# +# LICENSE +# +# Copyright (c) 2011 Rhys Ulerich <rhys.ulerich@gmail.com> +# Copyright (c) 2014, 2015 Philip Withnall <philip@tecnocode.co.uk> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 5 + +AC_DEFUN([AX_CHECK_ENABLE_DEBUG],[ + AC_BEFORE([$0],[AC_PROG_CC])dnl + AC_BEFORE([$0],[AC_PROG_CXX])dnl + AC_BEFORE([$0],[AC_PROG_F77])dnl + AC_BEFORE([$0],[AC_PROG_FC])dnl + + AC_MSG_CHECKING(whether to enable debugging) + + ax_enable_debug_default=m4_tolower(m4_normalize(ifelse([$1],,[no],[$1]))) + ax_enable_debug_is_release=m4_tolower(m4_normalize(ifelse([$4],, + [$ax_is_release], + [$4]))) + + # If this is a release, override the default. + AS_IF([test "$ax_enable_debug_is_release" = "yes"], + [ax_enable_debug_default="no"]) + + m4_define(ax_enable_debug_vars,[m4_normalize(ifelse([$2],,,[$2]))]) + m4_define(ax_disable_debug_vars,[m4_normalize(ifelse([$3],,[NDEBUG],[$3]))]) + + AC_ARG_ENABLE(debug, + [AS_HELP_STRING([--enable-debug=]@<:@yes/info/profile/no@:>@,[compile with debugging])], + [],enable_debug=$ax_enable_debug_default) + + # empty mean debug yes + AS_IF([test "x$enable_debug" = "x"], + [enable_debug="yes"]) + + # case of debug + AS_CASE([$enable_debug], + [yes],[ + AC_MSG_RESULT(yes) + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ], + [info],[ + AC_MSG_RESULT(info) + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ], + [profile],[ + AC_MSG_RESULT(profile) + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ], + [ + AC_MSG_RESULT(no) + dnl Ensure AC_PROG_CC/CXX/F77/FC/OBJC will not enable debug flags + dnl by setting any unset environment flag variables + AS_IF([test "x${CFLAGS+set}" != "xset"], + [CFLAGS=""]) + AS_IF([test "x${CXXFLAGS+set}" != "xset"], + [CXXFLAGS=""]) + AS_IF([test "x${FFLAGS+set}" != "xset"], + [FFLAGS=""]) + AS_IF([test "x${FCFLAGS+set}" != "xset"], + [FCFLAGS=""]) + AS_IF([test "x${OBJCFLAGS+set}" != "xset"], + [OBJCFLAGS=""]) + ]) + + dnl Define various variables if debugging is disabled. + dnl assert.h is a NOP if NDEBUG is defined, so define it by default. + AS_IF([test "x$enable_debug" = "xyes"], + [m4_map_args_w(ax_enable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is enabled])])], + [m4_map_args_w(ax_disable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is disabled])])]) + ax_enable_debug=$enable_debug +]) + +# gnome-common.m4 +# +# serial 3 +# + +AU_DEFUN([GNOME_DEBUG_CHECK], +[ + AX_CHECK_ENABLE_DEBUG([no],[GNOME_ENABLE_DEBUG]) +], +[[$0: This macro is deprecated. You should use AX_CHECK_ENABLE_DEBUG instead and +replace uses of GNOME_ENABLE_DEBUG with ENABLE_DEBUG. +See: http://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html#ax_check_enable_debug]]) + +dnl GNOME_MAINTAINER_MODE_DEFINES () +dnl define DISABLE_DEPRECATED +dnl +AU_DEFUN([GNOME_MAINTAINER_MODE_DEFINES], +[ + AC_REQUIRE([AM_MAINTAINER_MODE]) + + DISABLE_DEPRECATED="" + if test $USE_MAINTAINER_MODE = yes; then + DOMAINS="GCONF BONOBO BONOBO_UI GNOME LIBGLADE GNOME_VFS WNCK LIBSOUP" + for DOMAIN in $DOMAINS; do + DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES" + done + fi + + AC_SUBST(DISABLE_DEPRECATED) +], +[[$0: This macro is deprecated. All of the modules it disables deprecations for +are obsolete. Remove it and all uses of DISABLE_DEPRECATED.]]) + +# gnome-compiler-flags.m4 +# +# serial 4 +# + +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings and substitute the result into +dnl WARN_CFLAGS +dnl For now, only works on GCC +dnl Pass the default value of the --enable-compile-warnings configure option as +dnl the first argument to the macro, defaulting to 'yes'. +dnl Additional warning/error flags can be passed as an optional second argument. +dnl +dnl For example: GNOME_COMPILE_WARNINGS([maximum],[-Werror=some-flag -Wfoobar]) +AU_DEFUN([GNOME_COMPILE_WARNINGS],[ + dnl ****************************** + dnl More compiler warnings + dnl ****************************** + + AC_ARG_ENABLE(compile-warnings, + AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], + [Turn on compiler warnings]),, + [enable_compile_warnings="m4_default([$1],[yes])"]) + + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + dnl These are warning flags that aren't marked as fatal. Can be + dnl overridden on a per-project basis with -Wno-foo. + base_warn_flags=" \ + -Wall \ + -Wstrict-prototypes \ + -Wnested-externs \ + " + + dnl These compiler flags typically indicate very broken or suspicious + dnl code. Some of them such as implicit-function-declaration are + dnl just not default because gcc compiles a lot of legacy code. + dnl We choose to make this set into explicit errors. + base_error_flags=" \ + -Werror=missing-prototypes \ + -Werror=implicit-function-declaration \ + -Werror=pointer-arith \ + -Werror=init-self \ + -Werror=format-security \ + -Werror=format=2 \ + -Werror=missing-include-dirs \ + -Werror=return-type \ + " + + dnl Additional warning or error flags provided by the module author to + dnl allow stricter standards to be imposed on a per-module basis. + dnl The author can pass -W or -Werror flags here as they see fit. + additional_flags="m4_default([$2],[])" + + case "$enable_compile_warnings" in + no) + warning_flags="-w" + ;; + minimum) + warning_flags="-Wall" + ;; + yes|maximum|error) + warning_flags="$base_warn_flags $base_error_flags $additional_flags" + ;; + *) + AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) + ;; + esac + + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + + dnl Check whether GCC supports the warning options + for option in $warning_flags; do + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + CFLAGS="$save_CFLAGS" + AC_MSG_RESULT([$has_option]) + if test $has_option = yes; then + tested_warning_flags="$tested_warning_flags $option" + fi + unset has_option + unset save_CFLAGS + done + unset option + CFLAGS="$realsave_CFLAGS" + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + AC_MSG_RESULT($tested_warning_flags) + + AC_ARG_ENABLE(iso-c, + AS_HELP_STRING([--enable-iso-c], + [Try to warn if code is not ISO C ]),, + [enable_iso_c=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) + + WARN_CFLAGS="$tested_warning_flags $complCFLAGS" + AC_SUBST(WARN_CFLAGS) +], +[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and +eliminate use of --enable-iso-c. +See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) + +dnl For C++, do basically the same thing. + +AU_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + AS_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] + [Turn on compiler warnings.]),, + [enable_cxx_warnings="m4_default([$1],[minimum])"]) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GXX" != xyes; then + enable_cxx_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + AS_HELP_STRING([--enable-iso-cxx], + [Try to warn if code is not ISO C++ ]),, + [enable_iso_cxx=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCXXFLAGS) + + WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + AC_SUBST(WARN_CXXFLAGS) +], +[[$0: This macro is deprecated. You should use AX_COMPILER_FLAGS instead and +eliminate use of --enable-iso-cxx. +See: http://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html#ax_compiler_flags]]) + +dnl GLIB_GSETTINGS +dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether +dnl the schema should be compiled +dnl + +AC_DEFUN([GLIB_GSETTINGS], +[ + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE(schemas-compile, + AS_HELP_STRING([--disable-schemas-compile], + [Disable regeneration of gschemas.compiled on install]), + [case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; + esac]) + AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) + PKG_PROG_PKG_CONFIG([0.16]) + AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) + fi + AC_SUBST(GLIB_COMPILE_SCHEMAS) + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) + else + ifelse([$1],,[:],[$1]) + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p [$](@D) && touch [$]@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ +endif +' + _GSETTINGS_SUBST(GSETTINGS_RULES) +]) + +dnl _GSETTINGS_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_GSETTINGS_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: <http://www.gnu.org/software/coreutils/>. + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + AM_RUN_LOG([cat conftest.dir/file]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/intltool.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..4156bda --- /dev/null +++ b/autogen.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +(test -f $srcdir/configure.ac \ + && test -f $srcdir/server/vino-fb.c) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level Vino directory" + exit 1 +} + +which gnome-autogen.sh || { + echo "You need to install gnome-common" + exit 1 +} + +. gnome-autogen.sh diff --git a/build-aux/compile b/build-aux/compile new file mode 100755 index 0000000..a85b723 --- /dev/null +++ b/build-aux/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey <tromey@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..dbfb978 --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1421 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-01-01' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <http://www.gnu.org/licenses/>. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches to <config-patches@gnu.org>. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include <features.h> + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <config-patches@gnu.org> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.sub b/build-aux/config.sub new file mode 100755 index 0000000..6467c95 --- /dev/null +++ b/build-aux/config.sub @@ -0,0 +1,1807 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-01-01' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see <http://www.gnu.org/licenses/>. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to <config-patches@gnu.org>. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 0000000..fc98710 --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 0000000..0b0fdcb --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,501 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2013-12-25.23; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 0000000..0f0a2da --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11147 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.6 +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='[0m' + tc_bold='[1m'; tc_standout='[7m' + tc_red='[31m'; tc_green='[32m' + tc_blue='[34m'; tc_cyan='[36m' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '<hooked_function_name>_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.6 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to <bug-libtool@gnu.org>. +GNU libtool home page: <http://www.gnu.org/software/libtool/>. +General help using GNU software: <http://www.gnu.org/gethelp/>." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <<EOF +# $write_libobj - a libtool object file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object=$write_lobj + +# Name of the non-PIC object +non_pic_object=$write_oldobj + +EOF + $MV "${write_libobj}T" "$write_libobj" + } +} + + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $debug_cmd + + func_convert_core_file_wine_to_w32_result=$1 + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen <import library>. + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 </dev/null >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM (GNU $PACKAGE) $VERSION + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. +*/ +EOF + cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif +#include <stdio.h> +#include <stdlib.h> +#ifdef _MSC_VER +# include <direct.h> +# include <process.h> +# include <io.h> +#else +# include <unistd.h> +# include <stdint.h> +# ifdef __CYGWIN__ +# include <io.h> +# endif +#endif +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/stat.h> + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <<EOF +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) +# define externally_visible volatile +#else +# define externally_visible __attribute__((externally_visible)) volatile +#endif +externally_visible const char * MAGIC_EXE = "$magic_exe"; +const char * LIB_PATH_VARNAME = "$shlibpath_var"; +EOF + + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + func_to_host_path "$temp_rpath" + cat <<EOF +const char * LIB_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * LIB_PATH_VALUE = ""; +EOF + fi + + if test -n "$dllsearchpath"; then + func_to_host_path "$dllsearchpath:" + cat <<EOF +const char * EXE_PATH_VARNAME = "PATH"; +const char * EXE_PATH_VALUE = "$func_to_host_path_result"; +EOF + else + cat <<"EOF" +const char * EXE_PATH_VARNAME = ""; +const char * EXE_PATH_VALUE = ""; +EOF + fi + + if test yes = "$fast_install"; then + cat <<EOF +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ +EOF + else + cat <<EOF +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ +EOF + fi + + + cat <<"EOF" + +#define LTWRAPPER_OPTION_PREFIX "--lt-" + +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; +static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; + +int +main (int argc, char *argv[]) +{ + char **newargz; + int newargc; + char *tmp_pathspec; + char *actual_cwrapper_path; + char *actual_cwrapper_name; + char *target_name; + char *lt_argv_zero; + int rval = 127; + + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + newargz = XMALLOC (char *, (size_t) argc + 1); + + /* very simple arg parsing; don't want to rely on getopt + * also, copy all non cwrapper options to newargz, except + * argz[0], which is handled differently + */ + newargc=0; + for (i = 1; i < argc; i++) + { + if (STREQ (argv[i], dumpscript_opt)) + { +EOF + case $host in + *mingw* | *cygwin* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; + esac + + cat <<"EOF" + lt_dump_script (stdout); + return 0; + } + if (STREQ (argv[i], debug_opt)) + { + lt_debug = 1; + continue; + } + if (STREQ (argv[i], ltwrapper_option_prefix)) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal (__FILE__, __LINE__, + "unrecognized %s option: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); + } + newargz[++newargc] = NULL; + +EOF + cat <<EOF + /* The GNU banner must be the first non-error debug message */ + lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n"); +EOF + cat <<"EOF" + lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); + lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); + + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) + lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (before symlink chase) at: %s\n", + tmp_pathspec); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (after symlink chase) at: %s\n", + actual_cwrapper_path); + XFREE (tmp_pathspec); + + actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ + strendzap (actual_cwrapper_name, ".exe"); + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); + XFREE (actual_cwrapper_name); + actual_cwrapper_name = tmp_pathspec; + tmp_pathspec = 0; + + /* target_name transforms -- use actual target program name; might have lt- prefix */ + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); + strendzap (target_name, ".exe"); + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); + XFREE (target_name); + target_name = tmp_pathspec; + tmp_pathspec = 0; + + lt_debugprintf (__FILE__, __LINE__, + "(main) libtool target name: %s\n", + target_name); +EOF + + cat <<EOF + newargz[0] = + XMALLOC (char, (strlen (actual_cwrapper_path) + + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); + strcpy (newargz[0], actual_cwrapper_path); + strcat (newargz[0], "$objdir"); + strcat (newargz[0], "/"); +EOF + + cat <<"EOF" + /* stop here, and copy so we don't have to do this twice */ + tmp_pathspec = xstrdup (newargz[0]); + + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ + strcat (newargz[0], actual_cwrapper_name); + + /* DO want the lt- prefix here if it exists, so use target_name */ + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); + XFREE (tmp_pathspec); + tmp_pathspec = NULL; +EOF + + case $host_os in + mingw*) + cat <<"EOF" + { + char* p; + while ((p = strchr (newargz[0], '\\')) != NULL) + { + *p = '/'; + } + while ((p = strchr (lt_argv_zero, '\\')) != NULL) + { + *p = '/'; + } + } +EOF + ;; + esac + + cat <<"EOF" + XFREE (target_name); + XFREE (actual_cwrapper_path); + XFREE (actual_cwrapper_name); + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ + /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must + be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) + because on Windows, both *_VARNAMEs are PATH but uninstalled + libraries must come first. */ + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); + for (i = 0; i < newargc; i++) + { + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); + } + +EOF + + case $host_os in + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); + rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); + return 127; + } + return rval; +EOF + ;; + *) + cat <<"EOF" + execv (lt_argv_zero, newargz); + return rval; /* =127, but avoids unused variable warning */ +EOF + ;; + esac + + cat <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void *p = (void *) malloc (num); + if (!p) + lt_fatal (__FILE__, __LINE__, "memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), + string) : NULL; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined HAVE_DOS_BASED_FILE_SYSTEM + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char) name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable (const char *path) +{ + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -stdlib=* select c++ std lib with clang + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c <<EOF + int main() { return 0; } +EOF + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i= + ;; + esac + fi + if test -n "$i"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + else + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $i "*) + func_append newdeplibs " $i" + i= + ;; + esac + fi + if test -n "$i"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then + func_append newdeplibs " $i" + else + droppeddeps=yes + echo + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes + echo + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." + fi + ;; + *) + func_append newdeplibs " $i" + ;; + esac + done + fi + ;; + file_magic*) + set dummy $deplibs_check_method; shift + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + if test yes = "$want_nocaseglob"; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..f62bbae --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/common/org.gnome.Vino.gschema.xml b/common/org.gnome.Vino.gschema.xml new file mode 100644 index 0000000..3c9cfe5 --- /dev/null +++ b/common/org.gnome.Vino.gschema.xml @@ -0,0 +1,158 @@ +<schemalist> + <schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'> + <key name='prompt-enabled' type='b'> + <summary>Prompt the user before completing a connection</summary> + <description> + If true, remote users accessing the desktop are not allowed + access until the user on the host machine approves the + connection. Recommended especially when access is not password + protected. + </description> + <default>true</default> + </key> + + <key name='view-only' type='b'> + <summary>Only allow remote users to view the desktop</summary> + <description> + If true, remote users accessing the desktop are only allowed to + view the desktop. Remote users will not be able to use the mouse + or keyboard. + </description> + <default>false</default> + </key> + + <key name='network-interface' type='s'> + <summary>Network interface for listening</summary> + <description> + If not set, the server will listen on all network interfaces. + + Set this if you want to accept connections only from some specific + network interface. For example, eth0, wifi0, lo and so on. + </description> + <default>''</default> + </key> + + <key name='use-alternative-port' type='b'> + <summary>Listen on an alternative port</summary> + <description> + If true, the server will listen on another port, instead of the default + (5900). The port must be specified in the 'alternative-port' key. + </description> + <default>false</default> + </key> + + <key name='alternative-port' type='q'> + <summary>Alternative port number</summary> + <description> + The port which the server will listen to if the 'use-alternative-port' + key is set to true. Valid values are in the range of 5000 to 50000. + </description> + <default>5900</default> + </key> + + <key name='require-encryption' type='b'> + <summary>Require encryption</summary> + <description> + If true, remote users accessing the desktop are required to + support encryption. It is highly recommended that you use a + client which supports encryption unless the intervening network + is trusted. + </description> + <default>true</default> + </key> + + <key name='authentication-methods' type='as'> + <summary>Allowed authentication methods</summary> + <description> + Lists the authentication methods with which remote users may + access the desktop. + + There are two possible authentication methods; "vnc" causes the + remote user to be prompted for a password (the password is + specified by the vnc-password key) before connecting and "none" + which allows any remote user to connect. + </description> + <default>['none']</default> + </key> + + <key name='vnc-password' type='s'> + <summary>Password required for "vnc" authentication</summary> + <description> + The password which the remote user will be prompted for if the + "vnc" authentication method is used. The password specified by + the key is base64 encoded. + + The special value of 'keyring' (which is not valid base64) means + that the password is stored in the GNOME keyring. + </description> + <default>'keyring'</default> + </key> + + <key name='mailto' type='s'> + <summary>E-mail address to which the remote desktop URL should be sent</summary> + <description> + This key specifies the e-mail address to which the remote + desktop URL should be sent if the user clicks on the URL in the + Desktop Sharing preferences dialog. + </description> + <default>''</default> + </key> + + <key name='lock-screen-on-disconnect' type='b'> + <summary>Lock the screen when last user disconnect</summary> + <description> + If true, the screen will be locked after the last remote client + disconnects. + </description> + <default>false</default> + </key> + + <key name='icon-visibility' enum="org.gnome.Vino.VinoIconVisibility"> + <summary>When the status icon should be shown</summary> + <description> + This key controls the behavior of the status icon. There are + three options: "always" - the icon will always be present; "client" - + the icon will only be present when someone is connected (this is the + default behavior); "never" - the icon will not be present. + </description> + <default>'client'</default> + </key> + + <key name='disable-background' type='b'> + <summary>Whether to disable the desktop background when a user is connected</summary> + <description> + When true, disable the desktop background and replace it with a single + block of color when a user successfully connects. + </description> + <default>false</default> + </key> + + <key name='use-upnp' type='b'> + <summary>Whether a UPnP router should be used to forward and open ports</summary> + <description> + If true, request that a UPnP-capable router should forward and open the + port used by Vino. + </description> + <default>false</default> + </key> + + <key name='disable-xdamage' type='b'> + <summary>Whether we should disable the XDamage extension of X.org</summary> + <description> + If true, do not use the XDamage extension of X.org. This extension does + not work properly on some video drivers when using 3D effects. + Disabling it will make Vino work in these environments, with slower + rendering as a side effect. + </description> + <default>false</default> + </key> + + <key name='notify-on-connect' type='b'> + <summary>Notify on connect</summary> + <description> + If true, show a notification when a user connects to the system. + </description> + <default>true</default> + </key> + </schema> +</schemalist> diff --git a/common/vino-settings-enums.h b/common/vino-settings-enums.h new file mode 100644 index 0000000..be5acf5 --- /dev/null +++ b/common/vino-settings-enums.h @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * Copyright (C) 2006 Jonh Wendell <wendell@bani.com.br> + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + * Jonh Wendell <wendell@bani.com.br> + * Ryan Lortie <desrt@desrt.ca> + */ + +typedef enum +{ + VINO_ICON_VISIBILITY_NEVER, + VINO_ICON_VISIBILITY_ALWAYS, + VINO_ICON_VISIBILITY_CLIENT +} VinoIconVisibility; diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..ead6192 --- /dev/null +++ b/config.h.in @@ -0,0 +1,148 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* gettext package */ +#undef GETTEXT_PACKAGE + +/* Define if debugging is enabled */ +#undef GNOME_ENABLE_DEBUG + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <fcntl.h> header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the <ifaddrs.h> header file. */ +#undef HAVE_IFADDRS_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `resolv' library (-lresolv). */ +#undef HAVE_LIBRESOLV + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/time.h> header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define if debugging is disabled */ +#undef NDEBUG + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define if RFC2553 is followed */ +#undef RFC2553 + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to enable IPv6 support */ +#undef VINO_ENABLE_IPV6 + +/* Build with avahi support */ +#undef VINO_HAVE_AVAHI + +/* Build with gcrypt support */ +#undef VINO_HAVE_GCRYPT + +/* Build with gnutls support */ +#undef VINO_HAVE_GNUTLS + +/* Build with jpeg support */ +#undef VINO_HAVE_JPEG + +/* Build with secret support */ +#undef VINO_HAVE_SECRET + +/* Build with telepathy support */ +#undef VINO_HAVE_TELEPATHY_GLIB + +/* Defined if the DAMAGE X extension is present */ +#undef VINO_HAVE_XDAMAGE + +/* Defined if the XKB X extension is present */ +#undef VINO_HAVE_XKB + +/* Defined if the MIT-SHM X extension is present */ +#undef VINO_HAVE_XSHM + +/* Defined if the XTEST X extension is present */ +#undef VINO_HAVE_XTEST + +/* Build with zlib support */ +#undef VINO_HAVE_ZLIB + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif diff --git a/configure b/configure new file mode 100755 index 0000000..910166f --- /dev/null +++ b/configure @@ -0,0 +1,17843 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for Vino 3.22.0. +# +# Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=vino>. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugzilla.gnome.org/enter_bug.cgi?product=vino +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 </dev/null +exec 6>&1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='Vino' +PACKAGE_TARNAME='vino' +PACKAGE_VERSION='3.22.0' +PACKAGE_STRING='Vino 3.22.0' +PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=vino' +PACKAGE_URL='https://wiki.gnome.org/Projects/Vino' + +ac_unique_file="server/vino-fb.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include <stdio.h> +#ifdef HAVE_SYS_TYPES_H +# include <sys/types.h> +#endif +#ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +#endif +#ifdef STDC_HEADERS +# include <stdlib.h> +# include <stddef.h> +#else +# ifdef HAVE_STDLIB_H +# include <stdlib.h> +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include <memory.h> +# endif +# include <string.h> +#endif +#ifdef HAVE_STRINGS_H +# include <strings.h> +#endif +#ifdef HAVE_INTTYPES_H +# include <inttypes.h> +#endif +#ifdef HAVE_STDINT_H +# include <stdint.h> +#endif +#ifdef HAVE_UNISTD_H +# include <unistd.h> +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +GSETTINGS_RULES +GLIB_COMPILE_SCHEMAS +gsettingsschemadir +GSETTINGS_DISABLE_SCHEMAS_COMPILE +EGG_SMCLIENT_LIBS +EGG_SMCLIENT_CFLAGS +VINO_SERVER_LIBS +VINO_SERVER_CFLAGS +INSTALL_USER_UNITS_FALSE +INSTALL_USER_UNITS_TRUE +systemduserunitdir +VINO_HAVE_SELF_IFADDRS_FALSE +VINO_HAVE_SELF_IFADDRS_TRUE +XTEST_LIBS +XSHM_LIBS +XDAMAGE_LIBS +ALL_LINGUAS +INTLTOOL_PERL +GMSGFMT +MSGFMT +MSGMERGE +XGETTEXT +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +intltool__v_merge_options_0 +intltool__v_merge_options_ +INTLTOOL_V_MERGE_OPTIONS +INTLTOOL__v_MERGE_0 +INTLTOOL__v_MERGE_ +INTLTOOL_V_MERGE +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +USE_NLS +GETTEXT_PACKAGE +JPEG_LIBS +ZLIB_LIBS +LIBGCRYPT_LIBS +LIBGCRYPT_CFLAGS +LIBGCRYPT_CONFIG +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF +VINO_HAVE_TELEPATHY_GLIB_FALSE +VINO_HAVE_TELEPATHY_GLIB_TRUE +GLIB_MKENUMS +GLIB_GENMARSHAL +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +WARN_CFLAGS +DISABLE_DEPRECATED +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_dependency_tracking +enable_maintainer_mode +enable_compile_warnings +enable_iso_c +enable_debug +enable_static +enable_shared +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +with_telepathy +with_secret +with_x +with_gnutls +with_gcrypt +with_libgcrypt_prefix +with_avahi +with_zlib +with_jpeg +enable_nls +enable_ipv6 +with_systemduserunitdir +enable_schemas_compile +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +LT_SYS_LIBRARY_PATH +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +XMKMF +VINO_SERVER_CFLAGS +VINO_SERVER_LIBS +EGG_SMCLIENT_CFLAGS +EGG_SMCLIENT_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures Vino 3.22.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/vino] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of Vino 3.22.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-compile-warnings=[no/minimum/yes/maximum/error] + Turn on compiler warnings + --enable-iso-c Try to warn if code is not ISO C + --enable-debug=[yes/info/profile/no] + compile with debugging + --enable-static[=PKGS] build static libraries [default=no] + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-nls do not use Native Language Support + --disable-ipv6 ignore the presence of IPv6 support and disable it + --disable-schemas-compile + Disable regeneration of gschemas.compiled on install + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --without-telepathy ignore the presence of telepathy and disable it + --without-secret ignore the presence of secret and disable it + --with-x use the X Window System + --without-gnutls ignore gnutls support and disable it + --without-gcrypt ignore gcrypt support and disable it + --with-libgcrypt-prefix=PFX + prefix where LIBGCRYPT is installed (optional) + --without-avahi ignore avahi support and disable it + --without-zlib ignore zlib support and disable it + --without-jpeg ignore jpeg support and disable it + --with-systemduserunitdir=DIR + Directory for systemd user service files + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a + nonstandard directory <lib dir> + LIBS libraries to pass to the linker, e.g. -l<library> + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if + you have headers in a nonstandard directory <include dir> + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + XMKMF Path to xmkmf, Makefile generator for X Window System + VINO_SERVER_CFLAGS + C compiler flags for VINO_SERVER, overriding pkg-config + VINO_SERVER_LIBS + linker flags for VINO_SERVER, overriding pkg-config + EGG_SMCLIENT_CFLAGS + C compiler flags for EGG_SMCLIENT, overriding pkg-config + EGG_SMCLIENT_LIBS + linker flags for EGG_SMCLIENT, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=vino>. +Vino home page: <https://wiki.gnome.org/Projects/Vino>. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +Vino configure 3.22.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case <limits.h> declares $2. + For example, HP-UX 11i <limits.h> declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + <limits.h> exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## -------------------------------------------------------------------- ## +## Report this to https://bugzilla.gnome.org/enter_bug.cgi?product=vino ## +## -------------------------------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by Vino $as_me 3.22.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +ac_config_headers="$ac_config_headers config.h" + + + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='vino' + VERSION='3.22.0' + + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> +# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: <http://www.gnu.org/software/coreutils/>. + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdio.h> +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdarg.h> +#include <stdio.h> +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + + +# GNOME common + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + + + + DISABLE_DEPRECATED="" + if test $USE_MAINTAINER_MODE = yes; then + DOMAINS="GCONF BONOBO BONOBO_UI GNOME LIBGLADE GNOME_VFS WNCK LIBSOUP" + for DOMAIN in $DOMAINS; do + DISABLE_DEPRECATED="$DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_DEPRECATED -D${DOMAIN}_DISABLE_SINGLE_INCLUDES" + done + fi + + + + + + + # Check whether --enable-compile-warnings was given. +if test "${enable_compile_warnings+set}" = set; then : + enableval=$enable_compile_warnings; +else + enable_compile_warnings="maximum" +fi + + + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + base_warn_flags=" \ + -Wall \ + -Wstrict-prototypes \ + -Wnested-externs \ + " + + base_error_flags=" \ + -Werror=missing-prototypes \ + -Werror=implicit-function-declaration \ + -Werror=pointer-arith \ + -Werror=init-self \ + -Werror=format-security \ + -Werror=format=2 \ + -Werror=missing-include-dirs \ + -Werror=return-type \ + " + + additional_flags="" + + case "$enable_compile_warnings" in + no) + warning_flags="-w" + ;; + minimum) + warning_flags="-Wall" + ;; + yes|maximum|error) + warning_flags="$base_warn_flags $base_error_flags $additional_flags" + ;; + *) + as_fn_error $? "Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" "$LINENO" 5 + ;; + esac + + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + + for option in $warning_flags; do + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands $option" >&5 +$as_echo_n "checking whether gcc understands $option... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + has_option=yes +else + has_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5 +$as_echo "$has_option" >&6; } + if test $has_option = yes; then + tested_warning_flags="$tested_warning_flags $option" + fi + unset has_option + unset save_CFLAGS + done + unset option + CFLAGS="$realsave_CFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what warning flags to pass to the C compiler" >&5 +$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tested_warning_flags" >&5 +$as_echo "$tested_warning_flags" >&6; } + + # Check whether --enable-iso-c was given. +if test "${enable_iso_c+set}" = set; then : + enableval=$enable_iso_c; +else + enable_iso_c=no +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what language compliance flags to pass to the C compiler" >&5 +$as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; } + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *\ \ -ansi\ \ *) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *\ \ -pedantic\ \ *) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $complCFLAGS" >&5 +$as_echo "$complCFLAGS" >&6; } + + WARN_CFLAGS="$tested_warning_flags $complCFLAGS" + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging" >&5 +$as_echo_n "checking whether to enable debugging... " >&6; } + + ax_enable_debug_default=no + ax_enable_debug_is_release=$ax_is_release + + # If this is a release, override the default. + if test "$ax_enable_debug_is_release" = "yes"; then : + ax_enable_debug_default="no" +fi + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +else + enable_debug=$ax_enable_debug_default +fi + + + # empty mean debug yes + if test "x$enable_debug" = "x"; then : + enable_debug="yes" +fi + + # case of debug + case $enable_debug in #( + yes) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ;; #( + info) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: info" >&5 +$as_echo "info" >&6; } + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ;; #( + profile) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5 +$as_echo "profile" >&6; } + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ;; #( + *) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x${CFLAGS+set}" != "xset"; then : + CFLAGS="" +fi + if test "x${CXXFLAGS+set}" != "xset"; then : + CXXFLAGS="" +fi + if test "x${FFLAGS+set}" != "xset"; then : + FFLAGS="" +fi + if test "x${FCFLAGS+set}" != "xset"; then : + FCFLAGS="" +fi + if test "x${OBJCFLAGS+set}" != "xset"; then : + OBJCFLAGS="" +fi + ;; +esac + + if test "x$enable_debug" = "xyes"; then : + +$as_echo "#define GNOME_ENABLE_DEBUG /**/" >>confdefs.h + +else + +$as_echo "#define NDEBUG /**/" >>confdefs.h + +fi + ax_enable_debug=$enable_debug + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test no != "$with_gnu_ld" && break + ;; + *) + test yes != "$with_gnu_ld" && break + ;; + esac + fi + done + IFS=$lt_save_ifs +else + lt_cv_path_LD=$LD # Let the user override the test with a path. +fi +fi + +LD=$lt_cv_path_LD +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> +#include <float.h> + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <string.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ctype.h> +#include <stdlib.h> +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=no +fi + + + + + + + + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-genmarshal script" >&5 +$as_echo_n "checking for glib-genmarshal script... " >&6; } +GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` +if test "x$GLIB_GENMARSHAL" = "x"; then : + as_fn_error $? "glib-genmarshal not listed in glib-2.0 pkg-config file" "$LINENO" 5 +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_GENMARSHAL" >&5 +$as_echo "$GLIB_GENMARSHAL" >&6; } +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-mkenums script" >&5 +$as_echo_n "checking for glib-mkenums script... " >&6; } +GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` +if test "x$GLIB_MKENUMS" = "x"; then : + as_fn_error $? "glib-mkenums not listed in glib-2.0 pkg-config file" "$LINENO" 5 +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_MKENUMS" >&5 +$as_echo "$GLIB_MKENUMS" >&6; } +fi + +# Check for telepathy-glib +TELEPATHY_GLIB_DEPS="dbus-glib-1 telepathy-glib >= 0.18.0" + + +# Check whether --with-telepathy was given. +if test "${with_telepathy+set}" = set; then : + withval=$with_telepathy; +fi + + +if test "x$with_telepathy" != "xno"; then : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$TELEPATHY_GLIB_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$TELEPATHY_GLIB_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_telepathy=yes +else + have_telepathy=no +fi +else + have_telepathy=no +fi + +if test "x$have_telepathy" = "xyes"; then : + +$as_echo "#define VINO_HAVE_TELEPATHY_GLIB /**/" >>confdefs.h + +else + TELEPATHY_GLIB_DEPS="" + if test "x$with_telepathy" = "xyes"; then : + as_fn_error $? "telepathy support requested but not found" "$LINENO" 5 +fi +fi + + if test "x$have_telepathy" = "xyes"; then + VINO_HAVE_TELEPATHY_GLIB_TRUE= + VINO_HAVE_TELEPATHY_GLIB_FALSE='#' +else + VINO_HAVE_TELEPATHY_GLIB_TRUE='#' + VINO_HAVE_TELEPATHY_GLIB_FALSE= +fi + + +# Check for secret +SECRET_DEPS="libsecret-1" + + +# Check whether --with-secret was given. +if test "${with_secret+set}" = set; then : + withval=$with_secret; +fi + + +if test "x$with_secret" != "xno"; then : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$SECRET_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$SECRET_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_secret=yes +else + have_secret=no +fi +else + have_secret=no +fi + +if test "x$have_secret" != "xno"; then : + +$as_echo "#define VINO_HAVE_SECRET /**/" >>confdefs.h + +else + SECRET_DEPS="" + if test "x$with_secret" = "xyes"; then : + as_fn_error $? "secret support requested but not found" "$LINENO" 5 +fi +fi + +# Check for X11 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <X11/Xlib.h> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <X11/Xlib.h> +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + +if test "x$no_x" = "xyes"; then : + as_fn_error $? "X development libraries not found" "$LINENO" 5 +else + X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + +fi + +# Check for gnutls +GNUTLS_DEPS="gnutls >= 2.2.0" + + +# Check whether --with-gnutls was given. +if test "${with_gnutls+set}" = set; then : + withval=$with_gnutls; +fi + + +if test "x$with_gnutls" != "xno"; then : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$GNUTLS_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$GNUTLS_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_gnutls=yes +else + have_gnutls=no +fi +else + have_gnutls=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gnutls was not found. You may want to get it from ftp://ftp.gnutls.org/pub/gnutls/" >&5 +$as_echo "$as_me: WARNING: gnutls was not found. You may want to get it from ftp://ftp.gnutls.org/pub/gnutls/" >&2;} +fi + +if test "x$have_gnutls" = "xyes"; then : + +$as_echo "#define VINO_HAVE_GNUTLS /**/" >>confdefs.h + +else + GNUTLS_DEPS="" + if test "x$with_gnutls" = "xyes"; then : + as_fn_error $? "gnutls support was requested but not found" "$LINENO" 5 +fi +fi + +# Check for gcrypt +GCRYPT_VERSION=1.1.90 + + +# Check whether --with-gcrypt was given. +if test "${with_gcrypt+set}" = set; then : + withval=$with_gcrypt; +fi + + +if test "x$with_gcrypt" != "xno"; then : + + +# Check whether --with-libgcrypt-prefix was given. +if test "${with_libgcrypt_prefix+set}" = set; then : + withval=$with_libgcrypt_prefix; libgcrypt_config_prefix="$withval" +else + libgcrypt_config_prefix="" +fi + + if test x$libgcrypt_config_prefix != x ; then + if test x${LIBGCRYPT_CONFIG+set} != xset ; then + LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config + fi + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}libgcrypt-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}libgcrypt-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_LIBGCRYPT_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $LIBGCRYPT_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_LIBGCRYPT_CONFIG="$LIBGCRYPT_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG +if test -n "$LIBGCRYPT_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGCRYPT_CONFIG" >&5 +$as_echo "$LIBGCRYPT_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_LIBGCRYPT_CONFIG"; then + ac_pt_LIBGCRYPT_CONFIG=$LIBGCRYPT_CONFIG + # Extract the first word of "libgcrypt-config", so it can be a program name with args. +set dummy libgcrypt-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_LIBGCRYPT_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_LIBGCRYPT_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_LIBGCRYPT_CONFIG="$ac_pt_LIBGCRYPT_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_LIBGCRYPT_CONFIG=$ac_cv_path_ac_pt_LIBGCRYPT_CONFIG +if test -n "$ac_pt_LIBGCRYPT_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LIBGCRYPT_CONFIG" >&5 +$as_echo "$ac_pt_LIBGCRYPT_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_LIBGCRYPT_CONFIG" = x; then + LIBGCRYPT_CONFIG="no" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIBGCRYPT_CONFIG=$ac_pt_LIBGCRYPT_CONFIG + fi +else + LIBGCRYPT_CONFIG="$ac_cv_path_LIBGCRYPT_CONFIG" +fi + + tmp=$GCRYPT_VERSION + if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then + req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` + min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` + else + req_libgcrypt_api=0 + min_libgcrypt_version="$tmp" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBGCRYPT - version >= $min_libgcrypt_version" >&5 +$as_echo_n "checking for LIBGCRYPT - version >= $min_libgcrypt_version... " >&6; } + ok=no + if test "$LIBGCRYPT_CONFIG" != "no" ; then + req_major=`echo $min_libgcrypt_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'` + req_minor=`echo $min_libgcrypt_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'` + req_micro=`echo $min_libgcrypt_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'` + libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` + major=`echo $libgcrypt_config_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'` + minor=`echo $libgcrypt_config_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'` + micro=`echo $libgcrypt_config_version | \ + sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'` + if test "$major" -gt "$req_major"; then + ok=yes + else + if test "$major" -eq "$req_major"; then + if test "$minor" -gt "$req_minor"; then + ok=yes + else + if test "$minor" -eq "$req_minor"; then + if test "$micro" -ge "$req_micro"; then + ok=yes + fi + fi + fi + fi + fi + fi + if test $ok = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($libgcrypt_config_version)" >&5 +$as_echo "yes ($libgcrypt_config_version)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + if test $ok = yes; then + # If we have a recent libgcrypt, we should also check that the + # API is compatible + if test "$req_libgcrypt_api" -gt 0 ; then + tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` + if test "$tmp" -gt 0 ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGCRYPT API version" >&5 +$as_echo_n "checking LIBGCRYPT API version... " >&6; } + if test "$req_libgcrypt_api" -eq "$tmp" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5 +$as_echo "okay" >&6; } + else + ok=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: does not match. want=$req_libgcrypt_api got=$tmp" >&5 +$as_echo "does not match. want=$req_libgcrypt_api got=$tmp" >&6; } + fi + fi + fi + fi + if test $ok = yes; then + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` + have_gcrypt=yes + libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` + if test x"$libgcrypt_config_host" != xnone ; then + if test x"$libgcrypt_config_host" != x"$host" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: +*** +*** The config script $LIBGCRYPT_CONFIG was +*** built for $libgcrypt_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgcrypt-prefix +*** to specify a matching config script. +***" >&5 +$as_echo "$as_me: WARNING: +*** +*** The config script $LIBGCRYPT_CONFIG was +*** built for $libgcrypt_config_host and thus may not match the +*** used host $host. +*** You may want to use the configure option --with-libgcrypt-prefix +*** to specify a matching config script. +***" >&2;} + fi + fi + else + LIBGCRYPT_CFLAGS="" + LIBGCRYPT_LIBS="" + have_gcrypt=no + fi + + + +else + have_gcrypt=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/pub/gcrypt/alpha/libgcrypt/" >&5 +$as_echo "$as_me: WARNING: gcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/pub/gcrypt/alpha/libgcrypt/" >&2;} +fi + +if test "x$have_gcrypt" = "xyes"; then : + +$as_echo "#define VINO_HAVE_GCRYPT /**/" >>confdefs.h + +else + if test "x$with_gcrypt" = "xyes"; then : + as_fn_error $? "gcrypt support requested but not found" "$LINENO" 5 +fi +fi + +# Check for Avahi +AVAHI_DEPS="avahi-client >= 0.6 avahi-glib >= 0.6" + + +# Check whether --with-avahi was given. +if test "${with_avahi+set}" = set; then : + withval=$with_avahi; +fi + + +if test "x$with_avahi" != "xno"; then : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$AVAHI_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$AVAHI_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_avahi=yes +else + have_avahi=no +fi +else + have_avahi=no +fi + +if test "x$have_avahi" = "xyes"; then : + +$as_echo "#define VINO_HAVE_AVAHI /**/" >>confdefs.h + +else + AVAHI_DEPS="" + if test "x$with_avahi" = "xyes"; then : + as_fn_error $? "avahi support requested but not found" "$LINENO" 5 +fi +fi + +# Check for zlib +# TODO: Use pkg-config file installed by newer zlib releases + +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; +fi + + +if test "x$with_zlib" != "xno"; then : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for deflate in -lz" >&5 +$as_echo_n "checking for deflate in -lz... " >&6; } +if ${ac_cv_lib_z_deflate+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char deflate (); +int +main () +{ +return deflate (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_deflate=yes +else + ac_cv_lib_z_deflate=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_deflate" >&5 +$as_echo "$ac_cv_lib_z_deflate" >&6; } +if test "x$ac_cv_lib_z_deflate" = xyes; then : + have_zlib=yes +else + have_zlib=no +fi + +else + have_zlib=no +fi + + +else + have_zlib=no +fi + +if test "x$have_zlib" = "xyes"; then : + +$as_echo "#define VINO_HAVE_ZLIB /**/" >>confdefs.h + + ZLIB_LIBS=-lz + +else + if test "x$with_zlib" = "xyes"; then : + as_fn_error $? "zlib support requested but not found" "$LINENO" 5 +fi +fi + +# Check for jpeg, with deflate support + +# Check whether --with-jpeg was given. +if test "${with_jpeg+set}" = set; then : + withval=$with_jpeg; +fi + + +if test "x$with_jpeg" != "xno"; then : + ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" +if test "x$ac_cv_header_jpeglib_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_CreateCompress in -ljpeg" >&5 +$as_echo_n "checking for jpeg_CreateCompress in -ljpeg... " >&6; } +if ${ac_cv_lib_jpeg_jpeg_CreateCompress+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljpeg $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jpeg_CreateCompress (); +int +main () +{ +return jpeg_CreateCompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_jpeg_jpeg_CreateCompress=yes +else + ac_cv_lib_jpeg_jpeg_CreateCompress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_CreateCompress" >&5 +$as_echo "$ac_cv_lib_jpeg_jpeg_CreateCompress" >&6; } +if test "x$ac_cv_lib_jpeg_jpeg_CreateCompress" = xyes; then : + have_jpeg=yes +else + have_jpeg=no +fi + +else + have_jpeg=no +fi + + +else + have_jpeg=no +fi + +if test "x$have_jpeg" = "xyes"; then : + +$as_echo "#define VINO_HAVE_JPEG /**/" >>confdefs.h + + JPEG_LIBS=-ljpeg + +else + if test "x$with_jpeg" = "xyes"; then : + as_fn_error $? "jpeg support requested but not found" "$LINENO" 5 +fi +fi + +# Internationalization +GETTEXT_PACKAGE=$PACKAGE_TARNAME + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + +case "$am__api_version" in + 1.01234) + as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.50.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "0.50.0"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.50.0" >&5 +$as_echo_n "checking for intltool >= 0.50.0... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + as_fn_error $? "Your intltool is too old. You need intltool 0.50.0 or later." "$LINENO" 5 +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi + + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " $@;' + + + + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' + + + + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 +fi + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INTLTOOL_PERL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL +if test -n "$INTLTOOL_PERL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_PERL"; then + as_fn_error $? "perl not found" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } +fi +if test "x" != "xno-xml"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + else + as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile + + + + + + +# Check for XDAMAGE extension +ac_fn_c_check_header_compile "$LINENO" "X11/extensions/Xdamage.h" "ac_cv_header_X11_extensions_Xdamage_h" "#include <X11/Xlib.h> +" +if test "x$ac_cv_header_X11_extensions_Xdamage_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XDamageQueryExtension in -lXdamage" >&5 +$as_echo_n "checking for XDamageQueryExtension in -lXdamage... " >&6; } +if ${ac_cv_lib_Xdamage_XDamageQueryExtension+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXdamage $X_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XDamageQueryExtension (); +int +main () +{ +return XDamageQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xdamage_XDamageQueryExtension=yes +else + ac_cv_lib_Xdamage_XDamageQueryExtension=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xdamage_XDamageQueryExtension" >&5 +$as_echo "$ac_cv_lib_Xdamage_XDamageQueryExtension" >&6; } +if test "x$ac_cv_lib_Xdamage_XDamageQueryExtension" = xyes; then : + +$as_echo "#define VINO_HAVE_XDAMAGE /**/" >>confdefs.h + + XDAMAGE_LIBS="-lXdamage -lXfixes" + +fi + +fi + + + +# Check for MIT-SHM extension +ac_fn_c_check_header_compile "$LINENO" "X11/extensions/XShm.h" "ac_cv_header_X11_extensions_XShm_h" "#include <X11/Xlib.h> +" +if test "x$ac_cv_header_X11_extensions_XShm_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShmQueryExtension in -lXext" >&5 +$as_echo_n "checking for XShmQueryExtension in -lXext... " >&6; } +if ${ac_cv_lib_Xext_XShmQueryExtension+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXext $X_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XShmQueryExtension (); +int +main () +{ +return XShmQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xext_XShmQueryExtension=yes +else + ac_cv_lib_Xext_XShmQueryExtension=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShmQueryExtension" >&5 +$as_echo "$ac_cv_lib_Xext_XShmQueryExtension" >&6; } +if test "x$ac_cv_lib_Xext_XShmQueryExtension" = xyes; then : + +$as_echo "#define VINO_HAVE_XSHM /**/" >>confdefs.h + + XSHM_LIBS=-lXext + +fi + +fi + + + +# Check for XTest extension +ac_fn_c_check_header_mongrel "$LINENO" "X11/extensions/XTest.h" "ac_cv_header_X11_extensions_XTest_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_extensions_XTest_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XTestQueryExtension in -lXtst" >&5 +$as_echo_n "checking for XTestQueryExtension in -lXtst... " >&6; } +if ${ac_cv_lib_Xtst_XTestQueryExtension+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXtst $X_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XTestQueryExtension (); +int +main () +{ +return XTestQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_Xtst_XTestQueryExtension=yes +else + ac_cv_lib_Xtst_XTestQueryExtension=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xtst_XTestQueryExtension" >&5 +$as_echo "$ac_cv_lib_Xtst_XTestQueryExtension" >&6; } +if test "x$ac_cv_lib_Xtst_XTestQueryExtension" = xyes; then : + +$as_echo "#define VINO_HAVE_XTEST /**/" >>confdefs.h + + XTEST_LIBS=-lXtst + +fi + +fi + + + +# Check for XKB extension +ac_fn_c_check_header_mongrel "$LINENO" "X11/XKBlib.h" "ac_cv_header_X11_XKBlib_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_XKBlib_h" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XkbQueryExtension in -lX11" >&5 +$as_echo_n "checking for XkbQueryExtension in -lX11... " >&6; } +if ${ac_cv_lib_X11_XkbQueryExtension+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lX11 $X_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XkbQueryExtension (); +int +main () +{ +return XkbQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_X11_XkbQueryExtension=yes +else + ac_cv_lib_X11_XkbQueryExtension=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_X11_XkbQueryExtension" >&5 +$as_echo "$ac_cv_lib_X11_XkbQueryExtension" >&6; } +if test "x$ac_cv_lib_X11_XkbQueryExtension" = xyes; then : + +$as_echo "#define VINO_HAVE_XKB /**/" >>confdefs.h + +fi + +fi + + + +for ac_header in netinet/in.h sys/time.h fcntl.h unistd.h sys/socket.h ifaddrs.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +# Check for getifaddrs + if test "x$ac_cv_header_ifaddrs_h" != "xyes"; then + VINO_HAVE_SELF_IFADDRS_TRUE= + VINO_HAVE_SELF_IFADDRS_FALSE='#' +else + VINO_HAVE_SELF_IFADDRS_TRUE='#' + VINO_HAVE_SELF_IFADDRS_FALSE= +fi + + +# RFC2553 introduce sockaddr_storage as ifa_addr member in ifaddrs structure +# Not all distros follow this. +if test "x$ac_cv_header_ifaddrs_h" = "xyes"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <net/if.h> + #include <ifaddrs.h> + +int +main () +{ + + struct ifaddrs *myaddrs; + getifaddrs (&myaddrs); + if (myaddrs->ifa_addr->ss_family == AF_INET) { + } + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_sockaddr_storage=yes +else + have_sockaddr_storage=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + if test "x$have_sockaddr_storage" = "xyes"; then : + +$as_echo "#define RFC2553 /**/" >>confdefs.h + +fi +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> + #include <sys/param.h> + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <limits.h> + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for herror in -lresolv" >&5 +$as_echo_n "checking for herror in -lresolv... " >&6; } +if ${ac_cv_lib_resolv_herror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char herror (); +int +main () +{ +return herror (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_resolv_herror=yes +else + ac_cv_lib_resolv_herror=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_herror" >&5 +$as_echo "$ac_cv_lib_resolv_herror" >&6; } +if test "x$ac_cv_lib_resolv_herror" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRESOLV 1 +_ACEOF + + LIBS="-lresolv $LIBS" + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if ${ac_cv_search_strerror+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_strerror=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_strerror+:} false; then : + break +fi +done +if ${ac_cv_search_strerror+:} false; then : + +else + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +for ac_func in gettimeofday +do : + ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" +if test "x$ac_cv_func_gettimeofday" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETTIMEOFDAY 1 +_ACEOF + +fi +done + + +# Check for IPv6 support +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking checking for IPv6 support" >&5 +$as_echo_n "checking checking for IPv6 support... " >&6; } +# Check whether --enable-ipv6 was given. +if test "${enable_ipv6+set}" = set; then : + enableval=$enable_ipv6; +else + enable_ipv6=yes +fi + + +if test "x$enable_ipv6" != "xno"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <sys/types.h> + #include <sys/socket.h> + +int +main () +{ + + socket(AF_INET6, SOCK_STREAM, 0); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + have_ipv6=yes +else + have_ipv6=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +if test "x$have_ipv6" = "xyes"; then : + +$as_echo "#define VINO_ENABLE_IPV6 /**/" >>confdefs.h + +else + if test "x$enable_ipv6" = "xyes"; then : + as_fn_error $? "IPv6 support requested but not found" "$LINENO" 5 +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipv6" >&5 +$as_echo "$have_ipv6" >&6; } + + +# Check whether --with-systemduserunitdir was given. +if test "${with_systemduserunitdir+set}" = set; then : + withval=$with_systemduserunitdir; +else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"systemd\""; } >&5 + ($PKG_CONFIG --exists --print-errors "systemd") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd) +else + with_systemduserunitdir='${libdir}/systemd/user' +fi +fi + +if test x$with_systemduserunitdir != xno; then : + systemduserunitdir=$with_systemduserunitdir + +fi + if test -n "$with_systemduserunitdir" -a "x$with_systemduserunitdir" != xno; then + INSTALL_USER_UNITS_TRUE= + INSTALL_USER_UNITS_FALSE='#' +else + INSTALL_USER_UNITS_TRUE='#' + INSTALL_USER_UNITS_FALSE= +fi + + +# GNOME libraries +GTK_VERSION=3.0.0 +GLIB_VERSION=2.32.0 +GIO_VERSION=2.26 + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VINO_SERVER" >&5 +$as_echo_n "checking for VINO_SERVER... " >&6; } + +if test -n "$VINO_SERVER_CFLAGS"; then + pkg_cv_VINO_SERVER_CFLAGS="$VINO_SERVER_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= \$GTK_VERSION \$TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 \$SECRET_DEPS \$GNUTLS_DEPS \$AVAHI_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VINO_SERVER_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$VINO_SERVER_LIBS"; then + pkg_cv_VINO_SERVER_LIBS="$VINO_SERVER_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \$GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= \$GTK_VERSION \$TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 \$SECRET_DEPS \$GNUTLS_DEPS \$AVAHI_DEPS\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VINO_SERVER_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + VINO_SERVER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS" 2>&1` + else + VINO_SERVER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$VINO_SERVER_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS) were not met: + +$VINO_SERVER_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables VINO_SERVER_CFLAGS +and VINO_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables VINO_SERVER_CFLAGS +and VINO_SERVER_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + VINO_SERVER_CFLAGS=$pkg_cv_VINO_SERVER_CFLAGS + VINO_SERVER_LIBS=$pkg_cv_VINO_SERVER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +# EGG stuff + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGG_SMCLIENT" >&5 +$as_echo_n "checking for EGG_SMCLIENT... " >&6; } + +if test -n "$EGG_SMCLIENT_CFLAGS"; then + pkg_cv_EGG_SMCLIENT_CFLAGS="$EGG_SMCLIENT_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 ice sm\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 ice sm") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_EGG_SMCLIENT_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 ice sm" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$EGG_SMCLIENT_LIBS"; then + pkg_cv_EGG_SMCLIENT_LIBS="$EGG_SMCLIENT_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 ice sm\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-3.0 ice sm") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_EGG_SMCLIENT_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 ice sm" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + EGG_SMCLIENT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 ice sm" 2>&1` + else + EGG_SMCLIENT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 ice sm" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$EGG_SMCLIENT_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (gtk+-3.0 ice sm) were not met: + +$EGG_SMCLIENT_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables EGG_SMCLIENT_CFLAGS +and EGG_SMCLIENT_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables EGG_SMCLIENT_CFLAGS +and EGG_SMCLIENT_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + EGG_SMCLIENT_CFLAGS=$pkg_cv_EGG_SMCLIENT_CFLAGS + EGG_SMCLIENT_LIBS=$pkg_cv_EGG_SMCLIENT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + + + + # Check whether --enable-schemas-compile was given. +if test "${enable_schemas_compile+set}" = set; then : + enableval=$enable_schemas_compile; case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; + esac +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + gsettingsschemadir=${datadir}/glib-2.0/schemas + + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + # Extract the first word of "glib-compile-schemas", so it can be a program name with args. +set dummy glib-compile-schemas; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_SCHEMAS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS +if test -n "$GLIB_COMPILE_SCHEMAS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5 +$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5 + else + : + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p $(@D) && touch $@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" $^ > $@.tmp && mv $@.tmp $@ +endif +' + + + + + + + +ac_config_files="$ac_config_files Makefile po/Makefile.in" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${VINO_HAVE_TELEPATHY_GLIB_TRUE}" && test -z "${VINO_HAVE_TELEPATHY_GLIB_FALSE}"; then + as_fn_error $? "conditional \"VINO_HAVE_TELEPATHY_GLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + ac_config_commands="$ac_config_commands po/stamp-it" + + +if test -z "${VINO_HAVE_SELF_IFADDRS_TRUE}" && test -z "${VINO_HAVE_SELF_IFADDRS_FALSE}"; then + as_fn_error $? "conditional \"VINO_HAVE_SELF_IFADDRS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${INSTALL_USER_UNITS_TRUE}" && test -z "${INSTALL_USER_UNITS_FALSE}"; then + as_fn_error $? "conditional \"INSTALL_USER_UNITS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by Vino $as_me 3.22.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=vino>. +Vino home page: <https://wiki.gnome.org/Projects/Vino>." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +Vino config.status 3.22.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' <conf$$subs.awk | sed ' +/^[^""]/{ + N + s/\n// +} +' >>$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' <confdefs.h | sed ' +s/'"$ac_delim"'/"\\\ +"/g' >>$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "po/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 + fi + rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" + >"po/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/POTFILES + } + ' "po/Makefile.in" >"po/Makefile" + rm -f "po/Makefile.tmp" + mv "po/stamp-it.tmp" "po/stamp-it" + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..dcdc0fa --- /dev/null +++ b/configure.ac @@ -0,0 +1,297 @@ +AC_PREREQ([2.64]) +AC_INIT([Vino], [3.22.0], [https://bugzilla.gnome.org/enter_bug.cgi?product=vino], [vino], [https://wiki.gnome.org/Projects/Vino]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_SRCDIR([server/vino-fb.c]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) + +AM_INIT_AUTOMAKE([1.11.1 -Wall check-news dist-xz no-define no-dist-gzip nostdinc subdir-objects]) +AM_SILENT_RULES([yes]) + +AC_PROG_CC +AM_PROG_CC_C_O + +# GNOME common +AM_MAINTAINER_MODE([enable]) +GNOME_MAINTAINER_MODE_DEFINES +GNOME_COMPILE_WARNINGS([maximum]) +GNOME_DEBUG_CHECK + +LT_PREREQ([2.2.6]) +LT_INIT([disable-static]) + +PKG_PROG_PKG_CONFIG([0.16]) + +AC_PROG_SED + +AC_MSG_CHECKING([for glib-genmarshal script]) +GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` +AS_IF([test "x$GLIB_GENMARSHAL" = "x"], + [AC_MSG_ERROR([glib-genmarshal not listed in glib-2.0 pkg-config file])], + [AC_SUBST([GLIB_GENMARSHAL]) + AC_MSG_RESULT([$GLIB_GENMARSHAL])]) + +AC_MSG_CHECKING([for glib-mkenums script]) +GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` +AS_IF([test "x$GLIB_MKENUMS" = "x"], + [AC_MSG_ERROR([glib-mkenums not listed in glib-2.0 pkg-config file])], + [AC_SUBST([GLIB_MKENUMS]) + AC_MSG_RESULT([$GLIB_MKENUMS])]) + +# Check for telepathy-glib +TELEPATHY_GLIB_DEPS="dbus-glib-1 telepathy-glib >= 0.18.0" + +AC_ARG_WITH([telepathy], + [AS_HELP_STRING([--without-telepathy], + [ignore the presence of telepathy and disable it])]) + +AS_IF([test "x$with_telepathy" != "xno"], + [PKG_CHECK_EXISTS([$TELEPATHY_GLIB_DEPS], + [have_telepathy=yes], + [have_telepathy=no])], + [have_telepathy=no]) + +AS_IF([test "x$have_telepathy" = "xyes"], + [AC_DEFINE([VINO_HAVE_TELEPATHY_GLIB], [], [Build with telepathy support])], + [TELEPATHY_GLIB_DEPS="" + AS_IF([test "x$with_telepathy" = "xyes"], + [AC_MSG_ERROR([telepathy support requested but not found])])]) + +AM_CONDITIONAL([VINO_HAVE_TELEPATHY_GLIB], [test "x$have_telepathy" = "xyes"]) + +# Check for secret +SECRET_DEPS="libsecret-1" + +AC_ARG_WITH([secret], + [AS_HELP_STRING([--without-secret], + [ignore the presence of secret and disable it])]) + +AS_IF([test "x$with_secret" != "xno"], + [PKG_CHECK_EXISTS([$SECRET_DEPS], + [have_secret=yes], + [have_secret=no])], + [have_secret=no]) + +AS_IF([test "x$have_secret" != "xno"], + [AC_DEFINE([VINO_HAVE_SECRET], [], [Build with secret support])], + [SECRET_DEPS="" + AS_IF([test "x$with_secret" = "xyes"], + [AC_MSG_ERROR([secret support requested but not found])])]) + +# Check for X11 +AC_PATH_XTRA + +AS_IF([test "x$no_x" = "xyes"], + [AC_MSG_ERROR([X development libraries not found])], + [AC_SUBST([X_LIBS], ["$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"])]) + +# Check for gnutls +GNUTLS_DEPS="gnutls >= 2.2.0" + +AC_ARG_WITH([gnutls], + [AS_HELP_STRING([--without-gnutls], + [ignore gnutls support and disable it])]) + +AS_IF([test "x$with_gnutls" != "xno"], + [PKG_CHECK_EXISTS([$GNUTLS_DEPS], + [have_gnutls=yes], + [have_gnutls=no])], + [have_gnutls=no + AC_MSG_WARN([gnutls was not found. You may want to get it from ftp://ftp.gnutls.org/pub/gnutls/])]) + +AS_IF([test "x$have_gnutls" = "xyes"], + [AC_DEFINE([VINO_HAVE_GNUTLS], [], [Build with gnutls support])], + [GNUTLS_DEPS="" + AS_IF([test "x$with_gnutls" = "xyes"], + [AC_MSG_ERROR([gnutls support was requested but not found])])]) + +# Check for gcrypt +GCRYPT_VERSION=1.1.90 + +AC_ARG_WITH([gcrypt], + [AS_HELP_STRING([--without-gcrypt], + [ignore gcrypt support and disable it])]) + +AS_IF([test "x$with_gcrypt" != "xno"], + [AM_PATH_LIBGCRYPT([$GCRYPT_VERSION], + [have_gcrypt=yes], + [have_gcrypt=no])], + [have_gcrypt=no + AC_MSG_WARN([gcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/pub/gcrypt/alpha/libgcrypt/])]) + +AS_IF([test "x$have_gcrypt" = "xyes"], + [AC_DEFINE([VINO_HAVE_GCRYPT], [], [Build with gcrypt support])], + [AS_IF([test "x$with_gcrypt" = "xyes"], + [AC_MSG_ERROR([gcrypt support requested but not found])])]) + +# Check for Avahi +AVAHI_DEPS="avahi-client >= 0.6 avahi-glib >= 0.6" + +AC_ARG_WITH([avahi], + [AS_HELP_STRING([--without-avahi], + [ignore avahi support and disable it])]) + +AS_IF([test "x$with_avahi" != "xno"], + [PKG_CHECK_EXISTS([$AVAHI_DEPS], + [have_avahi=yes], + [have_avahi=no])], + [have_avahi=no]) + +AS_IF([test "x$have_avahi" = "xyes"], + [AC_DEFINE([VINO_HAVE_AVAHI], [], [Build with avahi support])], + [AVAHI_DEPS="" + AS_IF([test "x$with_avahi" = "xyes"], + [AC_MSG_ERROR([avahi support requested but not found])])]) + +# Check for zlib +# TODO: Use pkg-config file installed by newer zlib releases +AC_ARG_WITH([zlib], + [AS_HELP_STRING([--without-zlib], + [ignore zlib support and disable it])]) + +AS_IF([test "x$with_zlib" != "xno"], + [AC_CHECK_HEADER([zlib.h], + [AC_CHECK_LIB([z], [deflate], [have_zlib=yes], [have_zlib=no])], + [have_zlib=no])], + [have_zlib=no]) + +AS_IF([test "x$have_zlib" = "xyes"], + [AC_DEFINE([VINO_HAVE_ZLIB], [], [Build with zlib support]) + AC_SUBST([ZLIB_LIBS], [-lz])], + [AS_IF([test "x$with_zlib" = "xyes"], + [AC_MSG_ERROR([zlib support requested but not found])])]) + +# Check for jpeg, with deflate support +AC_ARG_WITH([jpeg], + [AS_HELP_STRING([--without-jpeg], + [ignore jpeg support and disable it])]) + +AS_IF([test "x$with_jpeg" != "xno"], + [AC_CHECK_HEADER([jpeglib.h], + [AC_CHECK_LIB([jpeg], [jpeg_CreateCompress], [have_jpeg=yes], [have_jpeg=no])], + [have_jpeg=no])], + [have_jpeg=no]) + +AS_IF([test "x$have_jpeg" = "xyes"], + [AC_DEFINE([VINO_HAVE_JPEG], [], [Build with jpeg support]) + AC_SUBST([JPEG_LIBS], [-ljpeg])], + [AS_IF([test "x$with_jpeg" = "xyes"], + [AC_MSG_ERROR([jpeg support requested but not found])])]) + +# Internationalization +AC_SUBST([GETTEXT_PACKAGE],[$PACKAGE_TARNAME]) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"], [gettext package]) +IT_PROG_INTLTOOL([0.50.0]) + +# Check for XDAMAGE extension +AC_CHECK_HEADER([X11/extensions/Xdamage.h], + [AC_CHECK_LIB([Xdamage], [XDamageQueryExtension], + [AC_DEFINE([VINO_HAVE_XDAMAGE], [], [Defined if the DAMAGE X extension is present]) + AC_SUBST([XDAMAGE_LIBS], ["-lXdamage -lXfixes"])], + [], [$X_LIBS])], + [], [#include <X11/Xlib.h>]) + +# Check for MIT-SHM extension +AC_CHECK_HEADER([X11/extensions/XShm.h], + [AC_CHECK_LIB([Xext], [XShmQueryExtension], + [AC_DEFINE([VINO_HAVE_XSHM], [], [Defined if the MIT-SHM X extension is present]) + AC_SUBST([XSHM_LIBS], [-lXext])], + [], [$X_LIBS])], + [], [#include <X11/Xlib.h>]) + +# Check for XTest extension +AC_CHECK_HEADER([X11/extensions/XTest.h], + [AC_CHECK_LIB([Xtst], [XTestQueryExtension], + [AC_DEFINE([VINO_HAVE_XTEST], [], [Defined if the XTEST X extension is present]) + AC_SUBST([XTEST_LIBS], [-lXtst])], + [], [$X_LIBS])]) + +# Check for XKB extension +AC_CHECK_HEADER([X11/XKBlib.h], + [AC_CHECK_LIB([X11], [XkbQueryExtension], + [AC_DEFINE([VINO_HAVE_XKB], [], [Defined if the XKB X extension is present])], + [], [$X_LIBS])]) + +AC_CHECK_HEADERS([netinet/in.h sys/time.h fcntl.h unistd.h sys/socket.h ifaddrs.h]) + +# Check for getifaddrs +AM_CONDITIONAL([VINO_HAVE_SELF_IFADDRS], [test "x$ac_cv_header_ifaddrs_h" != "xyes"]) + +# RFC2553 introduce sockaddr_storage as ifa_addr member in ifaddrs structure +# Not all distros follow this. +AS_IF([test "x$ac_cv_header_ifaddrs_h" = "xyes"], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include <net/if.h> + #include <ifaddrs.h> + ]], [[ + struct ifaddrs *myaddrs; + getifaddrs (&myaddrs); + if (myaddrs->ifa_addr->ss_family == AF_INET) { + } + ]])], + [have_sockaddr_storage=yes], + [have_sockaddr_storage=no])], + [AS_IF([test "x$have_sockaddr_storage" = "xyes"], + [AC_DEFINE([RFC2553], [], [Define if RFC2553 is followed])])]) + +AC_C_BIGENDIAN +AC_C_INLINE + +AC_CHECK_LIB([resolv], [herror]) +AC_SEARCH_LIBS([strerror],[cposix]) +AC_CHECK_FUNCS([gettimeofday]) + +# Check for IPv6 support +AC_MSG_CHECKING([checking for IPv6 support]) +AC_ARG_ENABLE([ipv6], + [AS_HELP_STRING([--disable-ipv6], + [ignore the presence of IPv6 support and disable it])], + [], + [enable_ipv6=yes]) + +AS_IF([test "x$enable_ipv6" != "xno"], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include <sys/types.h> + #include <sys/socket.h> + ]], [[ + socket(AF_INET6, SOCK_STREAM, 0); + ]])], + [have_ipv6=yes], + [have_ipv6=no])]) + +AS_IF([test "x$have_ipv6" = "xyes"], + [AC_DEFINE([VINO_ENABLE_IPV6], [], [Define to enable IPv6 support])], + [AS_IF([test "x$enable_ipv6" = "xyes"], + [AC_MSG_ERROR([IPv6 support requested but not found])])]) +AC_MSG_RESULT([$have_ipv6]) + +dnl systemd user unit directory +AC_ARG_WITH([systemduserunitdir], + [AS_HELP_STRING([--with-systemduserunitdir=DIR], + [Directory for systemd user service files])], + [], + [PKG_CHECK_EXISTS([systemd], + [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)], + [with_systemduserunitdir='${libdir}/systemd/user'])]) +AS_IF([test x$with_systemduserunitdir != xno], + [AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])]) +AM_CONDITIONAL([INSTALL_USER_UNITS], [test -n "$with_systemduserunitdir" -a "x$with_systemduserunitdir" != xno]) + +# GNOME libraries +GTK_VERSION=3.0.0 +GLIB_VERSION=2.32.0 +GIO_VERSION=2.26 + +PKG_CHECK_MODULES([VINO_SERVER], [glib-2.0 >= $GLIB_VERSION gio-unix-2.0 gtk+-x11-3.0 >= $GTK_VERSION $TELEPATHY_GLIB_DEPS libnotify >= 0.7.0 $SECRET_DEPS $GNUTLS_DEPS $AVAHI_DEPS]) + +# EGG stuff +PKG_CHECK_MODULES([EGG_SMCLIENT], [gtk+-3.0 ice sm]) + +GLIB_GSETTINGS + +AC_CONFIG_FILES([ +Makefile +po/Makefile.in +]) + +AC_OUTPUT diff --git a/docs/TODO b/docs/TODO new file mode 100644 index 0000000..60b6e3c --- /dev/null +++ b/docs/TODO @@ -0,0 +1,47 @@ +TODO +==== + ++ Short term, high priority +- Short term, low priority +* Long term + +=> General: + + UI and terminology review. + +=> Server: + - Implement cliboard handling + - Review the screen polling implementation. + - Use the debugging utils for libvncserver debugging. + - Why don't we get the hostname in the prompt dialog ? + - Get libvncserver patches upstream. + * Use the XDAMAGE extension. + * Investigate if we can conjure up a nice cursor from the + current theme using the XCursor library. + * Investigate using the XFIXES cursor image support. + * Talk to keith about getting cursor position + notification support too. + * Investigate if using TLS compression gives us any gains. + * Implement service discovery and registration using MDNS + and DNS-SD. + +=> Client: + + Native gtk+ based client + + i18n support for Java client ? + * Could we make the Java client support all pixel formats, or + at least 8 bit colour as well as 24 bit colour? + +=> Security: + - Export control ? + * Implement support for server certificate and client + certificate authentication. + * Kerberos support ? + +=> Bugs + + Fix the screen size-changed handling. We seem to not get + the ConfigureNotify on the root window for ages and thus + get a BadMatch when we try and do a GetImage with the + wrong size image. + +=> Protocol + - Document the TLS security type + * Multi-screen support ? diff --git a/docs/debugging.txt b/docs/debugging.txt new file mode 100644 index 0000000..f2cfa82 --- /dev/null +++ b/docs/debugging.txt @@ -0,0 +1,137 @@ +Debugging Vino +============== + + Because gnome-session launches vino-server based on the value of the +/desktop/gnome/remote_access/enabled key, it can be a bit of a pain to +debug Vino. Here's what I do: + + 1) Disable Vino: + + $> gconftool-2 -s /desktop/gnome/remote_access/enabled -t bool false + + 2) Kill the running server: + + $> killall vino-server + + 3) Run vino-server from the command line - e.g. in gdb: + + $> gdb /usr/libexec/vino-server + + 4) Enable Vino again: + + $> gconftool-2 -s /desktop/gnome/remote_access/enabled -t bool true + + Once you've done that, its possible to connect a client and get +started debugging. + + + Also, if you compile with --enable-debug there's a VINO_SERVER_DEBUG +environment variable which you can set to any of the following values +in order to get debug spew from various parts of the code: + + + "polling" - the code in vino-fb.c which grabs the contents of the + screen from the Xserver. Even though it doesn't sound + like it, this also applies to the XDAMAGE code. + + "rfb" - the code in vino-server.c relating to the RFB protocol + + "input" - the code in vino-input.c; relates to Vino injects key + presses and mouse invents into the Xserver + + "prefs" - spews information about the state of GConf preferences + + "prompt" - information about the prompt dialog displayed when a + client connects + + "dbus" - information about D-BUS stuff + + "upnp" - information about UPNP stuff + + "tube" - information about Telepathy Tubes stuff + + + When tracking down performance problems, I've found strace very +useful - especially strace -ttt. With a small bit of patience its very +possible to see in a very detailed way what's going on in Vino in +terms of the the order things happen, how long we block on roundtrips +to the Xserver etc. + + Using strace, one trick that I picked up from Michael Meeks is to +insert something like + + access ("/tmp/foo-key-press", R_OK); + + at various points in the code to help you identify how those points +in the code relate to the strace spew. + + Also, with the "-x" option to strace, it becomes pretty +straightforward to get a better idea of what X traffic is happening +too e.g. + +1117012824.955091 access("/tmp/foo-bar", R_OK) = -1 ENOENT (No such file or directory) +1117012824.955262 write(3, "\x3e\x05\x07\x00\x48\x00\x00\x00\x07\x00\x40\x03\x05\x00"..., 32) = 32 +1117012824.972020 read(3, 0xbffe8ed0, 32) = -1 EAGAIN (Resource temporarily unavailable) +1117012824.992585 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) +1117012825.696356 read(3, "\x0e\x00\x5b\x00\x07\x00\x40\x03\x00\x00\x3e\x00\x00\x00"..., 32) = 32 +1117012825.696488 read(3, "\x75\x00\x5b\x00\x48\x00\x00\x00\x03\x00\x40\x03\xc9\x79"..., 32) = 32 +1117012825.696598 read(3, "\x75\x00\x5b\x00\x48\x00\x00\x00\x03\x00\x40\x03\xc9\x79"..., 32) = 32 +1117012825.696703 read(3, "\x75\x00\x5b\x00\x48\x00\x00\x00\x03\x00\x40\x03\xca\x79"..., 32) = 32 + + Now, I know from where I put the access() call, that this is in +vino_fb_xdamage_idle_handler() where we call XCopyArea(). + + Lets go through it in detail. The first write() is likely to be the +CopyArea message. We can verify that because every X request is 32 +bytes long (see the write() is 32 bytes too) and the first byte is the +opcode. What's the opcode for CopyArea? + +[markmc@blaa ~]$ grep X_CopyArea /usr/include/X11/Xproto.h +#define X_CopyArea 62 + + i.e. 62 binary or 0x3E hex. + + Following the write() we try and read() from the Xserver, get EAGAIN +because there's no data available and then select() on the file +descriptor until data does become available. + + When we do get some data, we read and the first message has an +opcode of 0x0E. This is most likely an event (an error's first byte is +always zero and a reply's first byte is one) so ... + +[markmc@blaa ~]$ grep 14 /usr/include/X11/X.h +#define NoExpose 14 + + Sure enough, its a NoExpose event. Look XCopyArea() man page to +figure out why we're getting that. + + Following that event are gobs and gobs of messages beginning with +0x75. They're likely to be events as well, but what are they? Well, +with a bit of debugging you can figure out that they're actually +XDamageNotify events - we calculate the value in +vino_fb_init_xdamage(): + + vfb->priv->xdamage_notify_event = event_base + XDamageNotify; + + Indeed, if we want to be really anal we can go back and look for the +QueryExtension. First, we need the opcode: + +[markmc@blaa ~]$ grep -rn X_QueryExtension /usr/include/X11/Xproto.h +2091:#define X_QueryExtension 98 + + That's 0x62 in hex. So, we're looking for a write to the X +connection (file descriptor 3) with 0x62 as the first byte. What do ya +know: + +1117012824.950683 writev(3, [{"\x62\x01\x04\x00\x06\x00\x01\x00", 8}, {"DAMAGE", 6}, {"\x00\x00", 2}], 3) = 16 +1117012824.950939 read(3, "\x01\x00\x52\x00\x00\x00\x00\x00\x01\x9d\x75\xba\x00\x00"..., 32) = 32 + + It's pretty clear that its QueryExtension for DAMAGE. Now, lets +figure out the event base from the reply. The format for the reply is: + +typedef struct { + BYTE type; /* X_Reply */ + BYTE pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; /* 0 */ + BOOL present; + CARD8 major_opcode; + CARD8 first_event; + ... +} xQueryExtensionReply; + + first_event is 11 bytes in. Looking at the read, that's 0x75. The +value of XDamageNotify is zero, so we can be 100% sure that all those +events after our NoExpose events are XDamageNotify events. diff --git a/docs/remote-desktop.txt b/docs/remote-desktop.txt new file mode 100644 index 0000000..e3ee340 --- /dev/null +++ b/docs/remote-desktop.txt @@ -0,0 +1,1086 @@ + Remote Desktop Project + ====================== + (Work In Progress) + + Mark McLoughlin (mark@skynet.ie) + December 1st, 2003 + +1. Problem Description +====================== + + In enterprise installations system administrators typically +have to deal with a large number of pretty basic problems on users' +machines. Remotely taking control of a user's desktop to fix the +problem while at the same time training the user as to how to resolve +the problem for themselves is an effective and simple way to handle +these types of support scenarios. + + Currently there is no way to do this with GNOME. + +2. Overview +=========== + + The basic requirement for such a tool is some method of +sharing a desktop session between multiple users. The sysadmin sees +what the user sees and the user sees what the sysadmin sees. + + However, the technology behind this is obviously useful in +other ways. Here in Sun, for example, we make widespread use of VNC +for some basic collaboration. Targetting this project purely at the +Remote Assistance use case will leave some users wondering "why +... why on earth did you make it impossible for us to use this like +VNC?". + + This project, therefore, also encompasses the use case of +a simple form of collaboration by sharing access to a desktop +session. + + There are various existing technologies in this area which all +work in very similar ways. This project will follow those same basic +architectural principals. + + The core part of such a system is a protocol by which +information about what is happening on the screen of the "host" +machine (in this case, the user's machine) is sent to the "client" +machine (the sysadmin's machine). The client also needs to be able to +relay back key presses and pointer manipulation information to the +host. + + There are several existing such protocols available - the RFB +(Remote FrameBuffer) protocol used by VNC, RDP (Remote Desktop +Protocol) used by Window's Remote Desktop and the Sun Ray protocol. + + On the host machine a mechanism is needed by which all drawing +primitives are proxied via the protocol to the client machine as well +as a mechanism by which key/pointer events from the client are passed +to the windowing system. Also needed is an authentication mechanism by +which access to the host system can be restricted. + + On the client machine an application which allows the user to +connect to the host machine, authenticate, display the contents of the +host display and forward input events to the host is required. + +3. Task List, by Commonality and Frequency +========================================== + + Below, each of the user tasks the project aims to facilitate +is listed, grouped by the proportion of users who will perform the +task and how often it will be performed. In the absence of personas to +encapsulate our target user base, the groupings are judgement based. + + Each task also has (C), (I) or (NTH) depicting whether support +for that task is core, important or nice to have functionality. + + + First lets take a look at the "Remote Assistance" use case on +the host side and then on the client side. + + => Host + + * Frequent by Many: + + 1. Verify/approve a connection before it can be + established. (C) + + * Frequent by Few: + + 1. Request assistance from a colleague or system + administrator. (I) + + => Client + + * Frequent by Many: + + 1. View a desktop remotely. (C) + 2. Interact with a remote desktop. (C) + 3. Browse the network for a machine to connect to. (I) + 4. Make the remote desktop occupy the entire local screen + i.e. a fullscreen option. (NTH) + + * Occasional by Many: + + 1. Open a connection to a user's desktop given only the + hostname of the user's machine (C) + 2. Open a connection to a user's desktop without having the + user be aware of your connection. (I) + 3. Receive a remote assitance request and open a connection to + that user's desktop. (I) + + + Now, lets take a look at the additional tasks with a simple +VNC-like collaboration tool. + + => Host + + * Frequent by Many: + + 1. Inform others how to connect to your desktop. (I) + + * Frequent by Few: + + 1. View the number of and the details of established + connections. (I) + 2. Close established connections. (I) + 3. Toggle established connections between interactive and + non-interactive. (NTH) + + * Occasional by Many: + + 1. Allow/dis-allow remote connections to the desktop. (C) + 2. Allow/dis-allow interactive connections. (C) + 2. Restrict remote access to your desktop in some way + (e.g. set a password, specify specific users ...) (C) + + => Client + + * Frequent by Many: + + 1. Open a connection to a remote desktop given some details + from the host user (C) + +4. Functional Requirements +========================== + + => Host + + 1. Ability to approve or reject a request to remotely connect to + the desktop. (C) + + 2. Ability to request assistance from a pre-defined source. (I) + 3. Ability to request assistance from a colleague. (I) + + 4. Ability to allow/dis-allow remote connections to the desktop. (C) + 5. Ability to allow/dis-allow interactive connections. (C) + 6. Ability to restrict access to the desktop in some way + (e.g. assign a password) (C) + + 7. Ability to give, to another user, enough details for that user + to connect to your desktop. (I) + + 8. A list of currently open connections, including details of + the other endpoint of the connection and whether or not the + connection is interactive. (I) + 9. Ability to close a connection. (I) + 10. Ability to toggle a connection between interactive and + non-interactive. (I) + + => Client + + 1. Ability to view a desktop remotely. (C) + 2. Ability to interact with a desktop remotely. (C) + + 3. Ability (for a user with sufficient priviledges) to connect to + a given user's desktop on a given host. (C) + 4. Ability to browse the network for hosts which you can then connect + to. (I) + 5. Ability (for a system administrator) to connect to a given user's + desktop without the user being aware of the connection. (I) + + 6. Ability to view the remote desktop in fullscreen mode. (NTH) + + 7. Ability to connect to a desktop given a remote assitance + request. (I) + 8. Ability to connect to a desktop given some details from the + host user. (I) + +5. Notes/Design Constraints/Caveats +=================================== + + * I don't think the "Request Assistance" task is a very important + one. In most cases where a user has support personnel available I + think picking up the phone will be a much more common way of + requesting assistance rather than clicking a button and twidling + your thumbs waiting for someone to respond. + +6. Review of Existing Technologies +================================== + +6.1. Existing Products - VNC/RFB +================================ + + RFB[1] (Remote FrameBuffer) is the protocol used by VNC. The +emphasis in the design of the protocol was to make very few +requirements of the client. The client has no need to maintain +explicit state and clients are able to disconnect and re-connect to +the server while preserving the state of the user interface. + + The dislay part of the protocol is based around a single +simple graphics primitive "put a rectangle of pixel data at a given +position". Each rectangle may be encoded in any one of a number of +encodings allowing for compression or usage of parts of the client's +existing copy of the framebuffer. Updates are requested by the client +rather than pushed out by the server allowing the protcol to adapt to +slower networks and/or clients - i.e. with a slow network or client +the rate of updates are greatly reduced and the client ignores the +transient state of the framebuffer. + + The protocol is quite extensible. Extra encodings can be +advertised by the server and used if the client supports the +encoding. Use of encodings are not only limited to how frame buffer +updates are encoded on the wire, but also extra psuedo-encodings may +be added which can do anything from inform the client of a change in +cursor shape, a change in the size of the screen or even things like +extra in-band communication between the server and client. + + There seems to be many different implementations of VNC +available. Available RFB server implementations include: + + * libvncserver[2]: a "library" for implementing VNC +servers. It basically just seems to be a hacked up version of an +existing VNC server in an archive with some header files. Not a very +nice API, but quite a few projects are using it successfully. + + * xf4vnc[3]: a controlled fork of XFree86 which allows you to +run an Xserver which doubles as a VNC server or export your local +framebuffer through a loadable module. + + * realVNC[4]: seems to be a continuation of the original VNC +project which has an Xserver which doubles as a VNC server. Thus, +there is no method by which you can remote the local framebuffer. + + * x0rfbserver: an X11 client which acts as an RFB server and +exports the local display by polling the display for updates using X +and pushing the updates out to clients using RFB. + + * krfb[5]: a pretty nice looking VNC server for KDE which is +based on the same concept (and indeed uses some of the code of) +x0rfbserver. It also uses libvncserver. + + I won't list the VNC client's available, there seem to be +many, but suffice to say there are X11, Windows and OS X clients +available along with, interestingly, several implementations of a Java +client which can be run embedded in the browser as an applet. + + Tim Waugh has written a nice article[6] on VNC and the many +projects around the technology. + + In summary, the RFB protocol has a number of advantages: + + 1) Simple and open protocol. + 2) Rate-limited by the client, pretty low bandwidth/latency + requirements. + 3) Extensible. + 4) Several open source implementations available. + 5) Many existing clients available for different platforms. + +6.2. Existing Protocols - Remote Desktop/RDP +============================================ + + "Remote Desktop"[7,8,9] is Microsoft's technology in this +area. The RDP protocol itself is essentially an extension of the +ITU-T T.128 (aka T.SHARE) application sharing protocol[10]. + + The protocol is a good deal more complex than the RFB protocol +and the protocol supports a very much larger set of functionality than +the RFB protocol e.g. + + * Printer re-direction - you can print something on the host +machine to a printer local to the remote desktop client. + + * Sound re-direction - sounds from the host can be heard at +the client. + + * Multi-point sharing - the remote desktop session does not +neccessarily consist of only windows/applications on a single +host. Multiple hosts can share applications to the session. + + None of these features are needed here given the functional +requirements above. + + Also, the protocol has been further extended by Microsoft to +such an extent that it hardly be considered an "open" protocol. + + Another problem with Window's Remote Desktop compared to VNC +is the limited client availability. On Linux, the rdesktop[11] project +provides a Remote Desktop client (tsclient[12] is a GNOME-like frontend +for it) but on Windows, the only client I know of is the Window's +Remote Desktop client. + +6.3. Existing Protocols - Sun Ray +================================= + + There's not a lot of information out there on SLIM, the +protocol behind Sun Ray. About the only details available are from a +paper[13] investigating the performace of the protocol. + + SLIM, like RDP, is designed to immediately push all frame +buffer updates to the client. Therefore, on low bandwidth connections +the updates would just pile up. One would assume this is the reason +Sun Ray requires a dedicated network. + + Also, Sun Ray has no client implementation available apart +from the Sun Ray Enterprise Appliance itself. + +7. System Design +================ + +7.1. Overview +============= + + The host side is to be implemented as a VNC server using the +libvncserver library. The VNC server will act as an X client and poll +the local X display for the contents of the framebuffer and notify the +VNC clients if there have been any changes. Input events coming from +the clients will be injected into the X display using the XTEST[14,15] +extension. + + The VNC client we will most likely be a modified version of +an existing Java client. The advantage of having a Java client is that +it may be used to connect to the host from any platform. + +7.2. Monitoring The Local Display +================================= + + To implement a VNC server you need to know the contents of the +local framebuffer in order to pass this information onto the VNC +clients. + + Currently, as an X client, there is only one way to do this +and that is by doing a GetImage on the root window which basically +copies the entire framebuffer from the X server to the X client. The +main problem with this approach is that without knowing what parts of +the framebuffer has actually changed since the last time you updated, +you are wasting an enormous amount of resources copying the entire +framebuffer each time. + + There are a number of possiblities to lessen the inefficiency +here. The first is to limit the amount of polling you do per update of +the framebuffer. For example, every update you could just check a +certain number of scanlines against your local copy of the frame +buffer and if parts of the scanline differ, then do a GetImage on a +number of tiles which capture those changes to the scanline. This is +the approach taken by krfb and x0rfbserver. + + Another possibility is an X extension to notify the X client +of changes to the framebuffer, thereby negating the need for +continually polling the X server. When the client receives the +notification it can do a GetImage to update its copy of the +framebuffer with the latest changes. Keith Packard is currently +working on an extension to do exactly this called XDAMAGE[16]. + + Initially we will use the x0rfbserver approach of polling the +screen, but will later implement support for the XDAMAGE extension +when it becomes available. + +7.3. Input Event Handling +========================= + + The VNC server will need to handle two types of input events +coming from VNC clients - keyboard and pointer events. These events +will be injected into the Xserver using the XTEST extension. + + To inject a keyboard event into the X server you invoke +XTestFakeKeyEvent with the appropriate keycode. The X server then maps +this keycode, according to the current modifier state, to a keysym. We +need to make sure that they keycode we pass to the X server maps to +the same keysym as the keysym we received from the VNC client. We can +reverse map a keysym to a keycode, but we also need to make sure the +modifier state is such that the keycode will map back to that +keycode. Both krfb and x11vnc use the same code for ensuring this and +we can just copy that. + + You can inject into the X server button presses/releases using +XTestFakeButtonEvent() and pointer movement using +XTestFakeMotionEvent(). The PointerEvent you receive from the client +contains information on the state of each button and the current +pointer location. The only slightly difficult part here is translating +the button state information to button presses/releases, but it merely +involves keeping track of the previous button state. + +7.4. Cursor Handling +==================== + + The basic problem here is how to allow the VNC client to see +the cursor. There are several possible approaches: + + 1. Draw the cursor directly to the VNC server's copy of the + framebuffer and send framebuffer updates as the cursor is moved + around. The client will see the cursor being moved in all cases. + + 2. Provide the cursor image to the client using the RichCursor or + XCursor psuedo encoding and let the client draw the cursor + locally. The client only sees cursor movement when that client is + the one moving the cursor. + + 3. Again provide the cursor image to the client, but also send the + client updates on the pointer position using the PointerPos + pseudo-encoding which the client can use to update the position + of its locally drawn cursor. Again, the client will see the + cursor movement no matter who is moving it. + + Approach (2) isn't very useful - the client needs to be able to +see cursor movement on the host. For that reason, we will not +advertise the cursor image to the client unless it supports *both* +cursor position and cursor shape updates. If the client only supports +one or the other, we ignore the support for that encoding and always +draw the cursor to the framebuffer. + + One problem here is that, in the screen polling case, because +we will be comparing the local copy of the framebuffer (which may, +with approach (1) above, have the cursor drawn in it) to the actual +framebuffer (which will not contain the cursor image) we will need to +undraw the cursor before doing any comparison. Instead of complicating +the screen polling code with this detail we will draw the cursor image +to the framebuffer just before sending a frame buffer update to the +client and then immediately undraw it. + + Of course, with either approach (1) or (2) we need some +mechanism by which we can determine the current cursor position and +shape. The only way to determine the current cursor position is by +regularily polling using XQueryPointer(). Determining the current +cursor shape is not possible but such support is to be added to the +XFIXES extension. [FIXME: more details on this]. + +7.5. libvncserver Work +====================== + + libvncserver contains lots of code from different VNC server +implementations. The intent is to bring all that code together under +one API which makes it easy to write VNC servers. However, rather than +being a library, it seems more like a full VNC server implementation +around which you can wrap a main function. + + There are a number of problems with the library which can be +fixed in a fairly straightforward manner, by extending the API +slightly and cleaning bits up. + + Other concerns around the library containing way more +implementation that we would like/need, many private functions exposed +in the API, structures that will likely need to be expanded being +exposed in the API and a general feeling that the library cannot +hope to maintain ABI compatibility are much harder to address. We have +the option of just statically linking to the library, and so, the +project will not be held up by these problems, but we should continue +to consider coming up with a plan to fix these problems. + + Initially, the project will contain a copy of libvncserver +with the following changes: + + + API to allow glib mainloop integration. + + Support for version 3.7 of the RFB protocol - this adds security + type negotiation. + + A hook so that we can allow the user to decide whether or not an + authenticated client should be allowed to connect. + + Re-worked cursor handling so that the cursor remains drawn to the + server's copy of the framebuffer only for the duration of + rfbSendFrameBufferUpdate(). + + API to set the current cursor postion. + + Only send cursor shape updates when the client also has support + for cursor position updates and vice versa. + + Removed default implementations of hooks and make that the default + action when the hook isn't implemented. + + TRUE == 1 instead of -1 to match glib. + + Warnings fixes. + + LIBVNCSERVER prefix removed from the #ifdefs so that we can use a + normal config.h. libvncserver really shouldn't have platform + dependant defines in its header anyway. + + Threading support disabled but not removed. + + Lots of code which we don't need removed: + - UDP support + - Vestiges of CORBA support + - Back channel support + - setTranslateFunction(), getCursorPtr and displayHook hooks + - HTTP server implementation + - Support for drawing GUIs to the framebuffer on the server + side. + - Command line argument processing. + +7.6. Service Discovery +====================== + + In order to implement the ability to browse the network for +available remote desktop servers there must be some way to enumerate +the available servers. One possible mechanism for doing this is DNS +Based Service Discovery[17], a draft of which is currently on the IETF +standards track. + + DNS-SD is a convention for naming and structuring DNS resource +records such that a client can query the DNS for a list of named +instances of a particular service. The client can then resolve one of +these named instances to an address and port number via a SRV[18] +record. + + In the remote desktop case, a client could query the DNS for +PTR records of _rfb._tcp.<domain> and would be returned a list of +named instances of RFB servers, using TCP, on the domain. For example: + +PTR:_rfb._tcp.ireland.sun.com -> SRV:Mark's Desktop._rfb._tcp.ireland.sun.com + SRV:Gman's Desktop._rfb._tcp.ireland.sun.com + + (Note the way the Service Instance Name is a user-friendly +name containing arbitrary UTF-8 encoded text. It is not a host name.) + + The client would then display the list of available remote +desktop servers - i.e. "Mark's Desktop" and "Gman's Desktop" - and +allow the user to choose one. If the user chooses "Mark's Desktop" the +client can then resolve that SRV record associated with the remote +desktop instance. + +SRV:Mark's Desktop._rfb._tcp.ireland.sun.com -> markmc-box.ireland.sun.com:5900 + + The client can then resolve the "markmc-box.ireland.sun.com" +hostname and using the resulting ip address connect to the remote +desktop server on port 5900. + + + While DNS-SD seems like a perfect mechanism by which remote +desktop instances may be queried for, there remains the problem of how +the DNS is populated with the details of these services to begin with. + + A related draft proposal on the IETF standards track is +Multicast DNS[19]. The idea behind Multicast DNS is to allow a group +of hosts on a local link, in the absence of a convetionally managed +DNS server, to co-operatively manage a collection of DNS records and +allow clients on that same local link query those records. + + The scheme works by each client connecting to the mDNS +multicast IPv4 address and sending/receiving DNS-like queries/answers +to port 5353. Between them, the clients manage the top-level ".local." +domain and negotiate any conflicts that arise. So, for example, the +host referenced by "markmc-box.ireland.sun.com" in the above example +could also be resolved using the host name "markmc-box.local" by other +Multicast DNS clients on the same link. + + In order to be queriable by Multicast DNS, our remote desktop +server could act as a Multicast DNS Responder and Querier and register +the remote desktop service there. Here's how the example above would +look like if we were using mDNS: + + Client queries the local link for remote desktop servers ... + +PTR:_rfb._tcp.local + + ... and receives a reply first from markmc-box ... + + -> SRV:Mark's Desktop._rfb._tcp.local + + ... and then a reply from gman-box: + + -> SRV:Gman's Desktop._rfb._tcp.local + + Once the user has selected "Mark's Desktop" from the displayed +list, the client resolves that service and receives a reply once again +from markmc-box: + +SRV:Mark's Desktop._rfb._tcp.ireland.sun.com -> markmc-box.local:5900 + + The client then resolves "markmc-box.local" to an ip address +(still using Multicast DNS) and connects to that address on port 5900. + + Luckily, implementing this won't require writing an mDNS +implementation from scratch. There is an existing implementation in +GNOME CVS which integrates nicely with glib's main loop and there are +plans to centralise this in a desktop service advertisement and +discovery daemon. + + + Another possible mechanism for making remote desktop service +information available via DNS is to use Dynamic DNS Updates[20] to add +DNS-SD records to a conventional DNS server. However, the majority of +DNS server deployments restrict (for obvious security reasons) the +ability to update DNS records completely or to only a few known +hosts. Because using this mechanism would require installation sites +to change their DNS administration policies, this is obviously not an +attractive option. + +7.7. Security Considerations +============================ + +7.7.1. VNC Authentication +========================= + + VNC uses a simple DES based challenge-response authentication +scheme. In order to authenticate the client, the server sends a random +16 byte challenge and the client then encrypts the challenge with DES +using the user supplied password as a key. If the response matches the +expected result, the client is authenticated. Otherwise, the server +closes the connection. There are a number of possible vulnerabilities +with this mechanism. + + Firstly, the password, being limited to 8 characters, could be +brute force guessed by an attacker who continually tries to +authenticate using different passwords[21]. The standard way of +making such attacks unfeasible is to enforce a delay between failed +authentication attempts - i.e. if there has been a failed +authentication attempt, delay sending the challenge to the next client +who connects for a number of seconds. + + Another possible vulnerability is the predictability of the +random challenge sent by the server. If the server, under any +circumstances, sends a challenge which has previously been used in a +successful authentication attempt there is the possibility that an +attacker may use the previously observered valid response again. An +example[22] of such is if the server re-seeds the random number +generator used to produce the challenge with the current time on each +connection attempt. In this case, if an attacker connects to the VNC +server within the same one second window as a valid client, then the +attacker will receive the same challenge as the valid client and use +the response from that client to authenticate. To avoid such a +vulnerability the server should produce highly unpredictable +challenges using the cryptographically strong random number generator +providied with the GNU TLS library. + + Challenge-response authentication schemes are inherently +susceptible to man-in-the-middle attacks. The basic idea is that +attacker uses a client to generate a valid response for a given +challenge. One way[23] of carrying out such an attack is if the attack +can intercept and modify the packets flowing between the client and +the server. The attacker can then replace the challenge from the +server with a challenge the attacker has received in a pending +authentication attempt. The client then returns a valid response for +that challenge with which the attacker can use to complete its +authentication. + + Given that this tool is aimed mainly at system administrators +administering a network of many desktop machines, and given that an +administrator would likely set the same password for the remote +desktop server on each of these machines, a more worrying +man-in-the-middle attack is: + + ("C" is the administrator using a VNC client, "S" is the VNC +server under attack and "M" is the attacker.) + + 1. M starts a modified VNC server which advertises itself on + the local link using mDNS and DNS-SD (see the "Service + Discovery" above) + 2. C connects to M's modified VNC server by selecting it from + the list of available VNC servers + 3. M then connects to S and receives a challenge + 4. M sends this challenge to C + 5. C sends back a valid response to M + 6. M sends a failed authentication message to C. + 7. M uses this response to authenticate against S and is + granted access. + + There is no way to protect VNC's challenge response +authentication mechanism from such an attack. + + DES[24], by today's standards, is quite a weak encryption +mechanism. Given that in this case that both plaintext and ciphertext +(the challenge and response) are both available a brute force attack +to find the key (the password in the VNC case) is possible. Brute +force cracking of DES is a much discussed[25]. A large amount of +computing power would be required for such an attack and given that +this tool would only deployed on private networks, it is perhaps not +an immediate concern. However, in the years to come it is to be +expected that such attacks would beome much more common and easy to +perform. + +7.7.2. Encryption +================= + + RFB protocol messages are sent across the network +unencrypted. This is an obvious security concern because an attacker +may snoop the protocol packets and, using a modified VNC viewer, +observe a VNC session in progress. Even more worrying, is that all key +presses are sent in the open and may be snooped. Considering that +system administrators are the primary target audience and that they +are likely to enter the root password when running some system +utility, the password could be snooped and used to gain root-level +access to the machine. + + In order to protect the VNC session from such attacks, the +protocol should be extended to allow the stream to be +encrypted. Luckily, the RFB protocol was designed to allow such +extensions while maintaining compatibility. + + The encryption of the RFB stream will be implemented with +TLS/SSL[26] using the gnutls[27] library and, for the Java client, the +Java Secure Socket Extension (JSSE)[28]. + + TLS is a protocol designed to provide privacy, data integrity, +compression and, optionally, peer authentication using public key +cryptography. The protocol mainly consists of two parts - the Record +Protocol and the Handshake Protocol. The Record Protocol is +responsible for fragmenting, compressing, hashing and encrypting the +data to be transmitted. The Handshake Protocol involves the peers +agreeing on a protocol version, cipher suite and compression method, +generating a shared secret and, optionally, exchanging certificates to +allow the peers to authenticate one another (either or both peers may +be authenticated). + + New security types will be added (see below) which will cause +the client and server to begin the TLS handshaking protocol +immediately after one of those security types has been agreed upon. If +VNC authentication is required, that challenge-response exchange will +happen immediately after the TLS handshake has completed. + + The peer authentication which may take place as part of the +TLS handshake involves the peers exchanging certificates (currently +only X.509[29] certificates are supported by the protocol but support +for OpenPGP[30] certificates has been proposed[31]) and verifying +their identity. In order to support server certificate authentication +the VNC client will need have some sort of certificate store which +contains the server certificates the client trusts - this is useful +because it prevents a man-in-the middle attack. To support client +certificate authentication, the VNC server will also require a +certificate store listing the clients who are authorised to connect - +this is useful because the password is no longer a weak point, but +also that it would be generally more convenient for a system +administrator to distribute his certicate to each of the desktop +systems he administers and never have to type in a password. + + If certificate based peer authentication is not used the +client and server agree on a secret using anonymous Diffie-Hellman key +exchange. + + TLS supports compression of the communication stream. Some +investigation should be carried out to see if using this compression +mechanism is with uncompressed RFB tiles results in better bandwidth +usage than no TLS compression and compressed RFB tiles. + +7.7.3. New RFB Security Types +============================= + + The negotiated security-type in the RFB protocol is an 8 bit +unsigned integer. Currently there are only two possible values: +"None"(1) to indicate no authentication is needed and "VNC +authentication"(2) to indicate that the client is to be authenticated +using the challenge-response scheme detailed above. 0 indicates and +error condition. + + We will add a further four security types: + + + Anonymous TLS (3) + + TLS With VNC Authentication (4) + + TLS With Server Certificate and VNC Authentication (5) + + TLS With Server and Client Certificate Authentication (6) + + In order to ensure interoperability with other +implementations, these security types must be registered with RealVNC +who maintain the RFB protocol specification. + +7.7.4. Security Related Preferences +=================================== + + A number of preferences will be provided which will have a +direct impact of the security of the system. Their meaning and +rationale for their existance is detailed below: + + /desktop/gnome/remote_access/enabled (boolean, default=false) + + If false, the Remote Desktop server will not be started at + login time and if running will not allow any new remote + connections, put all existing clients on hold and exit after a 30 + second timeout. + + The rationale for the preference is that unless Remote Desktop + access is to actually be used, it is much more preferable to not + have the server running for both resource consumption and security + reasons. + + The default for the preference is false under the assumption + that Remote Desktop access will not be used by the majority of the + user base. + + + /desktop/gnome/remote_access/prompt_enabled (boolean, default=true) + + If true, once a client has connected and been authenticated the + user is prompted on whether the client connection should be + allowed to be completed. + + The rationale here is that in the majority of scenarios, the + user on the host machine should be in control of whether or not + remote users are allowed to connect to their desktop. Even if the + host user has enabled remote access, set a password and informed + some other user of that password, the host user may still want to + both be aware of another user connecting and also decide whether + that particular time is suitable for the remote user to connect. + + The default is true for two reasons. Firstly, it is assumed that + most users will want to vet new connections and, secondly, because + by default there is no authentication required to connect this + prompt will provide some level of manual authentication. + + + /desktop/gnome/remote_access/view_only (boolean, default=false) + + If true, remote users will only be allowed to view the remote + desktop and all keyboard, pointer and clipboard events from the + remote user will be ignored. + + The view only preference is intended to support the simple + collaboration scenario where a number of remote users will connect + to a single host to observe something happening on the host + machine. In this scenario the host will no want any of the remote + users to use the pointer or keyboard on the host. + + The default is false because this is not the primary scenario we + are expecting to target. + + + /desktop/gnome/remote_access/require_encryption (bool, default=true) + + If true, the host requires that all connecting client use TLS + encryption. Any clients attempting to use the "None" and "VNC + Authentication" security types will be refused. This will only have + affect the cases where the VNC viewer being used by remote user + does not have support for TLS encryption. If the viewer does have + support, it will always be used. + + The preferences is provided so that the host may make the policy + decision on whether unencrypted connections should be allowed. + + However, in most cases it is expected that the host will require + that only encrypted connections be allowed so as to not allow any + information on the host to be compromised. For this reason, the + default value for the preference is true. + + + /desktop/gnome/remote_access/authentication_methods (list, default=[none]) + + The list of authentication which the server will + advertise. Currently the supported values are "none" and "vnc", + but when certificate based authentication is implemented + "server-cert-with-vnc" and "server-cert-with-client-cert" will + also be supported. + + The preference is provided so as to allow the host user decide + on how remote users should be authenticated. The host may decide + that no authentication is required, that password or certificate + based authentication should be used. + + The default value is "none" because there is no point in having + the default value be "vnc" because no password would be set. + + + /desktop/gnome/remote_access/vnc_password (base64 encoded string, default=<unset>) + + The password used to authenticate the remote user when VNC + authentication is being used. The password is stored in GConf + base64 encoded to provide an extra level of secrecy. However, the + secrecy of the password is guaranteed by the fact that the files + which GConf stores preference values in are only readable by the + user in question. + + +7.7.5. Summary of Security Considerations +========================================= + + ( + How to put this ? There must be some standard methodology to lay + out the specific types of attacks you are and are not protecting + against with different configurations e.g. given the following + configuration: + + + allowed = true + + require_encryption = true + + authentication_methods = [vnc] + + vnc_password = strong-password + + and based on the following assumptions about potential attackers: + + + Has the ability to snoop the intervening network stream. + - Does not have the ability to modify the intervening network + stream. + - Does not have the ability to brute force crack the DES key + given the challenge and response. + - Does not have the ability to spoof an IP address. + + Does not have access to the host machine as either root or the + user who is running the server. + + Does not have any prior knowledge of what the password may be. + + Does not have access to the user's X display. + + Does not have access to the user's GConf daemon. + + then no attacker should be able to: + + + Snoop the host's screen contents from the VNC session. + + Snoop keyboard/pointer/clipboard events from the client. + + Obtain access to the VNC session. + + Obtain shell access to the host machine as root or the user + who is running the server. + + But you are also making assumptions about the behaviour of the + user on both sides - e.g. that the remote user has the correct IP + address and port number for the host she wishes to connect to, and + not the IP address and port number of an attacker. + ) + + What problems remain ? + + + No peer authentication - possibility of man-in-the-middle attacks. + + +8. Host User Interface +====================== + +8.1. Preferences Dialog +======================= + + Menu Entry: + Name = Remote Desktop + Comment = Set your remote desktop access preferences + Categories = GNOME;Application;Settings; + + +-+-------------------------------------------------------+-+-+ + |#| Remote Desktop Preferences |_|X| + +-+-------------------------------------------------------+-+-+ + | | + | ! Some of these preferences are locked down | + | | + | Sharing | + | ------- | + | [ ] Allow other users to view my desktop on their computer | + | [ ] Also allow other users to control my desktop | + | | + | Security | + | -------- | + | When a user tries to view or control my desktop: | + | [ ] Ask me for confirmation | + | [ ] Ensure they are using encryption | + | [ ] Require them to enter this password: | + | Password: ________ | + | | + +-------------------------------------------------------------+ + | <Help> <Close> | + +-------------------------------------------------------------+ + + Notes: + o The "locked down" warning is only displayed if one of the GConf + keys associated with the preferences isn't writable. Each such + non-writable key also causes the appropriate control to be made + insensitive. + o When "Enable remote desktop access" is inactive, the rest of the + controls are insensitive. + o When "Require password for remote access" is inactive, the + "Password" entry is insensitive. + +8.2. Connection Query Dialog +============================ + + This dialog appears when the "Prompt me before allowing +access" preference is set and a remote user connects to the server and +is authenticated. + + +-+----------------------------------------------------------+-+-+ + |#| Question |_|X| + +-+----------------------------------------------------------+-+-+ + | | + | ??? An attempt is being made to access your deskop remotely | + | ??? from '<hostname>' | + | ??? | + | Allow this connection to be completed? | + | | + +----------------------------------------------------------------+ + | <Refuse> <Allow> | + +----------------------------------------------------------------+ + +8.3. Notification Area Icon +=========================== + + Icon which will appear in the notification area when there are +any remote users connected. Clicking on the icon will show the +connections details dialog. + +8.4. Connection Details Dialog +============================== + + Dialog will show the list of remote desktop users, the host +they are connected from and how long they have been connected. You +will be able to disconnect a given user using the dialog. + +9. Client User Interface +======================== + + + Initially a patched version of RealVNC's Java vncviewer. + + Later possibly a integrated into a lockhart type GUI. + +10. See Also +============ + +[1] - The RFB Protocol Specification + http://www.uk.research.att.com/vnc/rfbproto.pdf + +[2] - libvncserver: + http://libvncserver.sourceforge.net/ + +[3] - xf4vnc: + http://xf4vnc.sourceforge.net/ + +[4] - realVNC: + http://www.realvnc.com/ + +[5] - krfb: + http://www.tjansen.de/krfb/ + +[6] - VNC: Where it came from, where it's going: + http://cyberelk.net/tim/articles/VNC/ + +[7] - Using Remote Desktop: + https://www.microsoft.com/windowsxp/pro/using/howto/gomobile/remotedesktop/default.asp + +[8] - Using Remote Assitance: + https://www.microsoft.com/windowsxp/pro/using/howto/gethelp/remoteassist/default.asp + +[9] - FAQ on Remote Desktop: + https://www.microsoft.com/windowsxp/remotedesktop/faq.asp + +[10] - ITU-T T.128 Application Sharing Protocol: + http://www.rdesktop.org/docs/t128.zip + +[11] - rdesktop: A Remote Desktop Protocol Client: + http://www.rdesktop.org/ + +[12] - tsclient: A Frontend for rdesktop: + http://www.gnomepro.com/tsclient/ + +[13] - The Interactive Performace of SLIM: A Stateless, Thin-Client + Architecture: + http://research.sun.com/research/features/tenyears/volcd/papers/nrthcutt.htm + +[14] - XTEST Extension Protocol: + http://www.x.org/pub/R6.6/xc/doc/hardcopy/Xext/xtest.PS.gz + +[15] - XTEST Extension Library: + http://www.x.org/pub/R6.6/xc/doc/hardcopy/Xext/xtestlib.PS.gz + +[16] - XDAMAGE Extension Wiki + http://xlibs.freedesktop.org/Software/DamageExt + +[17] - DNS-Based Service Discovery: + http://files.dns-sd.org/draft-cheshire-dnsext-dns-sd.txt + +[18] - A DNS RR for specifying the location of services (DNS SRV): + http://www.ietf.org/rfc/rfc2782.txt + +[19] - Performing DNS Queries via IP Multicast: + http://files.multicastdns.org/draft-cheshire-dnsext-multicastdns.txt + +[20] - Dynamic Updates in the Domain Name System (DNS UPDATE): + http://www.ietf.org/rfc/rfc2136.txt + +[21] - Example of a brute force VNC passwords cracking tool: + http://www.securiteam.com/tools/Brute_forcing_VNC_passwords.html + +[22] - Example of VNC challenge predictability vulnerability: + http://www.securityfocus.com/archive/1/284064/2003-09-02/2003-09-08/2 + +[23] - Details of how a man-in-the-middle attack on VNC might be + performed: + http://www1.corest.com/common/showdoc.php?idx=117&idxseccion=10 + +[24] - A nice overview of DES encryption: + http://www.tropsoft.com/strongenc/des.htm + +[25] - Cracking DES: Secrets of Encryption Research, Wiretap Politics + & Chip Design + http://cryptome.org/cracking-des.htm + +[26] - Transport Layer Security (TLS) - IETF standardisation of SSL + http://www.ietf.org/html.charters/tls-charter.html + +[27] - The GNU Transport Layer Security Library (gnutls) + http://www.gnu.org/software/gnutls/ + +[28] - Java Secure Sockets Extension + http://java.sun.com/products/jsse/index-14.html + +[29] - Public-Key Infrastructure (X.509) (pkix) + http://www.ietf.org/html.charters/pkix-charter.html + +[30] - OpenPGP Message Format (rfc2440) + http://www.ietf.org/rfc/rfc2440.txt + +[31] - Using OpenPGP keys for TLS authentication + http://www.ietf.org/internet-drafts/draft-ietf-tls-openpgp-keys-03.txt diff --git a/m4/intltool.m4 b/m4/intltool.m4 new file mode 100644 index 0000000..c25b7b1 --- /dev/null +++ b/m4/intltool.m4 @@ -0,0 +1,212 @@ +## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- +## Copyright (C) 2001 Eazel, Inc. +## Author: Maciej Stachowiak <mjs@noisehavoc.org> +## Kenneth Christiansen <kenneth@gnu.org> +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 42 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` +INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + +if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 +fi +AC_SUBST([AM_DEFAULT_VERBOSITY]) + +INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))' +INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))' +INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;' +AC_SUBST(INTLTOOL_V_MERGE) +AC_SUBST(INTLTOOL__v_MERGE_) +AC_SUBST(INTLTOOL__v_MERGE_0) + +INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))' +intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))' +intltool__v_merge_options_0='-q' +AC_SUBST(INTLTOOL_V_MERGE_OPTIONS) +AC_SUBST(intltool__v_merge_options_) +AC_SUBST(intltool__v_merge_options_0) + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@' +else + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir' +fi + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"` + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be executed at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..a644432 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8372 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to <bug-libtool@gnu.org>." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test no != "$with_gnu_ld" && break + ;; + *) + test yes != "$with_gnu_ld" && break + ;; + esac + fi + done + IFS=$lt_save_ifs +else + lt_cv_path_LD=$LD # Let the user override the test with a path. +fi]) +LD=$lt_cv_path_LD +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _LT_PATH_DD +# ----------- +# find a working dd +m4_defun([_LT_PATH_DD], +[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..a1e9047 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,2638 @@ +2009-04-15 Ihar Hrachyshka <booxter@lacinka.org> + + * be.po: Added Belarusian translation by Insomnia. + * LINGUAS: Added be. + +==================== 2.26.1 ======================= + +2009-04-10 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated zh_CN translation. + +2009-04-05 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2009-03-19 Shankar Prasad <svenkate@redhat.com> + + * kn.po: Updated Kannada translations. + +2009-03-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic translation by Usama Akkad. + +2009-03-17 Ignacio Casal Quinteiro <icq@gnome.org> + + * gl.po: Updated Galician translation by Suso Baleato. + +==================== 2.26.0 ======================= + +2009-03-16 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2009-03-16 Amitakhya Phukan <amitakhya@svn.gnome.org> + + * as.po: Updated Assamese translations. + +2009-03-14 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation by Yuriy Penkin. + +2009-03-14 Sandeep Shedmake <sshedmak@redhat.com> + + * mr.po: Updated Marathi Translations. + +2009-03-12 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Fixed an error on the Portuguese translation. + +2009-03-12 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek translation by Jennie Petoumenou. + +2009-03-12 Sweta Kothari <swkothar@redhat.com> + + * gu.po: Committed Gujarati Translation. + +2009-03-11 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2009-03-10 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2009-03-10 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2009-03-09 I. Felix <ifelix@redhat.com> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2009-03-08 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation by Yaron Sharabani. + +2009-03-08 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Pavel Sefranek, + reviewed by Lucas Lommer and Petr Kovar. + +2009-03-07 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2009-03-05 Manoj Kumar Giri <mgiri@redhat.com> + + * or.po: Updated Oriya Translation. + +2009-03-03 Runa Bhattacharjee <runab@redhat.com> + + * bn_IN.po: Updated Bengali India Translation + +==================== 2.25.92 ======================= + +2009-02-28 Og Maciel <ogmaciel@gnome.org> + + * it.po: Updated Italian translation by Milo Casagrande. + +2009-02-27 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hrachyshka. + +2009-02-26 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2009-02-23 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Bruno Brouard and Claude Paroz. + +2009-02-23 Philip Withnall <philip@tecnocode.co.uk> + + * en_GB.po: Updated British English translation. + +2009-02-23 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation by Joan Duran. + +2009-02-22 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish translation. + +2009-02-22 甘露(Gan Lu) <rhythm.gan@gmail.com> + + * zh_CN.po: Updated Chinese Simplified translation + +2009-02-19 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2009-02-19 I. Felix <ifelix@redhat.com> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2009-02-19 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation + +2009-02-18 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Mattias Põldaru + +2009-02-18 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-18 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2009-02-17 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2009-02-14 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation, fixes bug #569457 + +2009-02-14 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-14 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2009-02-14 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-02-13 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2009-02-13 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2009-02-13 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2009-02-13 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2009-02-13 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2009-02-13 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2009-02-12 Jani Monoses <jani@ubuntu.com> + + * ro.po: Updated Romanian translation + by Adi Roiban <adi@roiban.ro> + +2009-02-11 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2009-02-11 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Mattias Põldaru + +2009-02-11 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2009-02-10 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2009-02-10 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2009-02-10 Gil Forcada <gforcada@gnome.org> + + * ast.po: Added Asturian translation on behalf of Mikel González. + * LINGUAS: Added ast. + +2009-02-09 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation by Joan Duran. + +2009-02-07 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2009-02-06 Manoj Kumar Giri <mgiri@redhat.com> + + * or.po: Updated Oriya Translation. + +2009-02-05 Jani Monoses <jani@ubuntu.com> + + * ro.po: Updated Romanian translation + by Adi Roiban <adi@roiban.ro> + +==================== 2.25.90 ======================= + +2009-02-01 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2009-01-29 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2009-01-29 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2009-01-25 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2009-01-24 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2009-01-23 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2009-01-23 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2009-01-22 Runa Bhattacharjee <runab@redhat.com> + + * bn_IN.po: Updated Bengali India Translations + +==================== 2.25.5 ======================= + +2009-01-20 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Claude Paroz and Bruno Brouard. + +2009-01-20 Runa Bhattacharjee <runab@redhat.com> + + * bn_IN.po: Updated Bengali India Translations. + +2009-01-19 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2009-01-12 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2009-01-05 Andre Klapper <a9016009@gmx.de> + + * de.po: Updated German translation. + +2009-01-05 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +==================== 2.25.4 ======================= + +2009-01-03 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Mattias Põldaru + +2008-12-15 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2008-12-18 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2008-12-17 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2008-12-15 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +==================== 2.25.3 ======================= + +2008-12-08 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-12-08 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Mattias Põldaru + +2008-11-29 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-11-25 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-11-22 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-11-08 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2008-10-29 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2008-10-20 Simos Xenitellis <simos@gnome.org> + + * el.po: Updated Greek translation by Nick Agianniotis. + +==================== 2.24.1 ======================= + +2008-10-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Usama Akkad. + +2008-10-11 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Updated Belarusian Latin translation by Ihar Hračyška. + +2008-09-30 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2008-09-22 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Milo Casagrande. + +==================== 2.24.0 ======================= + +2008-09-22 Shankar Prasad <svenkate@redhat.com> + + * kn.po: Updated Kannada Translation + +2008-09-22 Ankitkumar Patel <ankit@redhat.com> + + * gu.po: Updated Gujarati Translations. + +2008-09-22 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Pavel Sefranek. + +2008-09-22 Mugurel Tudor <mugurelu@gnome.ro> + + * ro.po: Updated Romanian translation by + Mişu Moldovan <dumol@gnome.ro> + +2008-09-21 Alexandre Prokoudine <alexandre.prokoudine@gmail.com> + + * ru.po: Updated Russian translation (by Alexey Gultiaev) + +2008-09-20 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation by Ask H. Larsen + +2008-09-20 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Milo Casagrande. + +2008-09-20 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian Translation. + +2008-09-19 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2008-09-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Usama Akkad. + +2008-09-17 Praveen Arimbrathodiyil <pravi.a@gmail.com> + + * ml.po: Malayalam translation updated by Praveen P. + +2008-09-18 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-09-18 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish Translation + +2008-09-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-09-17 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translatiob by Milo Casagrande. + +2008-09-17 Gil Forcada <gforcada@gnome.org> + + * ca.po: Minor fix to Catalan translation by Joan Duran. + +2008-09-15 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation by Joan Duran. + +2008-09-15 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Pavel Sefranek. + +2008-09-15 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-09-14 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Kamil Paral + (bug #551992). + +2008-09-13 Goran Rakić <grakic@devbase.net> + + * sr.po, sr@latin.po: Updated Serbian translation. + +2008-09-13 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2008-09-11 Robert Sedak <robert.sedak@sk.t-com.hr> + + * hr.po: Updated Croatian translation. + +2008-09-09 Andre Klapper <a9016009@gmx.de> + + * de.po: Updated German translation. + +2008-09-09 Robert Sedak <robert.sedak@sk.t-com.hr> + + * hr.po: Updated Croatian translation. + +2008-09-09 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +==================== 2.23.92 ====================== + +2008-09-08 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2008-09-07 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2008-09-07 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2008-09-06 Philip Withnall <philip@tecnocode.co.uk> + + * en_GB.po: Updated British English translation. + +2008-09-05 Tomasz Dominikowski <tdominikowski@aviary.pl> + + * pl.po: Updated Polish translation + +2008-09-05 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Move vino-session.c from here + * POTFILES.skip: to here. + +2008-09-05 Manoj Kumar Giri <mgiri@redhat.com> + + * or.po: Updated Oriya Translation + +2008-09-04 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2008-09-02 Runa Bhattacharjee <runab@redhat.com> + + * bn_IN.po: Updated Bengali India Translation + +2008-09-02 Kjartan Maraas <kmaraas@gnome.org> + + * POTFILES.in: Add missing file. + * nb.po: Updated Norwegian bokmål translation. + +==================== 2.23.91 ====================== + +2008-08-29 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-08-27 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2008-08-27 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-08-26 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-08-25 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2008-08-25 Goran Rakic <grakic@devbase.net> + + * LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin. + +2008-08-25 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2008-08-25 I. Felix <ifelix@redhat.com> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2008-08-25 Sandeep Shedmake <sshedmak@redhat.com> + + * mr.po: Updated Marathi Translations. + +2008-08-24 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-08-23 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-08-23 Og Maciel <ogmaciel@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation by Og Maciel. + +2008-08-19 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-08-18 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation. + +2008-08-18 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-08-18 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + gl.po: Updated Galician translation + +==================== 2.23.90 ====================== + +2008-08-17 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2008-08-16 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-08-16 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-08-15 Leonardo Ferreira Fontenelle <leonardof@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Enrico + Nicoletto. + +2008-08-15 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Mattias Põldaru + +2008-08-14 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2008-08-14 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-08-13 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-08-13 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + gl.po: Updated Galician translation + +2008-08-12 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-08-12 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-08-10 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-08-10 Arangel Angov <arangel@linux.net.mk> + + * mk.po: Updated Macedonian translation. + +2008-08-06 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Fábio Nogueira. + +2008-08-06 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-08-05 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2008-07-29 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-07-29 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2008-07-28 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-07-28 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2008-07-28 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Laurent Pomarede and Claude Paroz. + +2008-06-26 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +==================== 2.23.5 ====================== + +2008-07-22 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian Translation. + +2008-07-21 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2008-07-20 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-07-17 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-07-15 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian Translation. + +2008-07-14 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2008-07-13 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2008-07-10 Matej Urbančič <matej.urban@svn.gnome.org> + + * sl.po: Updated Slovenian translation. + +2008-07-10 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-07-04 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-07-02 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2008-07-01 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2008-06-29 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2008-06-27 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2008-06-11 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2008-06-11 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-06-08 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2008-05-22 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-05-19 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-04-26 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +==================== 2.22.1 ====================== + +2008-03-31 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish translation + +2008-03-31 Eskild Hustvedt <eskildh@gnome.org> + + * nn.po: Updated Norwegian Nynorsk translation + +2008-03-23 Priit Laes <plaes at svn dot gnome dot org> + + * et.po: Translation updated by Ivar Smolin + +2008-03-14 Marcel Telka <marcel@telka.sk> + + * sk.po: Updated Slovak translation. + +2008-03-10 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek translation + +==================== 2.22.0 ====================== + +2008-03-10 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated + +2008-03-09 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danish translation + +2008-03-08 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-03-08 Runa Bhattacharjee <runab@fedoraproject.org> + + * bn_IN.po: Corrected errors to plural forms + +2008-03-07 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Update Ukrainian translation. + +2008-03-06 I. Felix <ifelix@svn.gnome.org> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2008-03-06 Stéphane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2008-03-04 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation. + +2008-03-04 Luca Ferretti <elle.uca@libero.it> + + * it.po: Fixed a couple of typos + +2008-03-04 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation. + +2008-03-03 Ihar Hrachyshka <booxter@lacinka.org> + + * be@latin.po: Added Belarusian Latin translation. + * LINGUAS: Added be@latin. + +2008-03-03 Philip Withnall <pwithnall@svn.gnome.org> + + * en_GB.po: Updated British English translation. + +2008-03-02 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2008-03-01 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2008-03-01 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2008-02-27 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Updated Bengali India Translations + +2008-02-27 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-02-26 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +==================== 2.21.92 ===================== + +2008-02-23 Petr Kovar <pknbe@volny.cz> + + * cs.po: Fixed Czech translation by Pavel Sefranek. + +2008-02-19 Gil Forcada <gforcada@gnome.org> + + * ca.po: Updated Catalan translation. + +2008-02-18 Runa Bhattacharjee <runabh@gmail.com> + + * kn.po: Added Kannada Translations by Shankar Prasad + * LINGUAS: Added Kannada (kn) to the list of languages + +2008-02-18 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2008-02-17 Arangel Angov <arangel@linux.net.mk> + + * mk.po: Updated Macedonian translation. + +2008-02-17 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation + +2008-02-14 Claude Paroz <claude@2xlibre.net> + + * fr.po: Updated French translation by Robert-André Mauchin. + * mn.po: Removed executable bit. + +2008-02-14 Pawan Chitrakar <chautari@gmail.com> + + * ne.po: Updated Nepali Translation. + +2008-02-13 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2008-02-12 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated by István Nyitrai + +2008-02-12 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +==================== 2.21.91 ===================== + +2008-02-09 Petr Kovar <pknbe@volny.cz> + + * cs.po: Updated Czech translation by Pavel Sefranek. + +2008-02-07 Artur Flinta <aflinta@svn.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +2008-02-05 Arangel Angov <arangel@linux.net.mk> + + * mk.po: Updated Macedonian translation. + +2008-02-05 Amitakhya Phukan <amitakhya@svn.gnome.org> + + * LINGUAS: Added as. + * as.po: Updated assamese translations. + +2008-02-04 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Dutch translation updated by Wouter Bolsterlee. + +2008-01-23 Andre Klapper <a9016009@gmx.de> + + * de.po: Updated German translation. + +2008-02-01 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo. + +2008-02-01 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2008-01-31 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo. + +2008-01-31 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +==================== 2.21.90 ===================== + +2008-01-23 Andre Klapper <a9016009@gmx.de> + + * de.po: Updated German translation. + +2008-01-14 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2008-01-07 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Minor correction in the Bengali Indiaa Translation. + +2008-01-05 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-12-31 Yannig Marchegay <yannig@marchegay.org> + + * oc.po: Updated Occitan translation. + +2007-12-28 Rahul Bhalerao <b.rahul.pm@gmail.com> + + * mr.po: Added Marathi translations for Sandeep Shedmake. + * LINGUAS: Added an entry for Marathi(mr). + +2007-12-17 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-12-16 Marcel Telka <marcel@telka.sk> + + * sk.po: Updated Slovak translation. + +2007-12-07 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2007-12-04 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +==================== 2.21.3 ===================== + +2007-11-27 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translaton + by Zhovner Pavel <zhovner@ukr.net> + +2007-11-26 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-11-25 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation + by Vasiliy Faronov <qvvx@yandex.ru> + +2007-11-22 Sunil Mohan Adapa <sunil@atc.tcs.com> + + * LINGUAS, te.po: Added Telugu (te) translation + done by Matapathi Pramod <pramod@swecha.net>. + +2007-11-18 Priit Laes <plaes@svn.gnome.org> + + * et.po: Translation updated by Ivar Smolin. + +==================== 2.21.2 ===================== + +2007-11-12 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2007-10-12 Urbančič Matej <mateju@svn.gnome.org> + + * sl.po: Updated Slovenian translation. + +2007-11-11 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +==================== 2.21.1 ===================== + +2007-10-23 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-10-21 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-10-15 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-10-15 Urbančič Matej <mateju@svn.gnome.org> + + * sl.po: Updates to Slovenian translation. + +==================== 2.20.1 ===================== + +2007-09-24 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation. + +2007-09-19 I. Felix <ifelix@svn.gnome.org> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2007-09-17 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2007-09-17 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +==================== 2.20.0 ===================== + +2007-09-16 Inaki Larranaga Murgoitio <dooteo@zundan.com> + + * eu.po: Updated Basque translation. + +2007-09-13 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-09-12 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation. + +2007-09-12 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Update Ukrainian translation. + +2007-09-10 Danilo Šegan <danilo@gnome.org> + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2007-09-09 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2007-09-07 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2007-09-06 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Translation updated by Wouter Bolsterlee. + +2007-09-04 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2007-09-03 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-09-03 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * ru.po: Updated Russian translation. + +==================== 2.19.92 ==================== + +2007-09-02 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Fixed a typo in pt-br translation. + +2007-09-01 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2007-08-28 Žygimantas Beručka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2007-08-27 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2007-08-24 Stéphane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation. + +2007-08-23 Kenneth Nielsen <k.nielsen81@gmail.com> + + * da.po: Updated Danisk translation. + +2007-08-21 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2007-08-19 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2007-08-19 Artur Flinta <aflinta@svn.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +2007-08-16 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Og Maciel + <og.maciel@gnome.org>. + +2007-08-16 Priit Laes <plaes@svn.gnome.org> + + * et.po: Estonian translation update by Ivar Smolin. + +2007-08-15 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +==================== 2.19.90 ==================== + +2007-08-13 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-08-09 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Updated Bengali India Translation. + +2007-08-09 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2007-08-09 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-08-08 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish translation + +2007-08-08 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2007-08-07 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2007-08-07 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-08-05 Inaki Laranaga Murgoitio <dooteo@zundan.com> + + * eu.po: Updated Basque translation. + +2007-08-02 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2007-08-01 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-08-01 Priit Laes <plaes@svn.gnome.org> + + * et.po: Estonian translation update by Ivar Smolin. + +2007-07-26 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Translation updated by Wouter Bolsterlee. + + * Makefile.in.in: Removed, since this file is supposed + to be autogenerated. + +2007-07-25 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2007-07-24 Priit Laes <plaes@svn.gnome.org> + + * et.po: Estonian translation update by Ivar Smolin. + +2007-07-21 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org> + + * pt_BR.po: Brazilian Portuguese translation updated by Og Maciel + <og.maciel@gnome.org>. + +2007-07-21 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + +2007-07-21 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation by aka.ape <aka.ape@gmail.com>. + +2007-07-21 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2007-07-20 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2007-07-18 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Reinout van Schouwen. + +2007-07-18 Wouter Bolsterlee <wbolster@svn.gnome.org> + + * nl.po: Translation updated by Wouter Bolsterlee. + +2007-07-17 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-07-16 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-07-16 Priit Laes <plaes@svn.gnome.org> + + * et.po: Estonian translation update by Ivar Smolin. + +=================== 2.19.5 ==================== + +2007-07-05 I. Felix <ifelix@svn.gnome.org> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2007-07-02 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-07-01 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-06-30 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation + * Added missing files to POTFILES.in + +2007-06-30 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-06-28 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2007-06-25 I. Felix <ifelix@svn.gnome.org> + + * ta.po: Tamil Translation updated by Tirumurthi Vasudevan + +2007-06-22 I. Felix <ifelix@svn.gnome.org> + + * si.po: Sinhala Translation updated by Danishka Navin + * LINGUAS: Added Sinhala (si) to The List of Languages. + +2007-06-13 Updated dzongkha translation + + * dz.po: Updated dzongkha translation + +2007-06-13 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-06-05 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech Translation. + +2007-05-18 Priit Laes <plaes@svn.gnome.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-05-18 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-05-14 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2007-05-08 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated translation from Espen Stefansen. + +2007-05-2 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-04-23 Jakub Friedl <jfriedl@suse.cz> + + * cs.po: Updated Czech Translation. + +2007-04-23 David Lodge <dave@cirt.net> + + * en_GB.po: Updated British English translation + +2007-04-22 Jorge Gonzalez <jorgegonz@svn.gnome.org> + + * es.po: Updated Spanish translation. + +2007-04-21 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-04-19 Funda Wang <fundawang@gmail.com> + + * zh_CN.po: Updated Simplified Chinese translation from Yang Zhang. + +2007-04-14 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +==================== 2.18.1 ==================== + +2007-04-09 Jonh Wendell <jwendell@gnome.org> + * POTFILES.skip: Reverted Ignacio's change + +2007-04-03 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2007-03-31 Inaki Larranaga Murgoitio <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2007-03-30 Claudio Saavedra <csaavedra@alumnos.utalca.cl> + + * es.po: Updated Spanish translation by Maria Majadas. + +2007-03-25 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + * POTFILE.skip: Updated + +==================== 2.18.0 ==================== + +2007-03-25 Peter Bach <bach.peter@gmail.com> + + * da.po: Updated Danish translation. + +2007-03-11 Takeshi AIHANA <takeshi.aihana@gmail.com> + + * ja.po: Updated Japanese translation. + +2007-03-10 Danilo Šegan <danilo@gnome.org> + + * sr.po, sr@Latn.po: Updated Serbian translation. + +2007-03-10 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +2007-03-08 Simos Xenitellis <simos@gnome.org> + + * el.po: Updated Greek translation by Athanasios Lefteris <alefteris@gmail.com>. + +2007-03-06 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2007-03-05 Jonh Wendell <jwendell@gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2007-03-05 Luca Ferretti <elle.uca@libero.it> + + * it.po: Updated Italian translation by Milo Casagrande. + +2007-03-06 Simos Xenitellis <simos@gnome.org> + + * el.po: Updated Greek translation. + +2007-03-04 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha Translation + +2007-03-03 Artur Flinta <aflinta@svn.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +2007-03-03 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Reinout van Schouwen. + +2007-03-01 Maxim Dziumanenko <dziumanenko@gmail.com> + + * uk.po: Updated Ukrainian translation. + +2007-02-28 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2007-02-27 Gintautas Miliauskas <gintas@akl.lt> + + * lt.po: Updated Lithuanian translation. + +==================== 2.17.92 ==================== + +2007-02-25 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2007-02-24 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-02-21 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Dutch translation updated by Reinout van Schouwen. + +2007-02-20 Leonid Kanter <leon@asplinux.ru> + + * ru.po: Updated Russian translation + +2007-02-20 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-02-15 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2007-02-13 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2007-02-12 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2007-02-06 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org> + + * pt_BR.po: Fix in Plural-Forms, by Igor Pires Soares + <igor@projetofedora.org>. + +2007-02-06 Stéphane Raimbault <stephane.raimbault@gmail.com> + + * fr.po: Updated French translation by Robert-André Mauchin, + Jonathan Ernst and Claude Paroz. + +2007-02-06 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2007-02-03 Jonh Wendell <jwendell@svn.gnome.org> + + * pt_BR.po: Revised Brazilian Portuguese translation. + +2007-02-04 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2007-02-03 Leonardo Ferreira Fontenelle <leonardof@svn.gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. Fixes bug + #401252. + +2007-01-28 Nguyễn Thái Ngọc Duy <pclouds@gmail.com> + + * vi.po: Updated Vietnamese translation. + +2007-01-28 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2007-01-27 Priit Laes <plaes@svn.gnome.org> + + * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>. + +2007-01-26 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com> + + * ca.po: Fix plural forms in Catalan translation. + +2007-01-24 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2007-01-18 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2007-01-17 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2007-01-15 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-01-14 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2007-01-11 Raphael Higino <raphaelh@svn.gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2007-01-11 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2007-01-10 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-01-09 Priit Laes <plaes@svn.gnome.org> + + * et.po: Estonian translation update by Ivar Smolin <okul@linux.ee>. + +2007-01-09 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2007-01-09 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +==================== 2.17.5 ==================== + +2007-01-08 Satoru SATOH <ss@gnome.gr.jp> + + * ja.po: Updated Japanese translation. + +2007-01-07 Mark McLoughlin <mark@skynet.ie> + + * POTFILES.in: remove vino-fb.c and vino-server.c + +2007-01-04 Hendrik Richter <hendrikr@gnome.org> + + * de.po: Updated German translation. + +2007-01-3 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-01-01 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation + +2006-12-29 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation + * POTFILES.skip: Add this and add a file there. + +2006-12-29 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-12-27 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation. + +2006-12-25 Raivis Dejus <orvils@gmail.com> + + * lv.po: Updated Latvian Translation. + +2006-12-25 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-12-24 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation. + +2006-12-23 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-12-22 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-22 Jonh Wendell <jwendell@cvs.gnome.org> + + * POTFILES.in: added server/vino-dbus-listener.c + +2006-12-22 Hendrik Brandt <heb@gnome-de.org> + + * de.po: Updated German translation. + +2006-12-20 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +==================== 2.17.4 ==================== + +2006-12-18 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-18 Djihed Afifi <djihed@gmail.com> + + * ar.po: Updated Arabic Translation. + +2006-12-16 Mohammad DAMT <mdamt@gnome.org> + + * id.po: Updated Indonesian translation. Fixes #385118. + +2006-12-15 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-12-13 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-12-13 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update Norwegian bokmål translation. + +2006-12-12 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-12-12 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-12-11 Jonh Wendell <jwendell@cvs.gnome.org> + + * POTFILES.in: added server/vino-status-icon.c + +2006-12-11 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +==================== 2.17.2 ==================== + +2006-11-06 Mark McLoughlin <mark@skynet.ie> + + * POTFILES.in: remove vino-url.c + +2006-10-27 Luca Ferretti <elle.uca@libero.it> + + * it.po: Fixed a couple of typos. + +2006-10-27 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-10-22 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated French translation. + +2006-10-20 Pawan Chitrakar <pchitrakar@gmail.com> + + * ne.po: Updated Nepali Translation + +2006-10-18 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-10-15 Marcel Telka <marcel@telka.sk> + + * sk.po: Updated Slovak translation. + +2006-10-16 Satoru SATOH <ss@gnome.gr.jp> + + * ja.po: Updated Japanese translation. + +2006-10-15 Francisco Javier F. Serrador <serrador@openshine.com> + + * es.po: Updated Spanish translation. + +2006-10-15 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated by Ivar Smolin. + +2006-10-14 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated by Ivar Smolin. + +2006-10-14 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation. + +2006-10-14 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-10-13 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Alexander Shopov <ash@contact.bg> + +2006-10-13 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-10-13 Mark McLoughlin <mark@skynet.ie> + + * Makefile.in.in: flush auto-generated changes. + +==================== 2.16.0 ==================== + +2006-09-24 Pawan Chitrakar <pchitrakar@gmail.com> + + * ne.po: Updated Nepali Translation + +2006-09-10 David Lodge <dave@cirt.net> + + * en_GB.po: Updated English (British) translation. + +2006-09-01 Jovan Naumovski <jovan@lugola.net> + + * mk.po: Updated Macedonian translation. + +2006-08-22 Matic Žgur <mr.zgur@gmail.com> + + * sl.po: Updated Slovenian translation. + +2006-08-16 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Translation updated. + +2006-08-05 Ani Peter <peter.ani@gmail.com> + + * ml.po: Added Malayalam translation + +2006-08-01 Arangel Angov <ufo@linux.net.mk> + + * sl.po: Added Slovenian Translation. + +2006-07-03 Runa Bhattacharjee <runabh@gmail.com> + + * bn_IN.po: Added Bengali India Translation + +2006-06-04 Marcel Telka <marcel@telka.sk> + + * sk.po: Updated Slovak translation. + +2006-05-06 Pema Geyleg <pema.geyleg@gmail.com> + + * dz.po: Updated Dzongkha translation. + +2006-04-26 Gora Mohanty <gmohanty@cvs.gnome.org> + + * lv.po: Added Latvian translation by Raivis Dejus <orvils@gmail.com> + +2006-04-23 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2006-04-19 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-04-02 Vladimer Sichinava <vlsichinava@gmail.com> + + * ka.po: Added Georgian translation. + +2006-03-27 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Updated Hebrew translation. + +2006-03-21 Gora Mohanty <gmohanty@cvs.gnome.org> + + * or.po: Updated Oriya translation. + +2006-03-14 Dan Damian <dand@gnome.ro> + + * ro.po: Updated Romanian translation. + +2006-03-13 Runa Bhattacharjee <runa@bengalinux.org> + + * bn.po: Updated Bengali Translation. + +2006-03-12 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Updated Italian translation. + +2006-03-12 Priit Laes <amd@store20.com> + + * et.po: Translation updated by Ivar Smolin. + +2006-03-09 Daniel Nylander <po@danielnylander.se> + + * sv.po: Updated Swedish translation + +2006-03-06 Rajesh Ranjan <rranjan@redhat.com> + + * hi.po: Updated Hindi Translation. + +2006-03-05 Artur Flinta <aflinta@cvs.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +2006-03-03 Maxim Dziumanenko <mvd@mylinux.ua> + + * uk.po: Updated Ukrainian translation. + +2006-03-02 Rhys Jones <rhys@sucs.org> + + * cy.po: Updated Welsh translation. + +2006-03-01 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2006-02-28 Leonid Kanter <leon@asplinux.ru> + + * ru.po: Updated Russian translation + +2006-02-26 Raphael Higino <raphaelh@cvs.gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2006-02-25 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + * zh_HK.po: Added Traditional Chinese translation(Hong Kong). + +2006-02-23 Satoru SATOH <ss@gnome.gr.jp> + + * ja.po: Updated Japanese translation. + +2006-02-23 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2006-02-23 Žygimantas Beručka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2006-02-22 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Updated Basque translation. + +2006-02-18 Benoît Dejean <benoit@placenet.org> + + * fr.po: Updated French translation. + +2006-02-14 Hendrik Richter <hendi@gnome-de.org> + + * de.po: Updated German translation. + +2006-02-13 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2006-02-12 Kostas Papadimas <pkst@gnome.org> + + * el.po Updated Greek Translation + +2006-02-07 Priit Laes <amd@store20.com> + + * et.po: Translation updated. + +2006-02-02 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2006-01-31 Slobodan D. Sredojevic <slobo@akrep.be> + + * sr.po, sr@Latn.po: Updated Serbian translation + +2006-01-31 Slobodan D. Sredojevic <slobo@akrep.be> + + * sr.po, sr@Latn.po: Updated Serbian translation + +2006-01-29 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Hungarian translation updated. + +2006-01-29 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Updated Thai translation. + +2006-01-27 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2006-01-24 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Tino Meinen. + +2006-01-22 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + * no.po: Same. + +2006-01-22 Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2006-01-19 Lasse Bang Mikkelsen <lbm@fatalerror.dk> + + * da.po: Updated Danish translation. + +2006-01-18 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated by Ivar Smolin. + +2006-01-18 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2006-01-16 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2006-01-16 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician Translation. + +2006-01-16 Francisco Javier F. Serrador <serrador@cvs.gnome.org> + + * es.po: Updated Spanish translation. + +2006-01-16 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2006-01-15 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2006-01-15 Mark McLoughlin <mark@skynet.ie> + + * POTFILES.in: add server/vino-mdns.c + +==================== 2.13.5 ==================== + +2005-11-14 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Vladimir Petkov <vpetkov@i-space.org> + +2005-10-27 Erdal Ronahi <erdal.ronahi@gmail.com> + + * ku.po: Added Kurdish translation. + +2005-09-21 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Updated Italian translation. + +2005-09-08 Inaki Larranaga <dooteo@euskalgnu.org> + + * eu.po: Added Basque translation. + +==================== 2.12.0 ==================== + +2005-09-05 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Updated Turkish Translation + +2005-09-04 Roozbeh Pournader <roozbeh@farsiweb.info> + + * fa.po: Added Persian translation by Elnaz Sarbar + <elnaz@farsiweb.info> and Meelad Zakaria <meelad@farsiweb.info>. + +2005-09-03 Danilo Šegan <danilo@gnome.org> + + * sr.po, sr@Latn.po: Updated by Andrija Zarić. + +2005-09-02 Leonid Kanter <leon@asplinux.ru> + + * ru.po: Updated Russian translation + +2005-08-31 Žygimantas Beručka <zygis@gnome.org> + + * lt.po: Updated Lithuanian translation. + +2005-08-31 Satoru SATOH <ss@gnome.gr.jp> + + * ja.po: Updated Japanese translation. + +2005-08-30 Hendrik Richter <hendi@gnome-de.org> + + * de.po: Updated German translation. + +2005-08-29 Telsa Gwynne <hobbit@aloss.ukuu.org.uk> + + * cy.po: Updated Welsh translation. + +2005-08-29 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2005-08-27 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Updated French translation. + +==================== 2.11.92 ==================== + +2005-08-22 Dan Damian <dand@gnome.ro> + + * ro.po: Updated Romanian translation. + +2005-08-21 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated by Ivar Smolin. + +2005-08-15 Maxim Dziumanenko <mvd@mylinux.com.ua> + + * uk.po: Added Ukrainian translation. + +2005-08-15 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Hungarian translation updated. + +2005-08-13 Kostas Papadimas <pkst@gnome.org> + + * el.po Updated Greek Translation + +2005-08-11 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2005-08-06 Josep Puigdemont <josep.puigdemont@gmail.com> + + * ca.po: Updated Catalan translation. + +2005-08-02 Chao-Hsiung Liao <j_h_liau@yahoo.com.tw> + + * zh_TW.po: Updated Traditional Chinese translation. + +2005-07-31 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2005-07-30 Raphael Higino <raphaelh@cvs.gnome.org> + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2005-07-28 Artur Flinta <aflinta@cvs.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +==================== 2.11.90 ==================== + +2005-07-25 Ilkka Tuohela <hile@iki.fi> + + * fi.po: Updated Finnish translation. + +2005-07-24 Clytie Siddall <clytie@riverland.net.au> + + * vi.po: Updated Vietnamese translation. + +2005-07-21 Ankit Patel <ankit644@yahoo.com> + + * gu.po: Updated Gujarati Translation. + +2005-07-19 Yair Hershkovitz <yairhr@gmail.com> + + * he.po: Added Hebrew translation. by Oldie + +2005-07-18 Theppitak Karoonboonyanan <thep@linux.thai.net> + + * th.po: Added Thai translation. + +2005-07-04 Hendrik Richter <hendi@gnome-de.org> + + * de.po: Fixed German translation by + Jens Seidel <jensseidel@users.sf.net>. + +2005-06-27 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Fix the header so we get the right charset. + * no.po: Same. + +2005-06-25 Francisco Javier F. Serrador <serrador@cvs.gnome.org> + + * es.po: Updated Spanish translation. + +2005-06-22 Abel Cheung <maddog@linuxhall.org> + + * zh_TW.po: Fix language team reference. + +2005-06-13 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2005-06-11 Marcel Telka <marcel@telka.sk> + + * sk.po: Updated Slovak translation. + +2005-06-11 Martin Willemoes Hansen <mwh@sysrq.dk> + + * da.po: Updated Danish translation. + +2005-06-10 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated by Ronald van Engelen. + +2005-06-08 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2005-06-06 Ignacio Casal Quinteiro <nacho.resa@gmail.com> + + * gl.po: Updated Galician translation. + +2005-05-29 Terance Sola <terance@lyse.net> + + * nb.po: Updated + * no.po: Updated + +2005-05-29 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2005-05-23 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated. + +2005-05-23 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +==================== 2.11.1.2 ==================== + +==================== 2.11.1.1 ==================== + +==================== 2.11.1 ==================== + +2005-05-11 Kostas Papadimas <pkst@gnome.org> + + * el.po Updated Greek Translation + +2005-05-03 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated. + +2005-05-03 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated. + +2005-04-19 Pablo Saratxaga <pablo@mandriva.com> + + * wa.po: Added Walloon file + +2005-4-14 Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch> + + * ug.po: Added Uighur translation. + +2005-03-31 Steve Murphy <murf@e-tools.com> + + * rw.po: Added Kinyarwanda translation. + +2005-03-30 Adi Attar <aattar@cvs.gnome.org> + + * xh.po: Added Xhosa translation. + +2005-03-29 Gabor Kelemen <kelemeng@gnome.hu> + + * hu.po: Hungarian translation updated. + +2005-03-27 Pawan chitrakar <pawan@nplinux.org> + + * ne.po: Updated Nepali Translation + +2005-03-17 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2005-03-13 Srishtee Gurung <srishtee@mpp.org.np> + + * ne.po: Updated Nepali Translation + +2005-03-08 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation updated. + +==================== 2.10.0 ==================== + +2005-03-05 Abel Cheung <maddog@linuxhall.org> + + * zh_TW.po: Updated traditional Chinese translation from GNOME HK Team + +2005-03-02 Josep Puigdemont <josep@imatge-sintetica.com> + + * ca.po: Updated Catalan translation + +2005-03-02 Rajesh Ranjan <rranjan@redhat.com> + + * hi.po: Added HIndi Translation. + +2005-02-21 Pawan Chitrakar <pawan@nplinux.org> + + * ne.po: Added Nepali Translation + +2005-02-10 Priit Laes <plaes@cvs.gnome.org> + + * et.po: Translation added. + +2005-02-09 Rhys Jones <rhys@sucs.org> + + * cy.po: Further typo fixes. + +2005-02-09 Rhys Jones <rhys@sucs.org> + + * cy.po: Updated Welsh translation for typo-fixing etc. + +2005-02-08 Leonid Kanter <leon@asplinux.ru> + + * ru.po: Updated Russian translation + +2005-01-31 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2005-01-29 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2005-01-27 Žygimantas Beručka <uid0@akl.lt> + + * lt.po: Udpated Lithuanian translation. + +2005-01-19 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Update + * no.po: Update + +2004-12-12 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2004-12-01 Dafydd Harries <daf@muse.19inch.net> + + * cy.po: New Welsh translation from Bryn Salisbury. + +2004-11-30 Åsmund Skjæveland <aasmunds@fys.uio.no> + + * nn.po: Updated Norwegian Nynorsk translation. + +==================== 2.9.2 ==================== + +2004-11-25 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Updated Norwegian bokmål translation. + +2004-11-14 Žygimantas Beručka <uid0@akl.lt> + + * lt.po: Added Lithuanian translation. + +2004-10-27 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2004-10-25 Sanlig Badral <badral@openmn.org> + + * mn.po: Added Mongolian translation by Erkhembaatar. + +2004-10-22 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Updated Italian translation. + +2004-10-16 Marcel Telka <marcel@telka.sk> + + * sk.po: Added Slovak translation. + +==================== 2.8.1 ==================== + +2004-10-12 Mohammad DAMT <mdamt@bisnisweb.com> + + * id.po: added Indonesian translation + +==================== 2.8.0.1 ==================== + +2004-09-28 Gora Mohanty <gmohanty@cvs.gnome.org> + + * or.po: Updated Oriya translation. + +2004-09-28 Åsmund Skjæveland <aasmunds@fys.uio.no> + + * nn.po: Started Norwegian Nynorsk translation. + +2004-09-27 Leonid Kanter <leon@asplinux.ru> + + * Initial Russian translation + +2004-09-27 Mark McLoughlin <mark@skynet.ie> + + * *.po: copy the translation of + "There was an error displaying help:\n%s" + from gnome-netstatus. + +2004-09-26 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +==================== 2.8.0 ==================== + +2004-09-13 Mətin Əmirov <metin@karegen.com> + + * az.po: Translation added. + +2004-09-12 Mugurel Tudor <mugurelu@go.ro> + + * ro.po: Added Romanian translation + by Mişu Moldovan <dumol@go.ro> + +2004-09-12 Abel Cheung <maddog@linuxhall.org> + + * zh_TW.po: New traditional Chinese translation by GNOME HK Team.. + +2004-09-11 Jordi Mallach <jordi@sindominio.net> + + * ca.po: Added Catalan translation by + Josep Puigdemont i Casamajó <josep@imatge-sintetica.com>. + +2004-09-11 Baris Cicek <baris@teamforce.name.tr> + + * tr.po: Added Turkish Translation + +2004-09-08 Arafat Medini <lumina@arabeyes.org> + + * ar.po: Added Arabic translation + +2004-09-06 Nikos Charonitakis <charosn@her.forthnet.gr> + + * el.po: Updated Greek translation. + +2004-09-06 Kostas Papadimas <pkst@gnome.org> + + * el.po: Updated Greek translation + +2004-09-05 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +2004-09-04 Jayaradha <njaya@redhat.com> + + * ta.po: Added Tamil translation. +2004-09-02 Alessio Frusciante <algol@firenze.linux.it> + + * it.po: Added Italian translation. + +==================== 2.7.92 ==================== + +2004-08-30 Christian Neumair <chris@gnome-de.org> + + * de.po: Added German translation. + +2004-08-28 Akagic Amila <bono@linux.org.ba> + + * bs.po: Added Bosnian translation. + +2004-08-27 Iñaki Larrañaga <dooteo@euskalgnu.org> + + * eu.po: Added Basque translation. + +2004-08-27 Kostas Papadimas <pkst@gnome.org> + + * el.po: Added Greek translation + +2004-08-26 Takeshi AIHANA <aihana@gnome.gr.jp> + + * ja.po: Updated Japanese translation by + Satrou SATOH <ss@gnome.gr.jp>. + +2004-08-25 Ole Laursen <olau@hardworking.dk> + + * da.po: Updated Danish translation. + +2004-08-25 Maxim Dziumanenko <mvd@mylinux.com.ua> + + * uk.po: Added Ukrainian translation. + +2004-08-23 Sami Pesonen <sampeson@iki.fi> + + * fi.po: Updated Finnish translation after QA review. + +2004-08-22 Sami Pesonen <sampeson@iki.fi> + + * fi.po: Added Finnish translation. + +2004-08-21 Changwoo Ryu <cwryu@debian.org> + + * ko.po: Added Korean translation by Young-Ho Cha. + +2004-08-21 Kjartan Maraas <kmaraas@gnome.org> + + * nb.po: Add this. + +2004-08-20 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2004-08-19 Takeshi AIHANA <aihana@gnome.gr.jp> + + * ja.po: Added Japanese translation by + Satrou SATOH <ss@gnome.gr.jp>. + +2004-08-18 Hasbullah Bin Pit <sebol@my-penguin.org> + + * ms.po: Added Malay translation. + +2004-08-18 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2004-08-18 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Updated Albanian translation by Elian Myftiu. + +2004-08-18 Christophe Merlet <redfox@redfoxcenter.org> + + * fr.po: Added French translation from + Audrey Simons <asimons@redhat.com>. + +2004-08-17 Ole Laursen <olau@hardworking.dk> + + * da.po: Added Danish translation. + +==================== 2.7.91 ==================== + +2004-08-15 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Fixed a typo on the Portuguese translation. + +2004-08-14 Artur Flinta <aflinta@cvs.gnome.org> + + * pl.po: Updated Polish translation by GNOME PL Team. + +==================== 2.7.90 ==================== + +2004-08-09 Ankit Patel <ankit@redhat.com> + + * gu.po: Updated Gujarati translation. + +2004-08-09 Amanpreet Singh Alam <aalam@redhat.com> + + * pa.po: Updated Panjabi translation. + +2004-08-07 Danilo Šegan <dsegan@gmx.net> + + * sr.po, sr@Latn.po: Added Serbian translation. + +2004-08-06 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Updated Simplified Chinese translation. + +2004-08-05 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Updated Portuguese translation. + +2004-08-03 Laszlo Dvornik <dvornik@gnome.hu> + + * hu.po: Added Hungarian translation by Gabor Kelemen. + +2004-08-02 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Updated Canadian English translation. + +2004-08-01 Sayamindu Dasgupta <sayamindu@gnome.org> + + * bn.po: Added Bengali translation by + Runa Bhattacharjee <runab@redhat.com> + +2004-08-01 Francisco Javier F. Serrador <serrador@cvs.gnome.org> + + * es.po: Added Spanish translation. + +2004-07-31 Kjartan Maraas <kmaraas@gnome.org> + + * no.po: Added Norwegian translation. + +2004-07-29 Laurent Dhima <laurenti@alblinux.net> + + * sq.po: Added Albanian translation by Elian Myftiu. + +2004-07-27 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav "zbrox" Raykov <zbrox@i-space.org> + +2004-07-24 David Lodge <dave@cirt.net> + + * en_GB.po: Updated British translation. + +2004-07-24 Alexander Shopov <ash@contact.bg> + + * bg.po: Updated Bulgarian translation by + Rostislav Raykov <zbrox@i-space.org> + +2004-07-24 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation updated. + +==================== 2.7.4 ==================== + +2004-07-14 Gustavo Maciel Dias Vieira <gustavo@sagui.org> + + * pt_BR.po: Updated Brazilian Portuguese translation done by + Raphael Higino <raphaelh@uai.com.br>. + +2004-07-14 Christian Rose <menthos@menthos.com> + + * sv.po: Updated Swedish translation. + +2004-07-13 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Updated Czech translation. + +==================== 2.7.3.1 ==================== + +==================== 2.7.3 ==================== + +2004-06-19 Vincent van Adrighem <adrighem@gnome.org> + + * nl.po: Translation added by Elros Cyriatan. + +2004-06-10 Gustavo Noronha Silva <kov@debian.org> + + * pt_BR.po: added translation done by + "Raphael Higino" <raphaelh@uai.com.br> + +2004-06-07 Funda Wang <fundawang@linux.net.cn> + + * zh_CN.po: Added Simplified Chinese translation. + +2004-06-06 Alexander Shopov <ash@contact.bg> + + * bg.po: Added Bulgarian translation by + Rostislav Raikov <zbrox@i-space.org> + +2004-06-02 Gareth Owen <gowen72@yahoo.com> + + * en_GB.po: Added British English translation + +2004-05-31 Duarte Loreto <happyguy_pt@hotmail.com> + + * pt.po: Added Portuguese translation. + +2004-05-30 Adam Weinberger <adamw@gnome.org> + + * en_CA.po: Added Canadian English translation. + +2004-05-29 Miloslav Trmac <mitr@volny.cz> + + * cs.po: Added Czech translation. + +2004-05-27 Christian Rose <menthos@menthos.com> + + * sv.po: Added Swedish translation. + * POTFILES.in: Added missing entries. + * .cvsignore: Sorted and added entry. + +==================== 0.14 ==================== + +==================== 0.12 ==================== + +==================== 0.11 ==================== + +==================== 0.10 ==================== + +==================== 0.9 ==================== + +==================== 0.8 ==================== + +2003-11-04 Mark McLoughlin <mark@skynet.ie> + + * POTFILES.in: add a few more files. + +2003-10-29 Mark McLoughlin <mark@skynet.ie> + + * POTFILES.in: update. + +2003-10-20 Mark McLoughlin <mark@skynet.ie> + + * Initial import. diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..d1ab6fd --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,90 @@ +# please keep this list sorted alphabetically +# +an +ar +as +ast +az +be +be@latin +bg +bn +bn_IN +bs +ca +ca@valencia +cs +cy +da +de +dz +el +en_CA +en_GB +en@shaw +eo +es +et +eu +fa +fi +fr +fur +ga +gl +gu +he +hi +hr +hu +id +is +it +ja +ka +kk +km +kn +ko +ku +lt +lv +mai +mk +ml +mn +mr +ms +nb +ne +nl +nn +oc +or +pa +pl +pt +pt_BR +ro +ru +rw +si +sk +sl +sq +sr +sr@latin +sv +ta +te +tg +th +tr +ug +uk +vi +wa +xh +zh_CN +zh_HK +zh_TW diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..fcd2c3b --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,221 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com> +# +# This file may be copied and used freely without restrictions. It may +# be used in projects which are not available under a GNU Public License, +# but which still want to provide support for the GNU gettext functionality. +# +# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman <jacob@ximian.com> to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize +# +# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool +# +# We have the following line for use by intltoolize: +# INTLTOOL_MAKEFILE + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = @top_builddir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datadir = @datadir@ +datarootdir = @datarootdir@ +libdir = @libdir@ +localedir = @localedir@ +subdir = po +install_sh = @install_sh@ +# Automake >= 1.8 provides @mkdir_p@. +# Until it can be supposed, use the safe fallback: +mkdir_p = $(install_sh) -d + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +XGETTEXT = @XGETTEXT@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist +GENPOT = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot + +ALL_LINGUAS = @ALL_LINGUAS@ + +PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) + +USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) + +USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) + +POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) + +DISTFILES = Makefile.in.in POTFILES.in $(POFILES) +EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS + +POTFILES = \ +# This comment gets stripped out + +CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) + +.SUFFIXES: +.SUFFIXES: .po .pox .gmo .mo .msg .cat + +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V)) +INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL__v_MSGFMT_0 = @echo " MSGFMT" $@; + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $* $(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $< + +.po.gmo: + $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && gencat $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: $(CATALOGS) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(GENPOT) + +install: install-data +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $$dir; \ + if test -r $$lang.gmo; then \ + $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$lang.gmo as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ + fi; \ + if test -r $$lang.gmo.m; then \ + $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + if test -r $(srcdir)/$$lang.gmo.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$lang.gmo.m as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + true; \ + fi; \ + fi; \ + done + +# Empty stubs to satisfy archaic automake needs +dvi info ctags tags CTAGS TAGS ID: + +# Define this as empty until I found a useful application. +install-exec installcheck: + +uninstall: + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + +check: all $(GETTEXT_PACKAGE).pot + rm -f missing notexist + srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m + if [ -r missing -o -r notexist ]; then \ + exit 1; \ + fi + +mostlyclean: + rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp + rm -f .intltool-merge-cache + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES stamp-it + rm -f *.mo *.msg *.cat *.cat.m *.gmo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f Makefile.in.in + +distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: $(DISTFILES) + dists="$(DISTFILES)"; \ + extra_dists="$(EXTRA_DISTFILES)"; \ + for file in $$extra_dists; do \ + test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ + done; \ + for file in $$dists; do \ + test -f $$file || file="$(srcdir)/$$file"; \ + ln $$file $(distdir) 2> /dev/null \ + || cp -p $$file $(distdir); \ + done + +update-po: Makefile + $(MAKE) $(GETTEXT_PACKAGE).pot + tmpdir=`pwd`; \ + linguas="$(USE_LINGUAS)"; \ + for lang in $$linguas; do \ + echo "$$lang:"; \ + result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ + if $$result; then \ + if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.gmo failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi; \ + done + +Makefile POTFILES: stamp-it + @if test ! -f $@; then \ + rm -f stamp-it; \ + $(MAKE) stamp-it; \ + fi + +stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ + $(SHELL) ./config.status + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..aa0fabd --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,16 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +common/org.gnome.Vino.gschema.xml +server/smclient/eggdesktopfile.c +server/smclient/eggsmclient.c +server/vino-dbus-listener.c +server/vino-main.c +server/vino-mdns.c +server/vino-prefs.c +server/vino-prompt.c +server/vino-server.c +server/vino-server.desktop.in.in +server/vino-status-icon.c +server/vino-status-tube-icon.c +server/vino-tube-server.c +server/vino-util.c diff --git a/po/POTFILES.skip b/po/POTFILES.skip new file mode 100644 index 0000000..89d5473 --- /dev/null +++ b/po/POTFILES.skip @@ -0,0 +1,2 @@ +server/vino-server.desktop.in +sub/server/vino-server.desktop.in diff --git a/po/an.po b/po/an.po new file mode 100644 index 0000000..d8ef362 --- /dev/null +++ b/po/an.po @@ -0,0 +1,681 @@ +# Aragonese translation for vino. +# Copyright (C) 2013 vino's COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-09-16 20:29+0000\n" +"PO-Revision-Date: 2013-09-18 18:25+0100\n" +"Last-Translator: Daniel Martinez <entaltoaragon@gmail.com>\n" +"Language-Team: Aragonese <softaragones@googlegroups.com>\n" +"Language: an\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Activar acceso remoto a o escritorio" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Si ye verdadero, permite l'acceso a o escritorio por meyo d'o protocolo RFB. " +"Os usuarios en as maquinas remotas podrán alavez connectar-se a o escritorio " +"usando un visor VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Preguntar a l'usuario antes de completar una connexión" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si ye verdadero, os usuarios remotos que accedeixcan a o escritorio, no se " +"les concede l'acceso dica que l'usuario en a maquina anfitriona apreba a " +"connexión. Recomendau especialment quan l'acceso no ye protechiu por clau." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir solament a os usuarios remotos veyer o escritorio" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Si ye verdadero, a os usuarios remotos que accedeixcan a o escritorio " +"solament se les permite veyer o escritorio. Os usuarios remotos no podrán " +"usar o rato u o teclau." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interficie de ret en a quala escuitar" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Si no ye establida, o servidor escuitará en todas as interficies de ret.\n" +"\n" +"Estableixca ista opción si quiere acceptar connexions solament dende una " +"interficie de ret especifico. Ej: eth0, wifi0, lo, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Escuitar en un puerto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Si ye cierto, o servidor escuitará en unatro puerto, en cuenta d'en o " +"predeterminau (5900). O puerto debe especificar-se en 'alternative_port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Numero de puerto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"O puerto en o qual o servidor escuitará si s'activa 'use_alternative_port'. " +"As valors validas son en o rango de 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Requerir zifrau" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si ye cierto, se requerirá que os usuarios remotos que accedeixcan a o " +"escritorio suporten zifrau. Se recomienda encareixidament usar un client que " +"suporte zifrau de no estar que o ret interviniente sía de confianza." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Metodos d'autenticación permitius" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista os metodos d'autenticación con os quals os usuarios remotos pueden " +"accedir a o escritorio.\n" +"\n" +"I hai dos metodos d'autenticación posibles: 'vnc' fa que se le pregunte una " +"clau a l'usuario remoto (a clau s'especifica en a clau vnc_password-key) " +"antes de connectar-se y «none», que permite connectar-se a qualsiquier " +"usuario remoto." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Se requiere una clau ta l'autenticación 'vnc'" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"A clau por a quala se le preguntará a l'usuario remoto si s'usa o metodo " +"d'autenticación «vnc».A clau especificada por a clau ye codificada en " +"base64.\n" +"\n" +"A valor especial de 'keyring' (que no ye valido ta base64) significa que a " +"clau s'alza en o depósito de claus de GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Adreza de correu-y a la quala habría de ninviar-se l'URL d'o escritorio " +"remoto" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ista clau especifica l'adreza de correu-y a la quala se ninvia l'URL d'o " +"escritorio remoto si l'usuario preta en l'URL en o dialogo de preferencias " +"d'a Compartición d'escritorio." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Blocar a pantalla quan se desconnecte o zaguer usuario" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Si ye cierto, a pantalla se blocará dimpués que o zaguer client se " +"desconnecte." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Quán se debe amostrar l'icono d'estau" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ista clau controla o comportamiento de l'icono d'estau. Existen tres " +"opcions: 'always' (siempre): l'icono s'amostrará siempre; 'client' (client): " +"solament s'amostrará l'icono quan i haiga belún connectau, este ye o " +"comportamiento predeterminau; 'never' (nunca): nunca s'amostrará l'icono." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indica quán desactivar o fondo de pantalla quan un usuario ye connectau" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Quan sía cierto, desactivar o fondo d'escritorio y substituir-lo con una " +"color quan se connecte un usuario" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Indica si se debe usar UPNP ta reendrezar o puerto." + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Si ye cierto, solicitar que un enrotador con capacidat UPnP reendrece o " +"tráfico y ubra o puerto que usa Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica si se debe desactivar a extensión XDamage de X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Si ye activau, no s'usará a extensión XDamage de X.org. Ista extensión no " +"funciona correctament o beluns controladors de video en usar efectos 3D. " +"Desactivar-la causará que Vino s'execute con un renderizado lento en ixos " +"entornos como efecto colateral." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notificar en connectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Si ye activau, s'amostrará una notificación quan un usuario se connecte a o " +"sistema." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O fichero no ye un fichero .desktop valido" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "A versión '%s' d'o fichero desktop no se reconoixe" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Encetando %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr " L'aplicación no accepta documentos en a linia de comandos" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opción de lanzamiento no reconoixida: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No se pueden pasar os URI de documentos a dentradas d'escritorio 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "No ye un elemento lanzable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desactivar a connexión a l'administrador de sesions" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especificar o fichero que contiene a configuración alzada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FICHERO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especificar l'ID de chestión de sesión" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcions de chestión d'a sesión:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Amostrar opcions de chestión de sesión" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"O suyo servidor XServer no suporta a extensión XTest - l'acceso a o " +"escritorio remoto se realizará en modo solament lectura\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Encetar en modo tubo, ta la caracteristica 'Compartir o mío escritorio'" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr " - Client VNC ta GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Execute «vino-server --help» ta veyer una lista completa d'as opcions d'a " +"linia de comandos disponibles" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Compartición d'escritorio de GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Escritorio remoto de %s en %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Se recibió o sinyal %d, salindo." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "A pantalla en a quala s'amostrará l'indicador d'ordens" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Error en encetar libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un usuario en l'equipo '%s' ye intentando veyer u controlar remotament o " +"suyo escritorio." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Unatro usuario ye intentando veyer o suyo escritorio." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Refusar" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Acceptar" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Falló en ubrir connexión con bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartición d'o escritorio" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartición d'escritorio de GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;compartir;remoto;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "A compartición d'o escritorio ye activada" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Una persona ye veyendo o suyo escritorio" +msgstr[1] "%d personas son veyendo o suyo escritorio" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Error en amostrar as preferencias" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Error en amostrar la aduya" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Iste programa ye software libre; puede redistribuir-lo y/u modificar-lo \n" +"baixo os termins d'a Licencia Publica Cheneral de GNU tal como \n" +"se publica por a Free Software Foundation; ya sía a versión 2 d'a\n" +" Licencia, u (a la suya esleción) qualsiquier versión posterior.\n" +"\n" +"Iste programa se distribuye con a esperanza que le sía util, pero \n" +"SIN GARRA GUARENCIA; sin mesmo a guarencia implicita de MERCANTILIDAD \n" +"u IDONEIDAD TA UN PROPOSITO PARTICULAR. Veiga a Licencia Publica Cheneral \n" +"GNU ta mas detalles.\n" +"\n" +"Habría d'haber recibiu una copia d'a Licencia Publica Cheneral de GNU \n" +"de conchunta con iste programa, si no ye asinas, escriba a la Free " +"Software \n" +"Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA \n" +"02110-1301 EE.UU.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Daniel Martinez <dmartinez@src.gnome.org> 2013." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Comparta o suyo escritorio con atros usuarios" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Seguro que quiere desconnectar a '%s'?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'usuario remoto de '%s' será desconnectau. Ye seguro?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Seguro que quiere desconnectar totz os clients?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Totz os usuarios remotos serán desconnectaus. Ye seguro?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Desconnectar" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferencias" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Desconnectar totz" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Desconnectar %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Ad_uya" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "Arredol _de" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Unatro usuario ye veyendo o suyo escritorio" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Un usuario en l'equipo '%s' ye veyendo o suyo escritorio remotament." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Unatro usuario ye controlando o suyo escritorio" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un usuario en l'equipo '%s' ye controlando o suyo escritorio remotament." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Error en amostrar a burbuja de notificación: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Se desconnectará a l'usuario remoto '%s'. Ye seguro?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartir a información d'o mío escritorio" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' refusó a invitación ta compartir." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' desconnectau" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' ye controlando o suyo escritorio remotament." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Asperando a que '%s' se connecte a la pantalla." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Refusar" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Ocurrió una error:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Clau compartida d'o escritorio remoto" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Cancelau" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERROR: A longaria maxima d'a clau ye de %d caracter. Torne a introducir a " +"clau." +msgstr[1] "" +"ERROR: A longaria maxima d'a clau ye de %d caracters. Torne a introducir a " +"clau." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Cambiando a clau de Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Introduzca a nueva clau de Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Rescriba a nueva clau de Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: a clau s'actualizó satisfactoriament.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "As claus no coinciden.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: no se cambió a clau.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Amostrar a versión de Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Actualiza a clau de Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Execute «vino-passwd --help» ta veyer una lista completa d'as opcions d'a " +"linia de comandos disponibles" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versión %s de Vino\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: No tiene suficients permisos ta cambiar a clau de Vino.\n" diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..608d0eb --- /dev/null +++ b/po/ar.po @@ -0,0 +1,863 @@ +# translation of vino.HEAD.po to Arabic +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Ayman Hourieh <aymanh@gmail.com>, 2004. +# Djihed Afifi <djihed@gmail.com>, 2006. +# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2009, 2012, 2013. +# Usama Akkad <uak@aya.sy>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-22 10:19+0200\n" +"PO-Revision-Date: 2013-03-23 18:34+0200\n" +"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" +"Language-Team: Arabic <doc@arabeyes.org>\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Virtaal 0.7.0\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "اسمح بالوصول إلى سطح المكتب عن بعد" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"إذا ضبط لـtrue، سيسمح بالوصول البعيد لسطح المكتب من خلال بروتوكول RFB.يمكن " +"أن يتّصل المستخدمون على أجهزة بعيدة إلى سطح المكتب من خلال عارض VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "اسأل المستخدم قبل إكمال اتصال" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"إذا ضبط لـtrue، لن يسمح للمستخدمين البعيدين بالوصول إلى سطح المكتب حتى يوافق " +"المستخدم على الجهاز المضيف على الاتّصال. ينصح به خاصة عندما لا يكون الوصول " +"محميًا بكلمة سر." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "اسمح للمستخدمين البعيدين بعرض سطح المكتب فقط" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"إذا ضبط لصحيح، لن يسمح للمستخدمين البعيدين النافذين إلى سطح المكتب بعرض سطح " +"المكتب. لن يتمكّن المستخدمون البعيدون من استخدام الفأرة أو لوحة المفاتيح." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "استمع لمنفذ بديل" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"لو صحيح، سيستمع الخادوم لمنفذ آخر، بدلا من المبدئي (5900). يجب أن يحدد " +"المنفذ قي مفتاح 'alternative-port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "رقم المنفذ البديل" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"المنفذ الذي سيستمع إليه الخادوم إذا ضبط مفتاح 'use-alternative-port' كصحيح. " +"القيم المقبولة في المدى 5000 إلى 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "التعمية مطلوبة" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"إذا ضبط لـtrue، يطلب من المستخدمين البعيدين أن يدعموا التّشفير. ينصح بشكل " +"كبير أن تستخدم عميلًا يدعم التّشفير ما لم تكن الشبكة موثوقة." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "طرق التّوثّق المسموحة" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"يعرض قائمة بطرق التّوثّق الممكن للمستخدمين البعيدين استخدامها للوصول لسطح " +"المكتب.\n" +"\n" +"هناك طريقتان ممكنتان للتّوثّق، \"vnc\" التي تسائل المستخدم البعيد عن كلمة سر " +"(تحدّد كلمة السر بمفتاح vnc-password) قبل الاتّصال، و \"none\" التي تسمح لأي " +"مستخدم بعيد بالاتّصال." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "كلمة السر مطلوبة لتوثّق \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +#, fuzzy +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"كلمة السر التي سيُساءل المستخدم عنها إذا استخدمت طريقة توثّق \"vnc\". كلمة " +"السر المحدّدة بالمفتاح مرمّزة بترميز قاعدة 64." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "عنوان البريد الإلكتروني الذي سيتمّ إرسال عنوان سطح المكتب البعيد إليه" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"يحدّد هذا المفتاح عنوان البريد الإلكتروني الذي سيتمّ إرسال عنوان سطح المكتب " +"البعيد إليه إذا نقر المستخدم على العنوان في حوار تفضيلات مشاركة سطح المكتب." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "اغلق الشاشة عند اغلاق آخر مستخدم للاتصال" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "إذا كان صحيحا، سيتم غلق الشاشة عند إغلاق آخر مستخدم للاتصال." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "متى يجب إظهار أيقونة التنبيه" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#, fuzzy +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"يتحكم هذا المفتاح في أيقونة التنبيه. هناك ثلاث خيارات: \"always\" (دائم) " +"\"client\" (فقط عندما يكون أحدهم متصلا - و هو المبدئي)، \"never\" (أبدا)" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#, fuzzy +msgid "Whether to disable the desktop background when a user is connected" +msgstr "إذا صحيح, عطل خلفية الشاشة عند تلقي جلسة صالحة" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ليس الملف ملف .desktop سليم" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "إصدارة ملف سطح مكتب غير معروفة '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "يبدأ %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "التطبيق لا يقبل مستندات في سطر الأوامر" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "خيار إطلاق غير معروف %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "تعذّر تمرير مسار المستند إلى مُدخلة سطح مكتب من نوع 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "عنصر لا يُطلق" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "عطّل الاتصال بمدير الجلسات" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "حدد ملفا يحتوي الإعدادات المحفوظة" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "حدد رقم معرّف إدارة الجلسات" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "خيارات إدارة الجلسات:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "اعرض خيارات إدارة الجلسات" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "لايدعم خادوم X الامتداد XTest - سيكون سطح المكتب البعيد للعرض فقط\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- خادوم VNC لجنوم" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "شغّل 'vinno-server --help' لرؤية قائمة كاملة لخيارات سطر الأوامر." + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "مشاركة سطح مكتب جنوم" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "سطح المكتب البعيد لـ %s على %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "استلمت إشارة %d، سأخرج." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "الشّاشة" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "الشّاشة التي سيعرض عليها المحثّ" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "خطأ أثناء بدأ libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "يحاول مستخدم على الحاسوب '%s' عرض أو التّحكم بسطح مكتبك عن بعد." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "يحاول مستخدم آخر عرض سطح مكتبك." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "ارفض" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "اقبل" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "فشل فتح اتصال مع الناقل: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "مشاركة سطح المكتب" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "خادوم مشاركة سطح مكتب جنوم" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "مشاركة;مكتب;بعيد;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "مشاركة سطح المكتب مفعّلة" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "لا يشاهد أي شخص سطح مكتبك" +msgstr[1] "يشاهد شخص واحد سطح مكتبك" +msgstr[2] "يشاهد شخصين سطح مكتبك" +msgstr[3] "يشاهد %d أشخاص سطح مكتبك" +msgstr[4] "يشاهد %d شخصا سطح مكتبك" +msgstr[5] "يشاهد %d شخص سطح مكتبك" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "حدث خطأ عند عرض التفضيلات" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "حدث خطأ عند عرض المساعدة" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"مرخّص تحت رخصة جنو العمومية العامة، نسخة 2\n" +"\n" +"فينو برنامج حر؛ بامكانك إعادة توزيعه و/أو\n" +"تعديله تحت شروط الرخصة العمومية العامة لجنو\n" +"والتي نشرتها منظمة البرمجيات الحرة؛ سواء الإصدارة 2\n" +"من الرخصة أو أي إصدارة بعدها حسب رغبتك.\n" +"\n" +"يوزّع فينو على أمل أن يكون مفيدًا لمن يستخدمه\n" +"،دون أدنى مسؤولية؛ ولا حتى أي ضمان يضمن صلاحية العرض في السوق\n" +"أو توافقه مع أي استخدام محدد.\n" +"يمكنك مراجعة الرخصة العمومية العامة لجنو لمزيد من التفاصيل.\n" +"\n" +"من المفترض أن تكون قد استلمت نسخة من رخصة جنو العامة\n" +"مع فينو؛ في حال عدم استلامك لذلك، يمكنك مكاتبة:\n" +"Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA\n" +"02111-1307 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"فريق عربآيز للترجمة http://www.arabeyes.org :\n" +"يوسف رفه\t<yousef@raffah.com>\n" +"جهاد عفيفي\t<djihed@gmail.com>\n" +"خالد حسني\t<khaledhosny@eglug.org>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "شارِك سطح مكتبك مع المستخدمين الآخرين" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "أمتأكّدٌ أنّك تريد قطع اتصال '%s'؟" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "سيقطع اتصال المستخدم عن بعد من '%s'. أمتأكّد؟" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "أمتأكد من أنك تريد قطع اتصّال كل العملاء؟" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "سيقطع اتصال كل المستخدمين عن بعد. أمتأكّد؟" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "اقطع الاتصال" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_تفضيلات" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "اقطع الكلّ" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "ا_قطع اتصال %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "م_ساعدة" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_حوْل" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "يشاهد مستخدم آخر سطح مكتبك" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "يُشاهد مستخدم على الحاسوب '%s' سطح مكتبك عن بعد." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "يتحكّم مستخدم آخر بسطح مكتبك" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "تحكّم مستخدم على الحاسوب '%s' بسطح مكتبك عن بعد." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "خطأ أثناء عرض فقّاعة التبليغ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "سيُقطع اتصال المستخدم عن بعد من '%s'. أمتأكّد؟" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "شارِك معلومات سطح مكتبي" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "رفض '%s' دعوة مشاركة سطح المكتب." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' قطع الاتصال" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "يتحكّم '%s' بسطح مكتبك عن بعد." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "في انتظار اتصال '%s' بالشاشة." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "ا_سمح" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "ا_رفض" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "حدث خطأ:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "كلمة سر مشاركة سطح المكتب عن بعد" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "أُلغِيَ" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "خطأ: أقصى طول لكلمة السر هو %d حرف. أعد إدخال كلمة السر." +msgstr[1] "خطأ: أقصى طول لكلمة السر هو حرف واحد. أعد إدخال كلمة السر." +msgstr[2] "خطأ: أقصى طول لكلمة السر هو حرفين. أعد إدخال كلمة السر." +msgstr[3] "خطأ: أقصى طول لكلمة السر هو %d حروف. أعد إدخال كلمة السر." +msgstr[4] "خطأ: أقصى طول لكلمة السر هو %d حرفا. أعد إدخال كلمة السر." +msgstr[5] "خطأ: أقصى طول لكلمة السر هو %d حرف. أعد إدخال كلمة السر." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "تغيير كلمة سر فينو.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "أدخل كلمة سر جديدة لـ فينو:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "أعد كتابة كلمة سر فينو الجديدة:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "passwd-فينو: حُدثت كلمة السر بنجاح.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "آسف, كلمتا السر غير متطابقتين.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "passwd-فينو: كلمة السر لم تتغير.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "اعرض إصدار فينو" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- يحدث كلمة سر فينو" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "اأمر بـ'vino-passwd --help' لرؤية قائمة كاملة بخيارات سطر الأوامر" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "إصدارة فينو %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "خطأ: ليس لديك أذون كافية لتغيير كلمة سر فينو. \n" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "حدث خطأ عند عرض المسار \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "حدث خطأ عند عرض المساعدة:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "يفحص الاتصال بهذا الجهاز..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "جهازك متاح عبر الشبكة المحلية فقط." + +#~ msgid " or " +#~ msgstr " أو " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "يستطيع الآخرون الدخول إلى حاسوبك باستخدام العنوان %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "لا يستطيع أحد الدخول إلى حاسوبك." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "اختر كيف يستطيع المستخدمين الآخرين عرض سطح مكتبك عن بعد" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "تفضيلات مشاركة سطح المكتب" + +#~ msgid "Sharing" +#~ msgstr "المشاركة" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "بعض هذه التّفضيلات موصد" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "اسمح للمستخدمين الآخرين ب_عرض سطح مكتبك" + +#~ msgid "Your desktop will be shared" +#~ msgstr "سيتشارك سطح مكتبك" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "ا_سمح للمستخدمين الآخرين بالتّحكّم بسطح مكتبك." + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "المستخدمون البعيدون يمكنهم التحكم بفأرتك و لوحة مفاتيحك" + +#~ msgid "Security" +#~ msgstr "الأمن" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "يجب أن _تؤكد كل اتصال بهذا الجهاز" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "ا_طلب من المستخدم ادخال كلمة السر هذه:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "ا_ضبط مسيّر UPnP تلقائيا لفتح وتمرير المنافذ" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "يجب أن تكون خاصية UPnP مفعلة في المسيّر (router)" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "أظهِر أيقونة في منطقة التبليغ" + +#~ msgid "Al_ways" +#~ msgstr "دا_ئمًا" + +#~ msgid "_Only when someone is connected" +#~ msgstr "عندما يتّصل أحد _فقط" + +#~ msgid "_Never" +#~ msgstr "أ_بدًا" + +#~ msgid "Question" +#~ msgstr "السّؤال" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "يحاول مستخدم على حاسوب آخر عرض أو التّحكم بسطح مكتبك عن بعد." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "أتريد السّماح لهم بفعل ذلك؟" + +#~ msgid "_Send address by email" +#~ msgstr "أرسِل العنوان بالبريد الإل_كتروني" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "ا_نسخ العنوان إلى الحافظة" + +#~ msgid "Remote Desktop" +#~ msgstr "سطح مكتب بعيد" + +#~ msgid "Al_ways display an icon" +#~ msgstr "دائما ا_عرض أيقونة" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "الحجم الأقصى: 8 حروف" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "ستُسأل للسماح أو رفض كل اتصال وارد" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "ا_ضبط الشبكة لتقبل الاتصالات تلقائيا" + +#~ msgid "_Never display an icon" +#~ msgstr "_لاتعرض الأيقونة أبدًا" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "ا_عرض ايقونة فقط عندا يكون أحدهم متصلا" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "خادوم سطح المكتب البعيد يعمل حاليًا، خروج...\n" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "سطح مكتب جنوم عن بعيد" + +#~ msgid "Enable remote desktop access" +#~ msgstr "مكّن النفاذ لسطح المكتب عن بعد" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "حدث خطأ أثناء الاتصال ب GConf. هل أنت والج إلى جنوم؟" + +#~ msgid "Error message:" +#~ msgstr "رسالة الخطأ:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "نفذت الذّاكرة أثناء التعامل مع الرسالة '%s' " + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "نفذت الذّاكرة أثناء تسجيل مسار الكائن '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "فشل الحصول على اسم D-Bus '%s'\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "اضبط تفضيلات النفاذ لسطح المكتب البعيد" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>شبكة</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "ا_سأل للتأكيد" + +#~ msgid "Advanced" +#~ msgstr "متقدم" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "عطّل _خلفية الشاشة عند الاتصال" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "عطل خلفية الشاشة عند الاتصال الناجح" + +#~ msgid "General" +#~ msgstr "عامّ" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "مطلوب من عملاء VNC للمستخدمين البعيدين الذين ينفذون لسطح المكتب ان يدعموا " +#~ "التشفير" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "ستقفل الشاشة بعد آخر قطع اتصال من العميل البعيد" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "سيقبل الخادوم الاتصالات المحلية فقط" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "سيستخدم الخادوم منفذا آخر، بدلا من الإفتراضي (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "يمكن للمستخدمين عرض سطح مكتبك باستخدام هذا الأمر:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "عندما يحاول مستخدم عرض أو التّحكم بسطح مكتبك:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "ا_قفل الشاشة في حالة الغاء الاتصال" + +#~ msgid "_Only allow local connections" +#~ msgstr "اس_مح بالاتصالات المحلّية فقط" + +#~ msgid "_Password:" +#~ msgstr "_كلمة السر:" + +#~ msgid "_Require encryption" +#~ msgstr "التّ_شفير مطلوب:" + +#~ msgid "_Use an alternative port:" +#~ msgstr "ا_ستعمل رقم منفذ بديل:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "لو صحيح، سيقبل الخادوم الاتصالات المحلّية فقط وسيرفض اتصلات الشبكة. اضبط " +#~ "هذا كصحيح، إذا أردت حصريا استعمال آليات أنفاق للنفاذ للخادوم، مثل ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "اسمح بالاتصالات المحلّية فقط" diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..45cf12f --- /dev/null +++ b/po/as.po @@ -0,0 +1,841 @@ +# translation of as.po to Assamese +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Amitakhya Phukan <aphukan@redhat.com>, 2008. +# Amitakhya Phukan <amitakhya@svn.gnome.org>, 2008. +# Amitakhya Phukan <aphukan@fedoraproject.org>, 2009. +# Nilamdyuti Goswami <ngoswami@redhat.com>, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: as\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-06 15:45+0530\n" +"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n" +"Language-Team: Assamese <kde-i18n-doc@kde.org>\n" +"Language: as\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1)\n" +"X-Generator: Lokalize 1.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" প্ৰদৰ্শন কৰোতে এটা ত্ৰুটি হৈছিল" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"সহায় প্ৰদৰ্শনত কৰোতে এটা ত্ৰুটি হৈছিল:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "এই মেচিনৰ সংযোগ ব্যৱস্থা পৰীক্ষা কৰা হৈছে..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "" +"অকল স্থানীয় নেটৱাৰ্কৰ মাধ্যমে আপোনাৰ ডেস্কটপৰ সৈতে সংযোগ স্থাপন কৰা সম্ভৱ।" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " অথবা " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "%s ঠিকনাৰ মাধ্যমে অন্য ব্যক্তিয়ে আপোনাৰ কমপিউটাৰ অভিগম কৰিব পাৰিব।" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "আপোনাৰ ডেস্কটপ অন্য কোনো ব্যক্তিয়ে অভিগম কৰিব নোৱাৰে।" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ডেস্কটপ অংশীদাৰী" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"দূৰবৰ্তী ব্যৱহাৰকাৰীৰ বাবে আপোনাৰ ডেস্কটপ প্ৰদৰ্শনৰ প্ৰণালী নিৰ্ধাৰণ কৰক" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ডেস্কটপ অংশীদাৰী পছন্দসমূহ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "অংশীদাৰী" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ইয়াত কিছু পছন্দৰ মান লক কৰা অাছে" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "অন্য ব্যৱহাৰকাৰীক আপোনাৰ ডেস্কটপ চোৱাৰ অনুমতি প্ৰদান কৰক (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "অন্য ব্যৱহাৰকাৰীৰ সৈতে আপোনাৰ ডেস্কটপ অংশীদাৰী কৰা হ'ব" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "" +"অন্য ব্যৱহাৰকাৰীৰ দ্বাৰা আপোনাৰ ডেস্কটপ নিয়ন্ত্ৰণৰ অনুমতি প্ৰদান কৰক (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"দূৰবৰ্তী ব্যৱহাৰকাৰীয়ে, আপোনাৰ প্ৰণালীৰ মাউছ আৰু কিবৰ্ড নিয়ন্ত্ৰণ কৰিব পাৰিব" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "সুৰক্ষা" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "আপুনি এই মেচিনলে প্ৰতিটো অভিগম সুনিশ্চিত কৰিব লাগিব (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ব্যৱহাৰকাৰীজনক পাছৱাৰ্ড লিখা প্ৰয়োজনীয় হ'ব (_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "UPnP ৰাউটাৰক স্বচালিতভাৱে মুক্ত আৰু সন্মুখ পৰ্টসমূহত সংৰূপণ কৰক (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "ৰাউটাৰত UPnP বৈশিষ্ট্য সামৰ্থবান থকা আৱশ্যক" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "অধিসূচনা স্থান আইকন দেখুৱাওক" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "সদায় (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "কেৱল তেতিয়ায় যেতিয়া কোনোবা সংযুক্ত (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "কেতিয়াও নহয় (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "ডেস্কটপলে দূৰৱৰ্তী অভিগম সামৰ্থবান কৰক" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"মান সত্য হ'লে, RFB প্ৰটকলৰ মাধ্যমে দূৰবৰ্তী ডেস্কটপ ব্যৱহাৰ কৰাৰ অনুমতি " +"প্ৰদান কৰা " +"হ'ব। দূৰবৰ্তী মেচিনৰ ব্যৱহাৰকাৰীয়ে VNC দৰ্শকৰ মাধ্যমে ডেস্কটপৰ সৈতে সংযোগ " +"কৰিব " +"পাৰিব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "সংযোগ প্ৰক্ৰিয়া সম্পন্ন কৰাৰ পূৰ্বে ব্যৱহাৰকাৰীজনক সচেতন কৰা হ'ব" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"মান সত্য হ'লে, ডেস্কটপ অভিগম কৰা দূৰৱৰ্তী ব্যৱহাৰকাৰীসমূহক অভিগমৰ অনুমতি " +"দিয়া নহয় " +"যেতিয়ালৈকে হস্ট মেচিনৰ ব্যৱহাৰকাৰীয়ে সংযোগৰ অনুমতি নিদিয়ে। বিশেষভাৱে উপদেশিত " +"যেতিয়া অভিগম পাছৱাৰ্ড দ্বাৰা সুৰক্ষিত নহয়। " + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "অকল দূৰবৰ্তী ব্যৱহাৰকাৰীজনক ডেস্কটপ চোৱাৰ প্ৰমাণীকৰণ প্ৰদান কৰা হ'ব" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"মান সত্য হ'লে, ডেস্কটপ অভিগম কৰা দূৰৱৰ্তী ব্যৱহাৰকাৰীসমূহৰ কেৱল ডেস্কটপ " +"দৰ্শন কৰাৰ " +"অনুমতি থাকিব। দূৰবৰ্তী ব্যৱহাৰকাৰীসমূহ মাউছ অথবা কিবৰ্ড ব্যৱহাৰ কৰোঁতে সক্ষম " +"নহব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "অপেক্ষা কৰাৰ বাবে নেটৱাৰ্ক আন্তঃপৃষ্ট" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"যদি সংহিত নাই, চাৰ্ভাৰে সকলো নেটৱাৰ্ক আন্তঃপৃষ্টত শুনিব।\n" +"\n" +"ইয়াক সংহতি কৰক যদি আপুনি কেৱল কিছুমান বিশেষ নেটৱাৰ্ৰক পৰা সংযোগ গ্ৰহণ কৰিব " +"বিচাৰে। উদাহৰণস্বৰূপ, eth0, wifi0, lo, আৰু তেনেকুৱা।" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "বিকল্প পৰ্টত শুনক" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"যদি true, অবিকল্পিত পৰ্টৰ (5900) পৰিবৰ্তে চাৰ্ভাৰে এটা অন্য পৰ্টক বাছিব। এই " +"পৰ্টটো " +"'alternative_port' কি'ত ধাৰ্য্য কৰা হ'ব লাগিব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "বিকল্প পৰ্ট সংখ্যা" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use_alternative_port' কি' ৰ মান সত্য হ'লে চাৰ্ভাৰ দ্বাৰা যি পৰ্টৰ কাৰণে " +"অপেক্ষা " +"কৰা হ'ব। বৈধ মান 5000 ৰ পৰা 50000 লৈকে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "এনক্ৰিপশন আৱশ্যক" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"মান সত্য হ'লে, ডেস্কটপ অভিগম কৰা দূৰৱৰ্তী ব্যৱহাৰকাৰীসমূহে এনক্ৰিপশন সমৰ্থন " +"কৰাৰ " +"প্ৰয়োজন হব। ই উচ্চভাৱে উপদেশিত যে আপুনি এটা ক্লাএন্ট ব্যৱহাৰ কৰে যি ইনক্ৰিপষণ " +"সমৰ্থন " +"কৰে যদি মধ্যৱৰ্তী নেটৱাৰ্ক ভৰষাবান নহয়।" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ব্যৱহাৰযোগ্য প্ৰমাণীকৰণ পদ্ধতিবোৰ" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"দূৰবৰ্তী ব্যৱহাৰকাৰীসমূহ যি সকলো প্ৰমাণীকৰণ প্ৰক্ৰিযাৰ মাধ্যমে ডেস্কটপ " +"ব্যৱহাৰ কৰোঁতে " +"সক্ষম হ'ব সেইসমূহ তালিকাভুক্ত কৰে।\n" +"\n" +"দুটা সম্ভাব্য প্ৰমাণীকৰণ প্ৰক্ৰিয়া উপস্থিত অাছে; \"vnc\" ৰ দ্বাৰা দূৰবৰ্তী " +"ব্যৱহাৰকাৰীক " +"সংযোগৰ পূৰ্বে পাছৱাৰ্ডৰ বাবে অনুৰোধ কৰা হ'ব (এই পাছৱাৰ্ডটো vnc_password কি' ৰ " +"দ্বাৰা নিৰ্ধাৰিত হয়) আৰু \"none\" যাৰ দ্বাৰা যি কোনো দূৰবৰ্তী ব্যৱহাৰকাৰী " +"সংযোগ " +"কৰাৰ অনুমতি পাবো।" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" প্ৰমাণীকৰণ প্ৰক্ৰিয়াৰ বাবে পাছৱাৰ্ড প্ৰয়োজন" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" প্ৰমাণীকৰণ পদ্ধতি ব্যৱহাৰ কৰা হ'লে দূৰবৰ্তী ব্যৱহাৰকাৰীক যি পাছৱাৰ্ড " +"লিখিব'লৈ অনুৰোধ কৰা হ'ব। কি'ৰে ধাৰ্য্যত পাছৱাৰ্ড base64 এনকড হয়। \n" +"\n" +"'keyring' ৰ বিশেষ মান (যোনটো বৈধ base64 নহয়) বুজায় যে পাছৱাৰ্ডটো GNOME " +"keyring " +"ত সংৰক্ষিত।" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "দূৰবৰ্তী ডেস্কটপৰ URL প্ৰেৰণৰ বাবে ই-মেইল ঠিকনা" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ডেস্কটপ অংশীদাৰী পছন্দসমূহ ডাইলগৰ URL ত ব্যৱহাৰকাৰীয়ে ক্লিক কৰিলে, যি ই-মেইল " +"ঠিকনাত দূৰবৰ্তী ডেস্কটপ ৰ URL প্ৰেৰণ কৰা হ'ব, সেইটোক এই কি'য়ে ধাৰ্য্য কৰে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "সৰ্বশেষ ব্যৱহাৰকাৰী বিচ্ছিন্ন কৰাৰ পিছত পৰ্দা লক কৰা হ'ব" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"যদি true, সৰ্বশেষ দূৰবৰ্তী ক্লাএন্ট বিচ্ছিন্ন হোৱাৰ পিছত পৰ্দা লক কৰা হ'ব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "অবস্থাসূচক আইকন কোন সময়ত দেখুৱাওক" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"অবস্থাসূচক আইকনৰ আচৰণ এই কি' দ্বাৰা নিয়ন্ত্ৰণ কৰা হয়। এই ক্ষেত্ৰত তিনিটা " +"বিকল্প " +"উপস্থিত আছে: \"always\" - আইকন সদায়ে প্ৰদৰ্শিত হ'ব; \"client\" - কোনোবা " +"সংযুক্ত " +"থাকিলে আইকন উপস্থিত থাকিব(ই অবিকল্পিত ব্যৱহাৰ);\"never\" - আইকন উপস্থিত " +"নাথাকিব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "এজন ব্যৱহাৰকাৰী সংযুক্ত হওতে ডেস্কটপ পটভূমি অসামৰ্থবান কৰা হব নে" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"যেতিয়া true, ডেস্কটপ পটভূমি অসামৰ্থবান কৰক আৰু ইয়াক ৰঙৰ এটা খণ্ডৰ সৈতে " +"প্ৰতিস্থাপন " +"কৰক যেতিয়া এজন ব্যৱহাৰকাৰী সফলভাৱে সংযোগ কৰে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "পোৰ্টসমূহ ফৰৱাৰ্ড কৰিবলে আৰু খোলিবলে এটা UPnP ৰুটাৰ ব্যৱহাৰ কৰা হব নে" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"যদি true, Vino দ্বাৰা ব্যৱহাৰ কৰা পোৰ্ট এটা UPnP-ক্ষমতা ৰুটাৰ ফৰৱাৰ্ড কৰাৰ " +"আৰু " +"খোলাৰ অনুমতি দিয়ক।" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org ৰ XDamage প্ৰসাৰন অসামৰ্থবান কৰা হ'ব নে" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"মান true হ'লে, X.org ৰ XDamage প্ৰসাৰন ব্যৱহাৰ কৰা নহব। 3D ইফেক্ট " +"ব্যৱহাৰসময়ত, " +"কিছু ভিডিঅ' ড্ৰাইভাৰৰ সৈতে এই প্ৰসাৰন সঠিকৰূপে কাম কৰিবলৈ সক্ষম নহয়। " +"ইয়াকঅসামৰ্থবান কৰা হ'লে, এই ধৰণৰ পৰিবেশত Vino কাম কৰিবলৈ সক্ষম হ'ব, কিন্তু " +"ৰেন্ডাৰিংৰ গতি হ্ৰাস হ'ব।" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "সংযোগত অধিসূচীত কৰিব" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"যদি true, যেতিয়া এজন ব্যৱহাৰকাৰী চিস্টেমৰ সৈতে সংযোগ কৰে এটা অধিসূচনা দেখাব।" + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "দূৰৱৰ্তী ডেস্কটপ অংশীদাৰী পাছৱাৰ্ড" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "এইটো বৈধ .desktop ফাইল নহয়" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ডেস্কটপ ফাইলৰ অজ্ঞাত সংস্কৰণ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s আৰম্ভ কৰা হৈছে" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "এপ্লিকেচন দ্বাৰা কমান্ড-শাৰীৰ মাধ্যমে ফাইল গ্ৰহণ কৰা নহয়" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "অপৰিচিত লঞ্চ বিকল্প: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ডেস্কটপ প্ৰবিষ্টিৰ ক্ষেত্ৰত ফাইলৰ URI উল্লেখ কৰা সম্ভব নহয়" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "প্ৰাৰম্ভ কৰাৰ যোগ্য বস্তু নহয়" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "অধিবেশন ব্যৱস্থাপকৰ সৈতে সংযোগ বিচ্ছিন্ন কৰা হ'ব" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "সংৰক্ষিত বিন্যাস ধাৰণকৰ্তা ফাইল ধাৰ্য্য কৰক" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "অধিবেশন ব্যৱস্থাপনাৰ ID ধাৰ্য্য কৰক" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "অধিবেশন ব্যৱস্থাপনা বিকল্পসমূহ:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "অধিবেশন ব্যৱস্থাপনা বিকল্প দেখুৱাওক" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"আপোনাৰ XServer কোনো XTest প্ৰসাৰন সমৰ্থন নকৰে - দূৰবৰ্তী ডেস্কটপ ব্যৱহাৰৰ " +"সময় " +"অকল প্ৰত্যক্ষ কৰা সম্ভৱ হ'ব\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "টিউব অৱস্থাত আৰম্ভ কৰক, 'মোৰ ডেস্কটপ অংশীদাৰী কৰক' বৈশিষ্টৰ বাবে" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME ৰ বাবে VNC চাৰ্ভাৰ" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"কমান্ড-শাৰীৰ পৰা ব্যৱহাৰযোগ্য বিকল্পসমূহৰ সম্পূৰ্ণ তালিকা চোৱাৰ বাবে " +"'vino-server --" +"help' কমান্ড প্ৰয়োগ কৰক" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME ডেস্কটপ অংশীদাৰী" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s ৰ দূৰবৰ্তী ডেস্কটপ, %s ত" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d সংকেত প্ৰাপ্ত হৈছে, প্ৰস্থান কৰা হৈছে।" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "পৰ্দা" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "প্ৰম্পট প্ৰদৰ্শনকৰ্তা পৰ্দা" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify আৰম্ভ কৰোঁতে সমস্যা\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' কমপিউটাৰৰ এজন ব্যৱহাৰকাৰী দূৰবৰ্তী অবস্থানৰ পৰা আপোনাৰ ডেস্কটপ প্ৰত্যক্ষ " +"অথবা " +"নিয়ন্ত্ৰণ কৰাৰ চেষ্টা কৰি আছে।" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "অন্য এজন ব্যৱহাৰকাৰী অাপোনাৰ ডেস্কটপ চোৱাৰ চেষ্টা কৰি আছে।" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "নাকচ কৰক" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "গ্ৰহণ কৰক" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "বাচৰ সৈতে সংযোগ আৰম্ভ কৰোঁতে ব্যৰ্থ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME ডেস্কটপ অংশীদাৰী চাৰ্ভাৰ" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;অংশীদাৰী;দূৰৱৰ্তী;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ডেস্কটপ অংশীদাৰী ব্যৱস্থা সামৰ্থবান কৰা হৈছে" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "এজন ব্যৱহাৰকাৰীয়ে বৰ্তমানে আপোনাৰ ডেস্কটপ চাই আছে" +msgstr[1] "%d ব্যৱহাৰকাৰীসকলে বৰ্তমানে আপোনাৰ ডেস্কটপ চাই আছে" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "পছন্দসমূহ প্ৰদৰ্শনত ত্ৰুটি" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "সহায় প্ৰদৰ্শনত ত্ৰুটি" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU General Public License Version ২ ৰ অধিনত অনুজ্ঞিত\n" +"\n" +"Vino এটা বিনামুলিয়া চফ্টৱেৰ; আপুনি Free Software Foundation ৰ দ্বাৰা প্ৰকাশিত " +"GNU " +"General Public License ৰ চুক্তিসমূহৰ অন্তৰ্গত ইয়াক পুনৰ বিলাব পাৰিব অথবা সলনি " +" " +"কৰিব পাৰিব; হৈতো অনুজ্ঞাৰ সংস্কৰণ ২, অথবা (আপুনাৰ বিকল্পত) যিকোনো পৰৱৰ্তী " +"সংস্কৰণ।\n" +"\n" +"Vino এইটো আশাত বিলোৱা হৈছে যে ই ব্যৱহাৰযোগ্য হ'ব, কিন্তু কোনো ৱাৰেন্টি " +"নথকাকৈ; " +"ব্যৱসায়ীক অথবা কোনো এটা বিশেষ কাৰণৰ যোগ্যতাৰ বাবে বুজুৱা ৱাৰেন্টি নথকাকৈ। " +"অধিক " +"যানিবলৈ GNU General Public License চাওক।\n" +"\n" +"আপুনি হৈতো ইতিমধ্যে এই প্ৰগ্ৰামৰ সৈতে GNU General Public License ৰ কপি এটা " +"পাইছে। যদি নহয়, Free Software Foundation, Inc., \n" +"51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA লে লিখক\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"অমিতাক্ষ ফুকন (aphukan@fedoraproject.org), নীলমদ্যুতি গোস্বামী " +"(ngoswami@redhat." +"com)" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "অন্য ব্যৱহাৰকাৰীৰ সৈতে আপোনাৰ ডেস্কটপ অংশীদাৰী কৰক" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "আপুনি '%s' ৰ পৰা সংযোগ বিচ্ছিন্ন কৰিবলে আপুনি নিশ্চিত নে?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s ৰ পৰা সংযুক্ত দূৰবৰ্তী ব্যৱহাৰকাৰীজনক বিচ্ছিন্ন কৰা হ'ব। নিশ্চিত নে ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "আপুনি সকলো ক্লাএন্টৰ সৈতে সংযোগ বিচ্ছিন্ন কৰিবলে আপুনি নিশ্চিত নে?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "সকলো দূৰবৰ্তী ব্যৱহাৰকাৰী বিচ্ছিন্ন কৰা হ'ব। নিশ্চিত নেকি ?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "বিচ্ছিন্ত কৰক" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "পছন্দসমূহ (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "সকলো বিচ্ছিন্ন কৰক" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ক বিচ্ছিন্ন কৰক" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "সহায় (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "বিষয়ে (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "অন্য এজন ব্যৱহাৰকাৰী বৰ্তমানে আপোনাৰ ডেস্কটপ চাই আছে" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"'%s' কমপিউটাৰৰ এজন ব্যৱহাৰকাৰী দূৰবৰ্তী অবস্থানৰ পৰা আপোনাৰ ডেস্কটপ প্ৰত্যক্ষ " +"চাই " +"আছে।" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "অন্য এজন ব্যৱহাৰকাৰী আপোনাৰ ডেস্কটপ নিয়ন্ত্ৰণ কৰি আছে" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' কমপিউটাৰৰ এজন ব্যৱহাৰকাৰী দূৰবৰ্তী অবস্থানৰ পৰা আপোনাৰ ডেস্কটপ নিয়ন্ত্ৰণ " +"কৰি " +"আছে।" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "অধিসূচনাৰ বাব'ল প্ৰদৰ্শন কৰোঁতে ব্যৰ্থ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s ৰ পৰা সংযুক্ত দূৰবৰ্তী ব্যৱহাৰকাৰীক বিচ্ছিন্ন কৰা হ'ব। আপুনি নিশ্চিত নে?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "অন্য ব্যৱহাৰকাৰীৰ বাবে মোৰ ডেস্কটপৰ ব্যৱহাৰ উপলব্ধ কৰা হ'ব" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "ডেস্কটপৰ অংশীদাৰীৰ আমন্ত্ৰণ '%s' দ্বাৰা প্ৰত্যাখ্যাত হৈছে।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' বিচ্ছিন্ন কৰা হৈছে" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "দূৰবৰ্তী অবস্থানৰ পৰা '%s' এ অাপোনাৰ ডেস্কটপ নিয়ন্ত্ৰণ কৰি আছে।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' দ্বাৰা পৰ্দাত সংযোগৰ অপেক্ষা কৰা হৈছে।" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "অনুমতি দিয়ক (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "নাকচ কৰক (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "এটা ত্ৰুটি উৎপন্ন হৈছে:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "বাতিল কৰা হৈছে" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ত্ৰুটি: পাছৱাৰ্ডৰ ক্ষেত্ৰত সৰ্বাধিক %d আখৰ ব্যৱহাৰ কৰা যাব। অনুগ্ৰহ কৰি " +"পাছৱাৰ্ড পুনঃ " +"লিখক।" +msgstr[1] "" +"ত্ৰুটি: পাছৱাৰ্ডৰ ক্ষেত্ৰত সৰ্বাধিক %d আখৰ ব্যৱহাৰ কৰা যাব। অনুগ্ৰহ কৰি " +"পাছৱাৰ্ড পুনঃ " +"লিখক।" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino পাছৱাৰ্ড পৰিবৰ্তন কৰা হৈছে।\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "নতুন Vino পাছৱাৰ্ড লিখক: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "নতুন Vino পাছৱাৰ্ড পুনঃ লিখক: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: সাফল্যেৰ সৈতে পাছৱাৰ্ড পৰিবৰ্তন কৰা হৈছে।\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "দুঃখিত, পাছৱাৰ্ড মিল নাখায়।\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: পাছৱাৰ্ড পৰিবৰ্তন কৰা নহয়।\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino সংস্কৰণ দেখুৱাওক" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino পাছৱাৰ্ড আপডেইট কৰে" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"কমান্ড-শাৰীৰ পৰা ব্যৱহাৰযোগ্য বিকল্পসমূহৰ সম্পূৰ্ণ তালিকা চোৱাৰ বাবে " +"'vino-passwd --" +"help' কমান্ড প্ৰয়োগ কৰক" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO সংস্কৰণ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: Vino পাছৱাৰ্ড পৰিবৰ্তনৰ বাবে পৰ্যাপ্ত অনুমতি আপোনাৰ নাই।\n" + +#~ msgid "Question" +#~ msgstr "প্ৰশ্ন" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "অন্য কোনো কমপিউটাৰৰ এজন ব্যৱহাৰকাৰী দূৰবৰ্তী অবস্থানৰ পৰা আপোনাৰ ডেস্কটপ প্ৰত্যক্ষ " +#~ "অথবা নিয়ন্ত্ৰণ কৰাৰ চেষ্টা কৰি আছে।" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "আপুনি সিহতক এই কামৰ অনুমতি দিব বিচাৰে নে?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "মান সত্য হ'লে, ৰাউটাৰত vino দ্বাৰা ব্যৱহাৰ কৰা পৰ্টক স্বয়ংক্ৰিয়ভাবে আগবঢ়াবলে " +#~ "UPNP প্ৰটকল ব্যৱহাৰ কৰা হ'ব।" diff --git a/po/ast.po b/po/ast.po new file mode 100644 index 0000000..ed70e0e --- /dev/null +++ b/po/ast.po @@ -0,0 +1,698 @@ +# translation of vino.po to Asturian +# Asturian translation for vino +# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 +# This file is distributed under the same license as the vino package. +# +# FIRST AUTHOR <EMAIL@ADDRESS>, 2007. +# Xose S. Puente <xspuente@gmail.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&component=Preferences Dialog\n" +"POT-Creation-Date: 2009-08-12 18:01+0000\n" +"PO-Revision-Date: 2010-01-04 14:18+0100\n" +"Last-Translator: astur <malditoastur@gmail.com>\n" +"Language-Team: Asturian <gnome@softastur.org>\n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2010-01-03 20:32+0000\n" +"X-Generator: Launchpad (build Unknown)\n" +"X-Poedit-Language: asturian\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "_Unviar direición por corréu-e" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "_Copiar la direición al cartafueyu" + +#: ../capplet/vino-message-box.c:103 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Hebo un fallu al amosar el URL «%s»" + +#: ../capplet/vino-preferences.c:197 +#: ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "Comprobando la conectividá d'esti equipu…" + +#: ../capplet/vino-preferences.c:804 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Hebo un fallu al amosar l'aida:\n" +"%s" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "El so escritoriu namái ye accesible a traviés de la rede llocal." + +#: ../capplet/vino-preferences.c:854 +#: ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " o " + +#: ../capplet/vino-preferences.c:859 +#: ../capplet/vino-preferences.c:933 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Otros podrán acceder al so equipu usando la direición %s." + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "Naide puede acceder al so escritoriu." + +#: ../capplet/vino-preferences.c:1130 +#: ../server/vino-server.c:164 +#: ../server/vino-server.c:195 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Falló al abrir conexón con bus: %s\n" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "Escoyer cómo otros usuarios ven remotamente el mio escritoriu" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Escritoriu Remotu" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "Amosar _siempres un iconu" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "Permitir a otros usuarios _ver el so escritoriu" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "Tamañu máximu: 8 carauteres" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Notification Area" +msgstr "Área de Notificación" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "Preferencies d'Escritoriu Remotu" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Los usuarios remotos pueden remanar el tecláu y el mur" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Security" +msgstr "Seguridá" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Sharing" +msgstr "Compartíu" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "Dalgunes d'estas preferencies tán bloquiaes" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "El router tien de tener la carauterística UPnP activada" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "Entrugaráse-y para qu'almita o refugue cualesquier conexón entrante" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "Your desktop will be shared" +msgstr "Compartiráse'l so escritoriu" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "Permitir qu'otros usu_arios remanen el so escritoriu" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "_Configurar la rede automáticamente p'aceutar conexones" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "Nun amosar un iconu _enxamás" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "N_amái amosar un iconu cuando hai daquién coneutáu" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "_Requerir al usuariu que meta esta contraseña:" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "_Tien de confirmar cada accesu a esti equipu" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El ficheru nun ye un ficheru .desktop válidu" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "La versión «%s» del ficheru desktop nun se reconoz" + +#: ../server/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Aniciando %s" + +#: ../server/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicación nun aceuta documentos na llinia de comandos" + +#: ../server/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opción de llanzamientu non reconocida: %d" + +#: ../server/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nun se pueden pasar los URIs de documentos a entraes d'escritoriu 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Nun ye un elementu llanzable" + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Desactivar la conexón col xestor de sesiones" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Especifique'l ficheru que contién la configuración atroxada" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "FICHERU" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Especificar la ID de xestión de sesión" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Opciones de xestión de sesión:" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Amosar les opciones de xestión de sesión" + +#: ../server/vino-dbus-listener.c:456 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "El sirvidor d'Escritoriu Remotu yá ta n'execución; colando …\n" + +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "- Veceru VNC pa GNOME" + +#: ../server/vino-main.c:75 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "Execute «vino-server --help» pa ver una llista completa de les opciones de la llinia de comandos disponibles" + +#: ../server/vino-main.c:97 +msgid "GNOME Remote Desktop" +msgstr "Escritoriu remotu de GNOME" + +#: ../server/vino-main.c:107 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "El so sirvidor XServer nun soporta la estensión XTest - l'accesu al escritoriu remotu fadráse en mou de namái llectura\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Escritoriu remotu de %s en %s" + +#: ../server/vino-prefs.c:606 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "Recibióse la señal %d, colando…\n" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "La pantalla na qu'amosar el prompt" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "Un usuariu nel equipu «%s» ta intentando ver o remanar remotamente'l so escritoriu" + +#: ../server/vino-prompt.ui.h:1 +msgid "A user on another computer is trying to remotely view or control your desktop." +msgstr "Un usuariu n'otra computadora ta intentando ver o remanar remotamente'l so escritoriu." + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "Otru usuariu ta intentando ver el so escritoriu." + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "¿Quier dexalu facer eso?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "Entruga" + +#: ../server/vino-prompt.ui.h:5 +#: ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-prompt.ui.h:6 +#: ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Refugar" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Sirvidor d'escritorios remotos de GNOME" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Métodos d'autentificación permitíos" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Númberu de puertu alternativu" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Direición de corréu-e a la que tendría d'unviase la URL del escritoriu remotu" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Habilitar accesu al escritoriu remotu" + +#: ../server/vino-server.schemas.in.h:5 +msgid "If not set, the server will listen on all network interfaces. Set this if you want that accept connections only from some specific network interface. eg: eth0, wifi0, lo, ..." +msgstr "Si nun ta activado, el sirvidor escuchará en toles interfaces de rede. Afite esto si quier aceutar conexones namái dende una interface de rede específica. Ex: eth0, wifi0, lo, …" + +#: ../server/vino-server.schemas.in.h:6 +msgid "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a vncviewer." +msgstr "Si ye braero, permite l'accesu al escritoriu per aciu del protocolu RFB. Los usuarios nes máquines remotes podrán coneutase entós al escritoriu usando un visor vnc." + +#: ../server/vino-server.schemas.in.h:7 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "Si ye braero, a los usuarios remotos qu'accedan al escritoriu, nun se-yos concederá l'accesu hasta que l'usuariu na máquina anfitriona apruebe la conexón. Encamiéntase especialmente cuando l'accesu nun ta protexíu por contraseña." + +#: ../server/vino-server.schemas.in.h:8 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "Si ye braero, a los usuarios remotos qu'accedan al escritoriu namái se-yos dexará ver l'escritoriu. Los usuarios remotos nun podrán usar el mur o el tecláu." + +#: ../server/vino-server.schemas.in.h:9 +msgid "If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "Si ta activao, requeriráse que los usuarios remotos qu'accedan al escritoriu soporten cifráu. Encamiéntase l'usu d'un veceru que soporte cifráu, a nun ser que se tenga enfotu na rede interviniente." + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "Si ta activao, la pantalla bloquiaráse dempués de que'l caberu veceru remotu se desconeute." + +#: ../server/vino-server.schemas.in.h:11 +msgid "If true, the server will listen to another port, instead of the default (5900). The port must be specified in the 'alternative_port' key." +msgstr "Si ta activáu, el sirvidor escuchará n'otru puertu, n'arróu del predetermináu (5900). El puertu tien d'especificase na clave «alternative_port»." + +#: ../server/vino-server.schemas.in.h:12 +msgid "If true, we will not use the XDamage extension of X.org. This extension does not work properly on some video drivers when using 3D effects. Disabling it will make vino work on these environments with a slower rendering as side effect." +msgstr "Si ta activáu, nun s'usa la estensión XDamage de X.org. Esta estensión nun furrula bien en dellos controladores de videu al usar efeutos 3D. Desactivala fadrá que Vino s'execute con un renderizáu lentu nesos entornos como dañu llateral." + +#: ../server/vino-server.schemas.in.h:13 +msgid "If true, we will use UPNP protocol to automatically forward the port used by vino in the router." +msgstr "Si ta activáu, usaráse'l protocolu UPNP pa reunviar automáticamente'l puertu usáu por vino nel router." + +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "Escuchar nún puertu alternativu" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Lists the authentication methods with which remote users may access the desktop. There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc_password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "Llista los métodos d'autenticación colos que los usuarios remotos pueden acceder al escritoriu. Hai dos métodos d'autenticación dables: «vnc» fai que se-y entrugue una contraseña al usuariu remotu (la contraseña especifícase na clave vnc_password) enantes de coneutase y «none» permite coneutase a cualesquier usuariu remotu." + +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "Bloquiar la pantalla cuando se desconeute'l caberu usuariu" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "Interface de rede na qu'escuchar" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir namái a los usuarios remotos ver l'escritoriu" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Necesítase una contraseña pa l'autentificación \"vnc\"" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "Entrugar al usuariu enantes de completar una conexón" + +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "Requierse encriptación" + +#: ../server/vino-server.schemas.in.h:22 +msgid "The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded." +msgstr "La contraseña pola que se-y entrugará al usuariu remotu si s'usa'l métodu d'autenticación «vnc». La contraseña especificada pola clave ta codificada en base64." + +#: ../server/vino-server.schemas.in.h:23 +msgid "The port which the server will listen to if the 'use_alternative_port' key is set to true. Valid values are in the range from 5000 to 50000." +msgstr "El puertu que'l sirvidor escuchará si s'usa la clave «use_alternative_port». Los valores válidos tan nel rangu de 5000 a 50000." + +#: ../server/vino-server.schemas.in.h:24 +msgid "This key controls the behavior of the status icon. There are three options: \"always\" - The icon will be always there; \"client\" - You will see the icon only when there is someone connected, this is the default behavior; \"never\" - Never shows the icon." +msgstr "Esta clave remana'l comportamientu del iconu d'estáu. Esisten trés opciones: \"always\" (siempres); l'iconu siempres s'amosará; \"client\" (veceru); namái verás l'iconu cuando heba daquién coneutáu, esti ye'l comportamientu predetermináu; \"never\" (enxamás); enxamás s'amosará l'iconu." + +#: ../server/vino-server.schemas.in.h:25 +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Remote Desktop preferences dialog." +msgstr "Esta clave especifica la direición de corréu-e a la que s'unvia la URL del escritoriu remotu si l'usuariu calca na URL nel diálogu de preferencies del Escritoriu Remotu." + +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "Cuándo hai d'amosar l'iconu d'estáu" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "Cuando ta activáu, desactiva'l fondu de pantalla al recibir una sesión válida" + +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica si hai qu'activar la estensión XDamage de X.org" + +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "Conseña si hai d'usar UPNP pa reunviar el puertu en routers" + +#: ../server/vino-status-icon.c:102 +#: ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "La compartición del escritori ta activada" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "Una persona ta coneutada" +msgstr[1] "%d persones tan coneutaes" + +#: ../server/vino-status-icon.c:207 +#: ../server/vino-status-tube-icon.c:175 +msgid "Error displaying preferences" +msgstr "Fallu al amosar les preferencies" + +#: ../server/vino-status-icon.c:226 +#: ../server/vino-status-tube-icon.c:191 +msgid "Error displaying help" +msgstr "Fallu al amosar l'aida" + +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Xandru Martino https://launchpad.net/~xandru-martino\n" +" xa https://launchpad.net/~xspuente" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "Comparta'l so escritoriu con otros usuarios" + +#: ../server/vino-status-icon.c:339 +#: ../server/vino-status-tube-icon.c:223 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "¿Daveres que quier desconeutar a «%s»?" + +#: ../server/vino-status-icon.c:342 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'usuariu remotu de «%s» desconeutaráse. ¿Daveres quier facelo?" + +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "¿Daveres que quier desconeutar a tolos veceros?" + +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Desconeutaránse tolos usuarios remotos. ¿Daveres quier facelo?" + +#: ../server/vino-status-icon.c:362 +#: ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "Desconeutar" + +#: ../server/vino-status-icon.c:388 +#: ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "_Preferencies" + +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "Desconeutar toos" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:427 +#: ../server/vino-status-tube-icon.c:275 +#, c-format +msgid "Disconnect %s" +msgstr "Desconeutar %s" + +#: ../server/vino-status-icon.c:448 +#: ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "Ai_da" + +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "Tocan_te a" + +#: ../server/vino-status-icon.c:589 +#: ../server/vino-status-tube-icon.c:391 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Fallu al aniciar libnotify\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "Otru usuariu ta viendo'l so escritoriu" + +#: ../server/vino-status-icon.c:612 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Un usuariu nel equipu «%s» ta viendo'l so escritoriu remotamente." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "Otru usuariu ta remanando'l so escritoriu" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Un usuariu nel equipu «%s» ta remanando'l so escritoriu remotamente." + +#: ../server/vino-status-icon.c:642 +#: ../server/vino-status-tube-icon.c:422 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Fallu al amosar la burbuxa de notificación: %s\n" + +#: ../server/vino-status-tube-icon.c:226 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Desconeutaráse al usuariu remotu «%s». ¿Tas seguru?" + +#: ../server/vino-tube-server.c:313 +#: ../server/vino-tube-server.c:342 +msgid "Share my desktop information" +msgstr "Compartir la información del mio escritoriu" + +#: ../server/vino-tube-server.c:317 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» refugó la invitación pa compartir." + +#: ../server/vino-tube-server.c:321 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» desconeutáu" + +#: ../server/vino-tube-server.c:348 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» ta controlando el to escritoriu en remotu." + +#: ../server/vino-tube-server.c:357 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Esperando a que «%s» se coneute a la pantalla." + +#: ../server/vino-util.c:115 +msgid "An error has occurred:" +msgstr "Asocedió un fallu:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Encaboxáu" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "ERROR: Maximum length of password is %d character. Please, re-enter the password." +msgid_plural "ERROR: Maximum length of password is %d characters. Please, re-enter the password." +msgstr[0] "FALLU: La llonxitú máxima de la contraseña ye de %d caráuter. Vuelva a introducir la contraseña." +msgstr[1] "FALLU: La llonxitú máxima de la contraseña ye de %d carauteres. Vuelva a introducir la contraseña." + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Camudando la contraseña de Vino.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Introduza la nueva contraseña de Vino: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Reescriba la nueva contraseña de Vino: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: la contraseña anovóse correchamente.\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Les contraseñes nun concasen.\n" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: nun se camudó la contraseña.\n" + +#: ../tools/vino-passwd.c:181 +#, c-format +msgid "Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "Fallu na comunicación con GConf. ¿Anicieste una sesión en GNOME?" + +#: ../tools/vino-passwd.c:183 +#, c-format +msgid "Error message:" +msgstr "Mensaxe de fallu:" + +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "Amosar la versión de Vino" + +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "- Anova la contraseña de Vino" + +#: ../tools/vino-passwd.c:219 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Execute «vino-passwd --help» pa ver una llista completa de les opciones de la llinia de comandos disponibles" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versión %s de Vino\n" + +#: ../tools/vino-passwd.c:238 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "FALLU: Nun tien permisos abondos pa camudar la contraseña de Vino.\n" + +#, fuzzy +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Preferencies d'Escritoriu Remotu" +#~ msgid "<b>Sharing</b>" +#~ msgstr "<b>Compartir</b>" +#~ msgid "<b>Security</b>" +#~ msgstr "<b>Seguridá</b>" +#~ msgid " " +#~ msgstr " " +#~ msgid " " +#~ msgstr " " +#~ msgid " " +#~ msgstr " " + diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..9692a35 --- /dev/null +++ b/po/az.po @@ -0,0 +1,368 @@ +# translation of vino.HEAD.po to Azerbaijani +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Mətin Əmirov <metin@karegen.com>, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-11-30 07:11+0000\n" +"PO-Revision-Date: 2004-09-13 21:36+0300\n" +"Last-Translator: Mətin Əmirov <metin@karegen.com>\n" +"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n" +"Language: az\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" + +#: capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Bu əmri e-poçt ilə yolla" + +#: capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Yardım göstərildiyi an xəta yarandı:\n" +"%s" + +#: capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Uzaq Masa Üstü" + +#: capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Uzaq masa üstü qurğularınızı seçin" + +#: capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Təhlükəsizlik</b>" + +#: capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Bölüşmə</b>" + +#: capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "Təsdiq _istə" + +#: capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Başqa istifadəçilərə masa üstümü _görməyə icazə ver" + +#: capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Uzaq Masa Üstü Seçimləri" + +#: capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Bəzi seçimlər qıfıllanıb" + +#: capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "İstifadəçilər, sizin masa üstünüzü bu əmri verərək görə bilərlər:" + +#: capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Bir istifadəçi masa üstünüzü görmək ya da idarə etmək istərsə:" + +#: capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Digər istifadəçilərə masa üstünümü idarə etmə icazəsi _ver" + +#: capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "Ş_ifrə:" + +#: capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "İstifadəçidən bu şifrə _soruşulmalıdır:" + +#: capplet/vino-url.c:158 +msgid "Address" +msgstr "Ünvan" + +#: capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "Pəncərənin işarə etdiyi ünvan" + +#: capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Məsləhət" + +#: capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Bu URL üçün məsləhət" + +#: capplet/vino-url.c:173 +msgid "URL color" +msgstr "URL rəngi" + +#: capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "URL etiketinin rəngi" + +#: server/vino-fb.c:947 server/vino-prompt.c:144 server/vino-server.c:851 +msgid "Screen" +msgstr "Ekran" + +#: server/vino-fb.c:948 +msgid "The screen to be monitored" +msgstr "İzlənəcək ekran" + +#: server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XVericiniz XTest əlavəsini dəstəkləmir - uzaq masa üstü səlahiyyəti sadəcə " +"olaraq görməklə məhdud qalacaqdır. \n" + +#: server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Promptun göstəriləcəyi ekran" + +#: server/vino-prompt.c:385 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' kompüterindəki istifadəçi masa üstünüzü uzaqdan görmək ya da idarə " +"etmək istəyir." + +#: server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Başqa bir istifadəçi masa üstünüzü görməyə çalışır.</b></big>" + +#: server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Başqa bir kompüterdəki istifadəçi masa üstünüzü uzaqdan görmək ya da idarə " +"etmək istəyir." + +#: server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Buna icazə vermək istəyirsinizmi?" + +#: server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Sual" + +#: server/vino-prompt.glade.h:5 server/vino-util.c:64 +msgid "_Allow" +msgstr "_İcazə ver" + +#: server/vino-prompt.glade.h:6 server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Rədd et" + +#: server/vino-server.c:852 +msgid "The screen for which to create a VNC server" +msgstr "VNC vericinin yaranacağı ekran" + +#: server/vino-server.c:859 +msgid "On Hold" +msgstr "Gözləmədə" + +#: server/vino-server.c:860 +msgid "Place all clients on hold" +msgstr "Bütün alıcıları gözləməyə al" + +#: server/vino-server.c:867 +msgid "Prompt enabled" +msgstr "Prompt fəaldır" + +#: server/vino-server.c:868 +msgid "Prompt the user about connection attempts" +msgstr "İstifadəçiyə bağlantı istəkləri haqqında prompt göstər" + +#: server/vino-server.c:875 +msgid "View Only" +msgstr "Sadəcə Göstər" + +#: server/vino-server.c:876 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Alıcıların klavuatura/ox girişlərinə icazə vermə" + +#: server/vino-server.c:883 +msgid "Require Encryption" +msgstr "Şifrələmə Məcburiyyəti Qoy" + +#: server/vino-server.c:884 +msgid "Require clients to use encryption" +msgstr "Alıcılara şifrələmə işlətmə məcburiyyəti qoy" + +#: server/vino-server.c:891 +msgid "Authentication methods" +msgstr "Şifrələmə yöntəmləri" + +#: server/vino-server.c:892 +msgid "The authentication methods this server should allow" +msgstr "Bu vericinin icazə verəcəyi şifrələmə yöntəmləri" + +#: server/vino-server.c:900 +msgid "VNC Password" +msgstr "VNC Şifrəsi" + +#: server/vino-server.c:901 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"(base64 kodlanmış) VncAuth yöntəmi işlədilərək növləri səlahiyyətləndirmə " +"şifrəsi" + +#: server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "İcazə verilən şifrələmə yöntəmləri" + +#: server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Uzaq masa üstü URL ünvanının göndəriləcəyi e-poçt ünvanı" + +#: server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Uzaqdan masa üstü yetişməsini fəallaşdır" + +#: server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." + +#: server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." + +#: server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." + +#: server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." + +#: server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." + +#: server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Uzaqdaki istifadəçilərə sadəcə olaraq masa üstünü görmə icazəsi ver" + +#: server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" şifrələməsi üçün şifrə lazımdır" + +#: server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Bağlantını tamamlamadan istifadəçidən təsdiq istə" + +#: server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Şifrələməni məcbur qıl" + +#: server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." + +#: server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." + +#: server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Uzaq masa üstü vericisi onsuzda fəaldır; çıxılır ...\n" + +#: server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Uzaq masa üstü vericisi bonobo-activation ilə qeyd edilə bilmədi; " +"çıxılır ...\n" + +#: session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Uzaq masa üstü vericisi sonlandı, yenidən başladılır\n" + +#: session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "%s fəallaşdırılması bacarılmadı: %s\n" + +#: session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "%s fəallaşdırılması bacarılmadı: Naməlum xəta\n" + +#: session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "Uzaq masa üstü vericisi başladıla bilmədi: həddindən çıx sınandı\n" + +#: session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Uzaq masa üstü vericisi başladılır" + +#: session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Uzaq masa üstü vericisi başladılmır" diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..81a9ccf --- /dev/null +++ b/po/be.po @@ -0,0 +1,788 @@ +# Insomnia <defragbrain@gmail.com>, 2009. +# Ihar Hrachyshka <ihar.hrachyshka@gmail.com>, 2011. +msgid "" +msgstr "" +"Project-Id-Version: vino.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2012-10-01 08:19+0300\n" +"Last-Translator: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>\n" +"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Памылка паказу URL-адрасу \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Памылка паказу даведкі:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Праверка злучанасці гэтай машыны з сеткай..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Ваш стол дасягальны толькі праз мясцовую сетку." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ці " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Астатнія могуць атрымаць доступ да вашага камп'ютара па адрасе %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ніхто не мае доступу да вашага стала." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Супольны доступ да стала" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Магчымасць прагляду вашага стала іншымі карыстальнікамі" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Настройкі супольнага доступу да стала" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Супольны доступ" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Некаторыя з гэтых настроек заблакіраваныя" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "_Дазваляць іншым карыстальнікам праглядаць ваш стол" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Супольны доступ да вашага стала ўключаны" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Дазваляць іншым _карыстальнікам кіраваць вашым сталом" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Аддаленыя карыстальнікі могуць кіраваць вашай мышшу і клавіятурай" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Бяспека" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Вы мусіце пацвердзіць кожны запыт доступу да гэтай машыны" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Патрабаваць у карыстальніка ўводу пароля:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Аўтаматычна настройваць UPnP-маршрутызатар для адкрыцця і перанакіравання " +"партоў" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Маршрутызатар мусіць мець уключаную функцыю UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Паказваць значок у абшары апавяшчэнняў" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Заўсёды" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Толькі калі нехта далучаны" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Ніколі" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Уключыць аддалены доступ да стала" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Калі ўключана, аддалены доступ да стала магчымы з дапамогай пратакола RFB. " +"Пасля карыстальнікі з аддаленых машын могуць злучацца са сталом з дапамогай " +"VNC-праглядальніка." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Патрабаваць пацвярджэння для заканчэння злучэння" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Калі ўключана, доступ да стала для аддаленых карыстальнікаў будзе " +"забаронены, пакуль карыстальнік хоста не дазволіць злучэнне. Рэкамендуем " +"ужыць гэту опцыю, асабліва для доступу, не абароненага паролем." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Дазволіць толькі аддалены прагляд стала" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Калі ўключана, аддаленым карыстальнікам дазволена толькі праглядаць стол. " +"Яны не змогуць кіраваць мышшу ці клавіятурай." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Сеткавы інтэрфейс для праслухоўвання" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Калі значэнне не настаўлена, сервер будзе праслухоўваць усе сеткавыя " +"інтэрфейсы.\n" +"\n" +"Настаўце гэту опцыю, калі вы хочаце прымаць злучэнні толькі для пэўных " +"сеткавых інтэрфейсаў, напрыклад: eth0, wifi0, lo і г.д." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Праслухоўваць альтэрнатыўны порт" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Калі ўключана, сервер будзе праслухоўваць нестандартны порт (не 5900). Сам " +"гэты порт вызначаецца значэннем ключа \"alternative-port\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Альтэрнатыўны нумар порта" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Порт для праслухоўвання, калі ключ \"use-alternative-port\" уключаны. " +"Магчымыя значэнні - у дыяпазоне ад 5000 да 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Патрабаваць шыфраванне" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Калі ўключана, аддаленыя карыстальнікі стала абавязаныя падтрымліваць " +"шыфраванне. Гэта вельмі важна, каб вы выкарыстоўвалі кліенцкую праграму з " +"падтрымкай шыфравання, акрамя рэдкіх сітуацый, калі вы цалкам давяраеце " +"ўласнай сетцы." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Дазволеныя спосабы ідэнтыфікацыі" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Пералік спосабаў ідэнтыфікацыі для доступу аддаленых карыстальнікаў да " +"стала.\n" +"\n" +"Ёсць два спосабы ідэнтыфікацыі: \"vnc\" азначае, што аддалены карыстальнік " +"будзе вымушаны ўвесці пароль перад злучэннем (сам пароль вызначаецца " +"значэннем ключа \"vnc-password\"); \"none\" дазваляе доступ любому " +"аддаленаму карыстальніку." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Пароль для ідэнтыфікацыі \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Пароль, які трэба ўвесці аддаленаму карыстальніку, калі ўключаны спосаб " +"ідэнтыфікацыі \"vnc\". Пароль закадаваны ў фармаце base64.\n" +"\n" +"Таксама падтрымліваецца значэнне \"keyring\", якое не з'яўляецца правільным " +"значэннем у фармаце base64) і якое азначае, што пароль захоўваецца ў вязцы " +"ключоў GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Адрас электроннай пошты, куды трэба выслаць URL-адрас аддаленага стала" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Гэты ключ вызначае адрас электроннай пошты, на які трэба паслаць URL-адрас " +"аддаленага стала, калі карыстальнік пстрыкне ў URL-адрас у дыялогавым акенцы " +"настроек Супольнага доступу да стала." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Блакіраваць экран пры адлучэнні апошняга карыстальніка" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Калі ўключана, экран будзе заблакіраваны пасля адлучэння апошняга аддаленага " +"кліента." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Калі трэба паказваць значок стану" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Гэты ключ кіруе паводзінамі значка стану. Магчымыя тры значэнні: \"always" +"\" (заўсёды паказваць значок), \"client\" (паказваць значок, толькі калі " +"нехта падлучаны да стала; гэта прадвызначаныя паводзіны праграмы), \"never" +"\" (ніколі не паказваць значок)." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Ці трэба выключыць фонавую выяву пры падлучэнні карыстальніка" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Калі ўключана, фонавая выява будзе выключана і заменена аднастайным колерам " +"пры паспяховым падлучэнні карыстальніка." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Ці трэба выкарыстоўваць UPnP-маршрутызатар для перанакіравання і адкрыцця " +"партоў" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Калі ўключана, UPnP-маршрутызатар будзе перанакіроўваць і адкрываць парты, " +"якія выкарыстоўваюцца праграмай Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Ці трэба выключыць пашырэнне XDamage графічнай сістэмы X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Калі ўключана, праграма не будзе выкарыстоўваць пашырэнне XDamage графічнай " +"сістэмы X.org. Гэта пашырэнне не на ўсіх відэадрайверах працуе беспамылкова " +"пры выкарыстанні 3D-эфектаў. Выключыўшы гэту опцыю, вы зможаце запускаць " +"Vino у такім праблемным асяроддзі, хоць гэта і замарудзіць рысаванне." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Апавяшчаць аб злучэнні" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Калі ўключана, праграма будзе паказваць апавяшчэнне пры падлучэнні " +"карыстальніка да сістэмы." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Пароль супольнадаступнага аддаленага стала" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Файл не з'яўляецца правільным desktop-файлам" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Невядомая версія desktop-файла \"%s\"" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Запуск %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Праграма не прымае дакументы з загаднага радка" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Невядомая опцыя запуску: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Немагчыма перадаць URI-адрасы дакументаў desktop-элементу з \"Type=Link\"" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Гэта не запускальны элемент" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Выключыць злучэнне з кіраўніком сеансаў" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Вызначыць файл, які змяшчае захаваныя настройкі" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Вызначыць ідэнтыфікатар для кіравання сеансам" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Опцыі для кіравання сеансам:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Паказаць опцыі для кіравання сеансам" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Х-сервер не падтрымлівае пашырэнне XTest. Аддалены доступ да стала будзе " +"функцыянаваць у рэжыме прагляду без магчымасці кіравання\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Запусціць у рэжыме Tube для падтрымкі \"Супольнага доступу да майго стала\"" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC-сервер для GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Каб убачыць поўны спіс наяўных опцый загаднага радка, выканайце \"vino-" +"server --help\"" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Супольны доступ да стала GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Аддалены стол карыстальніка %s на %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Атрыманы сігнал %d, выхад з праграмы." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Экран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Экран, на якім трэба паказаць акно пацвярджэння" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Памылка ініцыяцыі бібліятэкі \"libnotify\"\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Карыстальнік камп'ютара \"%s\" спрабуе аддалена праглядзець ці кіраваць " +"вашым сталом." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Іншы карыстальнік спрабуе праглядзець ваш стол." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Адмовіць" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Прыняць" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Не ўдалося адкрыць злучэнне з машістраллю: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сервер супольнага доступу да стала GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;доступ;супольны;рэсурс;аддалены;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Супольны доступ да стала ўключаны" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d чалавек праглядае ваш стол" +msgstr[1] "%d чалавекі праглядаюць ваш стол" +msgstr[2] "%d чалавек праглядаюць ваш стол" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Памылка паказу акна настроек" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Памылка паказу даведкі" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Распаўсюджваецца згодна з умовамі Агульнай Грамадскай Ліцэнзіі GNU (GPL) " +"версіі 2\n" +"\n" +"Vino з'яўляецца свабодным апраграмаваннем. Вы можаце распаўсюджваць\n" +"яго згодна з умовамі Агульнай Грамадскай Ліцэнзіі GNU (GPL),\n" +"апублікаванай Фондам свабоднага апраграмавання, версіі 2\n" +"ці любой пазнейшай.\n" +"\n" +"Праграма Vino распаўсюджваецца з надзеяй, што яна будзе карыснай,\n" +"але без ніякіх гарантый, у тым ліку камерцыйнай вартасці праграмы\n" +"і наогул яе карысці. Падрабязней глядзіце ў тэксце\n" +"Агульнай Грамадскай Ліцэнзіі GNU (GPL).\n" +"\n" +"Вы павінны былі атрымаць копію Агульнай Грамадскай Ліцэнзіі GNU (GPL)\n" +"разам з гэтай праграмай. Калі вы не атрымалі яе, паведаміце пра гэта\n" +"Фонду свабоднага апраграмавання на адрас: the Free Software Foundation,\n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Insomnia <defragbrain@gmail.com>\n" +"Ihar Hrachyshka <ihar.hrachyshka@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Супольны доступ да вашага стала для іншых карыстальнікаў" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ці вы насамрэч хочаце адлучыць \"%s\"?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Аддалены карыстальнік з \"%s\" будзе адлучаны. Вы ўпэўнены?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ці вы сапраўды хочаце адлучыць усіх кліентаў?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Усе аддаленыя карыстальнікі будуць адлучаныя. Вы ўпэўнены?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Адлучыць" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Настройкі" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Адлучыць усіх" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Адлучыць %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Дапамога" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Аб праграме" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Іншы карыстальнік праглядае ваш стол" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Карыстальнік камп'ютара \"%s\" аддалена праглядае ваш стол." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Іншы карыстальнік кіруе вашым сталом" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Карыстальнік камп'ютара \"%s\" аддалена кіруе вашым сталом." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Памылка падчас паказу выплыўнога апавяшчэння: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Аддалены карыстальнік \"%s\" будзе адлучаны. Вы ўпэўнены?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Супольны доступ да стала" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "\"%s\" адмовіўся ад запрашэння для супольнага доступу да стала." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Кантакт \"%s\" адлучаны" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "\"%s\" аддалена кіруе вашым сталом." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Чакаем злучэння кантакту \"%s\" з вашым экранам." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Дазволіць" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Адмовіць" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Узнікла памылка:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Скасавана" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"Памылка: максімальная даўжыня пароля роўная %d знаку. Паўтарыце ўвод пароля." +msgstr[1] "" +"Памылка: максімальная даўжыня пароля роўная %d знакам. Паўтарыце ўвод пароля." +msgstr[2] "" +"Памылка: максімальная даўжыня пароля роўная %d знакам. Паўтарыце ўвод пароля." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Змянення пароля Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Упішыце новы пароль Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Паўтарыце ўвод новага пароля Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: пароль паспяхова абноўлены.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "На жаль, паролі адрозніваюцца.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: пароль не зменены.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Паказаць нумар версіі Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Абнаўленне пароля Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Каб убачыць поўны спіс наяўных опцый загаднага радка, выканайце \"vino-" +"passwd --help\"" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO: версія %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "Памылка: вы не маеце дазволу на змяненне пароля Vino.\n" diff --git a/po/be@latin.po b/po/be@latin.po new file mode 100644 index 0000000..a056dbe --- /dev/null +++ b/po/be@latin.po @@ -0,0 +1,594 @@ +# Biełaruski pierakład vino +# Copyright (C) 2008 GNOME Project +# This file is distributed under the same license as the vino package. +# Ihar Hrachyshka <booxter@lacinka.org>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-27 14:50+0200\n" +"PO-Revision-Date: 2009-02-27 15:16+0200\n" +"Last-Translator: Ihar Hrachyshka <booxter@lacinka.org>\n" +"Language-Team: Belarusian Latin <i18n@mova.org>\n" +"Language: be@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "_Vyšli zahad praz email" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "_Skapijuj adras u abmienny bufer" + +#: ../capplet/vino-message-box.c:103 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Padčas demanstracyi adrasu \"%s\" uźnikła pamyłka" + +#: ../capplet/vino-preferences.c:198 ../capplet/vino-preferences.c:954 +msgid "Checking the connectivity of this machine..." +msgstr "Spraŭdžvańnie mahčymaści spałučeńnia z hetym kamputaram..." + +#: ../capplet/vino-preferences.c:798 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Padčas demanstracyi dapamohi ŭźnikła pamyłka:\n" +"%s" + +#: ../capplet/vino-preferences.c:839 +msgid "Your desktop is only reachable over the local network." +msgstr "Tvoj rabočy stoł dasiažny tolki dla karystalnikaŭ lakalnaj sietki." + +#: ../capplet/vino-preferences.c:840 ../capplet/vino-preferences.c:890 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Karystalniki mohuć dastupicca da tvajho kamputara praz adras %s." + +#: ../capplet/vino-preferences.c:940 +msgid "Nobody can access your desktop." +msgstr "Nichto nia moža dastupicca da tvajho rabočaha stała." + +#: ../capplet/vino-preferences.c:1081 ../server/vino-dbus-listener.c:501 +#: ../server/vino-server.c:156 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Nie ŭdałosia naviazać spałučeńnie z šynaj: %s\n" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "Vybiery sposab, u jaki inšyja karystalniki zmohuć bačyć tvoj stoł" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Addaleny stoł" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Notification Area</b>" +msgstr "<b>Abšar nahadvańnia</b>" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Security</b>" +msgstr "<b>Biaśpieka</b>" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "<b>Sharing</b>" +msgstr "<b>Supolny dostup</b>" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<i>Some of these preferences are locked down</i>" +msgstr "<i>Niekatoryja z hetych naładaŭ zablakavanyja</i>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "Al_ways display an icon" +msgstr "_Zaŭždy pakazvaj ikonu" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Allow other users to _view your desktop" +msgstr "Dazvol inšym karystalnikam _bačyć tvoj stoł" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Maximum size: 8 characters" +msgstr "Najbolšaja daŭžynia: 8 znakaŭ" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Nałady addalenaha stała" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Addalenyja karystalniki mohuć kiravać tvajoj myššu j klavijaturaju" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "Maršrutnik musić absłuhoŭvać UPnP" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "Ciabie spytajuć dazvołu ci zabarony na ŭsie ŭvachodnyja spałučeńni" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "Your desktop will be shared" +msgstr "Da tvajho stała budzie supolny dostup" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Allow other users to control your desktop" +msgstr "_Dazvol inšym karystalnikam kiravać maim stałom" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "_Aŭtamatyčna naładź sietku dla pryjmańnia spałučeńniaŭ" + +#: ../capplet/vino-preferences.glade.h:15 +msgid "_Never display an icon" +msgstr "_Nikoli nie pakazvaj ikony" + +#: ../capplet/vino-preferences.glade.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "Pakazvaj _ikonu, tolki kali chtości spałučyŭsia" + +#: ../capplet/vino-preferences.glade.h:17 +msgid "_Require the user to enter this password:" +msgstr "_Vymahaj ad karystalnika ŭvodu parolu:" + +#: ../capplet/vino-preferences.glade.h:18 +msgid "_You must confirm each access to this machine" +msgstr "_Ja paćviardžaju kožny dostup da majho kamputara" + +#: ../server/vino-dbus-listener.c:281 ../server/vino-dbus-listener.c:311 +#: ../server/vino-dbus-listener.c:352 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr "Padčas pierapracoŭvańnia paviedamleńnia \"%s\" skončyłasia pamiać" + +#: ../server/vino-dbus-listener.c:458 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "Padčas rehistracyi ściežki abjekta \"%s\" skončyłasia pamiać" + +#: ../server/vino-dbus-listener.c:537 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "Nie ŭdałosia zarezervavać nazvu D-Bus \"%s\"\n" + +#: ../server/vino-dbus-listener.c:545 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Server addalenych stałoŭ užo ŭklučany. Vychad...\n" + +#: ../server/vino-main.c:89 +msgid "GNOME Remote Desktop" +msgstr "Addaleny stoł GNOME" + +#: ../server/vino-main.c:99 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Tvoj server X nie padtrymlivaje pašyreńnia XTest - addalenyja stały možna " +"budzie tolki bačyć\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Addaleny stoł %s na %s" + +#: ../server/vino-prefs.c:579 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "Atrymany syhnał %d, vychad...\n" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "Ekran" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "Ekran, na jakim pakazvać zapytańnie" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Karystalnik kamputara \"%s\" sprabuje ŭbačyć ci pakiravać tvaim stałom." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Inšy karystalnik choča ŭbačyć tvoj stoł.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Karystalnik inšaha kamputara sprabuje ŭbačyć ci pakiravać tvaim stałom." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Ci dazvolić im heta?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Pytańnie" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Dazvol" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Admoŭ" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Server addalenaha stała GNOME" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Dazvolenyja metady aŭtaryzacyi" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Alternatyŭny numar portu" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adras email, jakomu treba vysłać adras URL addalenaha stała" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Uklučy addaleny dostup da stała" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" + +#: ../server/vino-server.schemas.in.h:13 +msgid "Listen an alternative port" +msgstr "" + +#: ../server/vino-server.schemas.in.h:14 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Lock the screen when last user disconnect" +msgstr "" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Network interface for listening" +msgstr "" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Prompt the user before completing a connection" +msgstr "" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Require encryption" +msgstr "" + +#: ../server/vino-server.schemas.in.h:21 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" + +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: ../server/vino-server.schemas.in.h:25 +msgid "When the status icon should be shown" +msgstr "" + +#: ../server/vino-server.schemas.in.h:26 +msgid "When true, disable the background on receive valid session" +msgstr "" + +#: ../server/vino-server.schemas.in.h:27 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "" + +#: ../server/vino-status-icon.c:102 +msgid "Desktop sharing is enabled" +msgstr "Supolny dostup da stała ŭklučany" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "" +msgstr[1] "" + +#: ../server/vino-status-icon.c:207 +msgid "Error displaying preferences" +msgstr "Pamyłka vyjaŭleńnia akna naładaŭ" +" %s" + +#: ../server/vino-status-icon.c:226 +msgid "Error displaying help" +msgstr "Pamyłka demanstracyi dapamohi" + +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "Ihar Hračyška <booxter@lacinka.org>" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "Zrabi svoj stoł supolna dastupnym dla inšych karystalnikaŭ" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:338 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ty sapraŭdy chočaš adłučyć \"%s\"?" + +#: ../server/vino-status-icon.c:340 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Addaleny karystalnik z \"%s\" budzie adłučany. Ty ŭpeŭnieny?" + +#: ../server/vino-status-icon.c:345 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ty sapraŭdy chočaš adłučyć usich klijentaŭ?" + +#: ../server/vino-status-icon.c:346 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Usie addalenyja karystalniki buduć adłučanyja. Ty ŭpeŭnieny?" + +#: ../server/vino-status-icon.c:358 +msgid "Disconnect" +msgstr "Adłučy" + +#: ../server/vino-status-icon.c:384 +msgid "_Preferences" +msgstr "_Nałady" + +#: ../server/vino-status-icon.c:399 +msgid "Disconnect all" +msgstr "Adłučy ŭsich" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:423 +#, c-format +msgid "Disconnect %s" +msgstr "Adłučy %s" + +#: ../server/vino-status-icon.c:443 +msgid "_Help" +msgstr "_Dapamoha" + +#: ../server/vino-status-icon.c:451 +msgid "_About" +msgstr "_Ab prahramie" + +#: ../server/vino-status-icon.c:584 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Pamyłka inicyjalizacyi libnotify\n" + +#: ../server/vino-status-icon.c:604 +msgid "Another user is viewing your desktop" +msgstr "Inšy karystalnik bačyć tvoj stoł" + +#: ../server/vino-status-icon.c:605 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Karystalnik kamputara \"%s\" addalena naziraje za tvaim stałom." + +#: ../server/vino-status-icon.c:610 +msgid "Another user is controlling your desktop" +msgstr "Inšy karystalnik kiruje tvaim stałom" + +#: ../server/vino-status-icon.c:611 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Karystalnik kamputara \"%s\" addalena kiruje tvaim stałom." + +#: ../server/vino-status-icon.c:633 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Pamyłka demanstracyi nahadvańnia: %s\n" + +#: ../server/vino-util.c:115 +msgid "An error has occurred:" +msgstr "Uźnikła pamyłka:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Anulavana" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"PAMYŁKA: Maksymalnaja daŭžynia parolu - %d znak. Kali łaska, pravilna " +"ŭpišy svoj parol." +msgstr[1] "" +"PAMYŁKA: Maksymalnaja daŭžynia parolu - %d znaki. Kali łaska, pravilna " +"ŭpišy svoj parol." +msgstr[2] "" +"PAMYŁKA: Maksymalnaja daŭžynia parolu - %d znakaŭ. Kali łaska, pravilna " +"ŭpišy svoj parol." + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Źmiena parolu dla „Vino”.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Upišy novy parol dla „Vino”: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Paŭtary novy parol dla „Vino”: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: parol paśpiachova źmienieny.\n" + +#: ../tools/vino-passwd.c:171 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Paroli roźniacca.\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: parol nia źmienieny.\n" + +#: ../tools/vino-passwd.c:187 +msgid "Show Vino version" +msgstr "Pakažy versiju „Vino”" + +#: ../tools/vino-passwd.c:196 +msgid "- Updates Vino password" +msgstr "- Źmianiaje parol dla „Vino”" + +#: ../tools/vino-passwd.c:206 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Uruchom \"vino-passwd --help\", kab ubačyć poŭny śpis mahčymych opcyjaŭ zahadnaha radka" + +#: ../tools/vino-passwd.c:213 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versija „Vino”: %s\n" + +#: ../tools/vino-passwd.c:222 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "PAMYŁKA: tabie nie staje dazvołu dla źmieny parolu Vino.\n" + diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..3005c4d --- /dev/null +++ b/po/bg.po @@ -0,0 +1,598 @@ +# Bulgarian translation of vino po-file. +# Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011, 2012, 2013, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Rostislav "zbrox" Raykov <zbrox@i-space.org>, 2004, 2005, 2006. +# Alexander Shopov <ash@kambanaria.org>, 2007, 2008, 2009, 2011, 2012, 2013. +# Alexander Shopov <ash@kambanaria.org>, 2015. +# +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-09 19:15+0200\n" +"PO-Revision-Date: 2015-03-09 19:15+0200\n" +"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" +"Language-Team: Bulgarian <dict@fsa-bg.org>\n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Запитване до потребителя преди завършване на връзката" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ако е истина, на отдалечените потребители не им е позволен достъп, докато " +"потребителят на машината-приемник не одобри връзката. Това е препоръчително, " +"особено ако достъпът не е защитен с парола." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Отдалечените потребители могат само да наблюдават работното място" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ако е истина, на отдалечените потребители ще се позволява само да наблюдават " +"работното място. Отдалечените потребители няма да могат да използват мишката " +"или клавиатурата." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Мрежов интерфейс, който да се следи" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ако не е зададен, сървърът ще следи всички мрежови интерфейси.\n" +"\n" +"Задайте стойност, ако искате да се слуша само на определен интерфейс, напр. " +"eth0, wifi0, lo, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Слушане на нестандартен порт" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ако е истина, сървърът ще слуша на друг порт вместо на стандартния (5900). " +"Портът трябва да е указан в ключа „alternative_port“." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Нестандартен номер на порт" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Портът, на който сървърът ще слуша, ако ключът „use_alternative_port“ е " +"зададен да е истина. Валидните стойности са в обхвата от 5000 до 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Изискване на шифриране" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ако е истина, отдалечените потребители са задължени да поддържат шифриране. " +"Силно препоръчително е да използвате клиент, който поддържа шифриране, освен " +"ако мрежата е сигурна." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Позволени методи за идентификация" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Изброява методите за идентификация, с които отдалечените потребители могат " +"да получат достъп до работното място.\n" +"\n" +"Има два възможни метода за идентификация: „vnc“ — изисква парола от " +"отдалечения потребител (паролата е определена от ключа „vnc_password“), " +"преди да позволи връзката, и „none“ — позволява на всеки потребител да се " +"свърже." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Нужна е парола за идентификация „vnc“" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Паролата, за която отдалечения потребител ще бъде попитан, ако се използва " +"метода за идентификация „vnc“. Паролата определена от ключа е кодирана по " +"base64.\n" +"\n" +"Специалната стойност „keyring“ (ключодържател, това не е правилен base64) " +"означава, че паролата се съхранява в ключодържателя на GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Адрес на е-поща, на която трябва да се прати адресът на отдалеченото работно " +"място" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Този ключ определя е-пощата, на която да се прати адресът на отдалеченото " +"работно място, ако потребителят натисне с мишката върху адреса в настройките " +"за отдалеченото работно място." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "" +"Заключване на екрана след като и последният потребител прекъсне връзката" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ако е истина, екранът ще бъде заключен, след като и последният потребител " +"прекъсне връзката." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Кога да се показва иконата за състоянието" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Този ключ определя поведението на иконата за състоянието. Има три варианта: " +"„always“ — иконата винаги да се показва, „client“ — иконата да се показва, " +"само когато някой е свързан (това е стандартната настройка), „never“ — " +"никога да не се показва." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Когато е истина, при получаване на успешна сесия фонът се изключва" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Когато е истина, при получаване на успешна сесия фонът се изключва и се " +"заменя с единствен цвят." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Дали да се ползва UPNP за пренасочване на порт от маршрутизаторите" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ако е истина и маршрутизаторът поддържа протокола UPnP, портовете ползвани " +"от vino трябва автоматично да се препредават." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Дали разширението XDamage на X.org да се изключи" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ако е истина, разширението XDamage на X.org няма да се ползва. То не работи " +"правилно с някои видео драйвери при ползването на триизмерни ефекти. " +"Изключването му ще позволи на vino да работи в тези условия за сметка на " +"малко по-бавна работа." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Известяване при свързване" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ако е истина, ще се известява, когато потребител се свърже със системата." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Файлът не е във формат .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Непозната версия на файла: %s" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Стартиране на %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Програмата не приема документи през командния ред" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Непозната опция при стартиране: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "В обекти от вида „Type=Link“ не може да се подават адреси на документи" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Не е обект за стартиране" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Изключване на връзката с управлението на сесиите" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Указване на файла със запазените настройки" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Указване на идентификатор за управлението на сесии" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ИДЕНТИФИКАТОР" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Опции на управлението на сесии:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Показване на настройките за управлението на сесиите" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Вашият X сървър не поддържа разширението XTest — отдалеченият достъп ще " +"позволява само наблюдение\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Стартиране в режим за споделяне по Джабър за „Споделяне на работното място“" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "— сървър за VNC за GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "Изпълнете „vino-passwd --help“, за да видите списъка с налични опции" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Споделяне на работно място" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Отдалечено работно място на %s на %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Получен е сигнал %d, спиране на програмата." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Екран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Екранът, на който да се появи запитването" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Грешка при инициализирането на libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Потребител на компютъра „%s“ се опитва отдалечено да наблюдава или " +"контролира работното ви място." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Друг потребител се опитва да наблюдава работното ви място." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Отказване" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Приемане" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Неуспех при отваряне на връзка към шината: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Споделяне на работното място" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сървър за споделяне на работно място на GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "споделено;отдалечено;работно;място;мрежа;vnc;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Включено е споделяне на работното място" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Един потребител наблюдава работното ви място" +msgstr[1] "%d потребителя наблюдават работното ви място" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Грешка при показване на настройките" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Грешка при показване на помощта" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Лицензирано по условията на Общия публичен лиценз на ГНУ, версия 2\n" +"\n" +"Тази програма (Vinagre) е свободен софтуер. Можете да я \n" +"разпространявате и/или променяте под условията на Общия публичен\n" +"лиценз на GNU (GNU GPL), както е публикуван от Фондацията за\n" +"свободен софтуер — версия 2 на лиценза или (по ваше решение) по\n" +"-късна версия.\n" +"\n" +"Тази програма се разпространява с надеждата, че ще бъде полезна,\n" +"но БЕЗ НИКАКВИ ГАРАНЦИИ, дори и косвените за ПРОДАЖБА или\n" +"СЪОТВЕТСТВИЕ С КАКВАТО И ДА Е УПОТРЕБА. За подробности погледнете\n" +"Общия публичен лиценз на GNU.\n" +"\n" +"Трябва да сте получили копие от Общия публичен лиценз на GNU (GNU\n" +"GPL) заедно с тази програма. Ако не сте, пишете до Free Software\n" +"Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,\n" +"USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Ростислав Райков <zbrox@i-space.org>\n" +"Александър Шопов <ash@kambanaria.org>\n" +"\n" +"Проектът за превод на GNOME има нужда от подкрепа.\n" +"Научете повече за нас на <a href=\"http://gnome.cult.bg\">http://gnome.cult." +"bg</a>\n" +"Докладвайте за грешки на <a href=\"http://gnome.cult.bg/bugs\">http://gnome." +"cult.bg/bugs</a>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Споделяне на работното място с други потребители" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Сигурни ли сте, че искате да изключите „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Отдалеченият потребител от „%s“ ще бъде изключен. Сигурни ли сте?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Сигурни ли сте, че искате да изключите всички потребители?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Всички отдалечени потребители ще бъдат изключени. Сигурни ли сте?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Изключване" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Настройки" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Изключване на всички" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Изключване на %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Помо_щ" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Относно" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Друг потребител наблюдава работното ви място" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Потребител на компютъра „%s“ отдалечено наблюдава работното ви място." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Друг потребител контролира работното ви място" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Потребител на компютъра „%s“ отдалечено контролира работното ви място." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Грешка при изобразяването на съобщението за уведомяване: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Отдалеченият потребител от „%s“ ще бъде изключен. Сигурни ли сте?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Споделяне на информацията за работното място" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s“ отказа поканата за споделяне на работното място" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s“ се изключи" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Потребителят „%s“ отдалечено контролира работното ви място." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Изчакване на „%s“ да се свърже с екрана ви." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Позволяване" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Отказване" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Възникна грешка:" diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 0000000..924664d --- /dev/null +++ b/po/bn.po @@ -0,0 +1,774 @@ +# Bengali translation for vino +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Runa Bhattacharjee <runa@bengalinux.org>, 2004. +# Runa Bhattacharjee <runabh@gmail.com>, 2007. +# Runa Bhattacharjee <runab@redhat.com>, 2008, 2009. +# Israt Jahan <israt@ankur.org.bd>, 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: bn\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&component=Preferences Dialog\n" +"POT-Creation-Date: 2009-09-14 11:42+0000\n" +"PO-Revision-Date: 2010-03-25 14:42+0600\n" +"Last-Translator: Israt Jahan <israt@ankur.org.bd>\n" +"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n" +"Language: bn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "ইমেইলের মাধ্যমে ঠিকানা পাঠিয়ে দেয়া হবে (_S)" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "ক্লিপবোর্ডের মধ্যে ঠিকানা অনুলিপি করা হবে (_C)" + +#: ../capplet/vino-message-box.c:103 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" প্রদর্শনে ত্রুটি হয়েছিল" + +#: ../capplet/vino-preferences.c:197 ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "বর্তমান মেশিনের সংযোগ ব্যবস্থা পরীক্ষা করা হচ্ছে..." + +#: ../capplet/vino-preferences.c:804 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"সহায়িকা প্রদর্শনে ত্রুটি দেখা হয়েছিল:\n" +"%s" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "" +"শুধুমাত্র স্থানীয় নেটওয়ার্কের মাধ্যমে আপনার ডেস্কটপের সাথে সংযোগ স্থাপন করা সম্ভব।" + +#: ../capplet/vino-preferences.c:854 ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " অথবা" + +#: ../capplet/vino-preferences.c:859 ../capplet/vino-preferences.c:933 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"%s ঠিকানার মাধ্যমে অন্যান্য ব্যক্তিরা আপনার কম্পিউটারের সাথে সংযোগ স্থাপন করতে " +"পারবেন।" + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "আপনার ডেস্কটপ অন্য কোনো ব্যক্তি দ্বারা ব্যবহার করতে পারবে না।" + +#: ../capplet/vino-preferences.c:1130 ../server/vino-server.c:164 +#: ../server/vino-server.c:194 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "বাস-র সাথে সংযোগ আরম্ভ করতে ব্যর্থ: %s\n" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "দূরবর্তী ব্যবহারকারীদের জন্য অাপনার ডেস্কটপ প্রদর্শনের প্রণালী নির্ধারণ করুন" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "দূরবর্তী ডেস্কটপ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "সবসময় আইকন প্রদর্শিত হবে (_w)" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "অন্যান্য ব্যবহারকারীদেরকে অাপনার ডেস্কটপ দেখার অনুমতি প্রদান করা হবে (_v)" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "সর্বোচ্চ মাপ: ৮ অক্ষর" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Notification Area" +msgstr "বিজ্ঞপ্তিস্থল" + +# msgstr "অন্যান্য ব্যবহারকারীদেরকে অাপনার ডেস্কটপ প্রত্যক্ষ করবার অনুমতি প্রদান করুন (_প)" +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "দূরবর্তী ডেস্কটপ সংক্রান্ত পছন্দ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "দূরবর্তী ব্যবহারকারীরা, আপনার সিস্টেমের মাউজ ও কীবোর্ড নিয়ন্ত্রণ করতে পারবেন" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Security" +msgstr "নিরাপত্তা" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Sharing" +msgstr "যৌথ ব্যবহার" + +# msgstr "দূরবর্তী ডেস্কটপ সংক্রান্ত বৈশিষ্ট্যাবলী" +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "এর মধ্যে কয়েকটি পছন্দসই মান লক করা অাছে" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "রাউটারের মধ্যে UPnP বৈশিষ্ট্য সক্রিয় থাকা আবশ্যক" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "" +"আগমনকারী সকল সংযোগের অনুরোধ অনুমোদন অথবা প্রত্যাখ্যান করার পূর্বে জিজ্ঞাসা করা হবে" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "Your desktop will be shared" +msgstr "অন্য ব্যবহারকারীদের সাথে আপনার ডেস্কটপ শেয়ার করা হবে" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "" +"অন্যান্য ব্যবহারকারীর দ্বারা আপনার ডেস্কটপ নিয়ন্ত্রণের অনুমতি প্রদান করা হবে (_A)" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "স্বয়ংক্রিয়রূপে সংযোগ গ্রহণ করার উদ্দেশ্যে নেটওয়ার্ক কনফিগার করা হবে (_C)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "আইকন কখনো প্রদর্শিত হবে না (_N)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "শুধুমাত্র সংযুক্ত ব্যবহারকারী উপস্থিত থাকলে আইকন প্রদর্শন করা হবে (_O)" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "ব্যবহারকারীকে বাধ্যতামূলকভাবে পাসওয়ার্ড লিখতে হবে: (_R)" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "" +"বর্তমান মেশিনের সাথে সংযোগ স্থাপন করতে ইচ্ছুক প্রতিটি অনুরোধ অনুমোদন করা হবে (_Y)" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "এটি কার্যকর .desktop ফাইল নয়" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ডেস্কটপ ফাইলের অজ্ঞাত সংস্করণ '%s'" + +#: ../server/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s আরম্ভ করা হচ্ছে" + +#: ../server/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "অ্যাপ্লিকেশন দ্বারা কমান্ড-লাইনের মাধ্যমে নথি গ্রহণ করা হয় না" + +#: ../server/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "অজানা চালুকরণ অপশন: %d" + +#: ../server/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ডেস্কটপ ভুক্তির ক্ষেত্রে নথির URI উল্লেখ করা সম্ভব নয়" + +#: ../server/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "চালু করার যোগ্য আইটেম নয়" + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "সেশন ব্যবস্থাপকের সাথে সংযোগ বিচ্ছিন্ন করা হবে" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "সংরক্ষিত কনফিগারেশন ধারণকারী ফাইল উল্লেখ করুন" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "সেশন ব্যবস্থাপনার ID উল্লেখ করুন" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "সেশন ব্যবস্থাপনা সংক্রান্ত অপশন:" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "সেশন ব্যবস্থাপনা সংক্রান্ত অপশন প্রদর্শন করা হবে" + +#: ../server/vino-dbus-listener.c:460 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "দূরবর্তী ডেস্কটপ সার্ভার বর্তমানে চলছে; প্রস্থান করা হচ্ছে ...\n" + +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "- GNOME-র সাথে ব্যবহারযোগ্য VNC সার্ভার" + +#: ../server/vino-main.c:75 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"কমান্ড-লাইন থেকে ব্যবহারযোগ্য অপশনগুলোর সম্পূর্ণ তালিকা দেখার জন্য 'vino-server --" +"help' কমান্ড প্রয়োগ করুন" + +#: ../server/vino-main.c:97 +msgid "GNOME Remote Desktop" +msgstr "GNOME দূরবর্তী ডেক্সটপ" + +#: ../server/vino-main.c:107 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"অাপনার XServer কোনো XTest এক্সটেনশন সমর্থন করে না - দূরবর্তী ডেস্কটপ ব্যবহারের সময় " +"শুধুমাত্র দেখা সম্ভব হবে\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:61 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:73 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s'র দূরবর্তী ডেস্কটপ, %s-র উপর" + +#: ../server/vino-prefs.c:607 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "%d সিগন্যাল গ্রহন করেছে, প্রস্থান করা হচ্ছে...\n" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "পর্দা" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "প্রম্পট প্রদর্শনকারী পর্দা" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ দেখতে অথবা " +"নিয়ন্ত্রণ করার চেষ্টা করছেন।" + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"অন্য কোনো কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ দেখতে " +"অথবা নিয়ন্ত্রণ করার চেষ্টা করছেন।" + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "অন্য এক ব্যবহারকারী অাপনার ডেস্কটপ দেখার প্রচেষ্টা করছেন।" + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "অাপনি কি তাদেরকে এই কাজের জন্য অনুমতি প্রদান করতে ইচ্ছুক?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "প্রশ্ন" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:65 +msgid "_Allow" +msgstr "অনুমোদন করা হবে (_A)" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:66 +msgid "_Refuse" +msgstr "প্রত্যাখ্যান করা হবে (_R)" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "GNOME দূরবর্তী ডেস্কটপ সার্ভার" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "ব্যবহারযোগ্য অনুমোদন মেথড" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "বিকল্প পোর্ট নম্বর" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "দূরবর্তী ডেস্কটপের URL প্রেরণের উদ্দেশ্যে চিহ্নিত ইমেইল ঠিকানা" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "দূরবর্তী অবস্থান থেকে ডেস্কটপ ব্যবহার সক্রিয় করা হবে" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" +"মান নির্ধারিত না হলে, সার্ভার দ্বারা সব নেটওয়ার্ক ইন্টারফেসে অপেক্ষা করা হবে। কোনো " +"সুনির্দিষ্ট নেটওয়ার্ক ইন্টারফেস থেকে সংযোগ গ্রহণ করতে ইচ্ছুক হলে এই মান নির্ধারণ করুন। " +"উদাহরণ: eth0, wifi0, lo, ..." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"সত্য (true) হলে, RFB প্রোটোকলের মাধ্যমে দূরবর্তী ডেস্কটপ ব্যবহার করার অনুমতি প্রদান " +"করা হবে। দূরবর্তী মেশিনের ব্যবহারকারীরা vncviewer-র মাধ্যমে ডেস্কটপের সাথে সংযোগ " +"করতে পারবেন।" + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"সত্য (true) হলে, হোস্ট মেশিনের অনুমতি ছাড়া, ডেস্কটপ ব্যবহার করতে ইচ্ছুক দূরবর্তী " +"ব্যবহারকারীদের সংযোগ অনুমোদন করা হবে না। পাসওয়ার্ড দ্বারা সুরক্ষিত না থাকলে এটা " +"ব্যবহার করা বাঞ্ছনীয়।" + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"সত্য (true) হলে, দূরবর্তী ব্যবহারকারীরা ডেস্কটপ শুধুমাত্র দেখতে সক্ষম হবেন। দূরবর্তী " +"ব্যবহারকারীরা মাউস অথবা কীবোর্ড ব্যবহার করতে সক্ষম হবেন না।" + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"সত্য (true) হলে, দূরবর্তী অবস্থান থেকে ডেস্কটপ ব্যবহারকারীরা এনক্রিপশন করতে সক্ষম " +"হবেন। মধ্যবর্তী নেটওয়ার্ক যদি নির্ভরযোগ্য (trusted) না হয় তাহলে এনক্রিপশন " +"সমর্থনকারী একটি ক্লায়েন্ট ব্যবহার করা বাঞ্ছনীয়।" + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"সত্য (true) হলে, সর্বশেষ দূরবর্তী ক্লায়েন্ট বিচ্ছিন্ন হওয়ার পরে পর্দা লক করা হবে।" + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"সত্য (true) হলে, ডিফল্ট পোর্টের (5900) পরিবর্তে সার্ভার একটি ভিন্ন পোর্টে অপেক্ষা " +"করবে। এই পোর্টটি 'alternative_port' কী দ্বারা নির্দিষ্ট করা আবশ্যক।" + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"সত্য (true) হলে, X.org-র XDamage এক্সটেনশন ব্যবহার করা হবে না। 3D ইফেক্ট " +"ব্যবহারকালে, কয়েকটি ভিডিও ড্রাইভারের সাথে এই এক্সটেনশনটি সঠিকরূপে কাজ করতে সক্ষম " +"নয়। এটি নিষ্ক্রিয় করা হলে, এই ধরনের পরিবেশে vino কাজ করতে সক্ষম হবে, কিন্তু " +"রেন্ডারিংয়ের গতি হ্রাস পাবে।" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" +"সত্য (true) হলে, vino দ্বারা ব্যবহার পোর্টকে স্বয়ংক্রিয়ভাবে রাউটারে অনুবর্তনের জন্য " +"UPNP প্রোটোকল ব্যবহার করা হবে।" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "বিকল্প পোর্টে অপেক্ষা করা হবে" + +#: ../server/vino-server.schemas.in.h:15 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"দূরবর্তী ব্যবহারকারীরা যে সকল অনুমোদন প্রক্রিযার মাধ্যমে ডেস্কটপ ব্যবহার করতে সক্ষম " +"হবেন তা তালিকাভুক্ত করে। দুটি সম্ভাব্য অনুমোদন প্রক্রিয়া উপস্থিত অাছে; \"vnc\" -র " +"দ্বারা দূরবর্তী ব্যবহারকারীকে সংযোগের পূর্বে পাসওয়ার্ডের জন্য অনুরোধ করা হবে (এই " +"পাসওযার্ডটি vnc_password কী দ্বারা নির্ধারিত হয়) এবং \"none\" যার দ্বারা যে কোনো " +"দূরবর্তী ব্যবহারকারী সংযোগ করার অনুমতি পাবেন।" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "সর্বশেষ ব্যবহারকারী বিচ্ছিন্ন করার পরে পর্দা লক করা হবে" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "অপেক্ষা করার জন্য চিহ্নিত নেটওয়ার্ক ইন্টারফেস" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "শুধুমাত্র দূরবর্তী ব্যবহারকারীদেরকে ডেস্কটপ দেখার অনুমোদন প্রদান করা হবে" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" অনুমোদন প্রক্রিয়ার জন্য পাসওয়ার্ড প্রয়োজন" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "সংযোগ প্রক্রিয়া সম্পন্ন করার পূর্বে ব্যবহারকারীদেরকে সচেতন করা হবে" + +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "এনক্রিপশন প্রয়োজন" + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"\"vnc\" অনুমোদন প্রক্রিয়া ব্যবহার করা হলে দূরবর্তী ব্যবহারকারীদেরকে যে পাসওয়ার্ড " +"লিখতে অনুরোধ করা হবে।" + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"'use_alternative_port' কীরের মান সত্য (true) হলে সার্ভার দ্বারা যে পোর্টে অপেক্ষা " +"করা হবে। কার্যকর মান 5000 থেকে 50000-র মধ্যে হওয়া আবশ্যক।" + +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"অবস্থাসূচক আইকনের আচরণ এই কী দ্বারা নিয়ন্ত্রণ করা হয়। এই ক্ষেত্রে তিনটি অপশন উপস্থিত " +"রয়েছে: \"always (সবসময়)\" - আইকন সবসময় প্রদর্শিত হবে; \"client (ক্লায়েন্ট)\" - " +"কোনো সংযুক্ত ব্যবহারকারী উপস্থিত থাকলে আইকন প্রদর্শন করা হবে এবং ডিফল্ট রূপে এই অপশন " +"প্রয়োগ করা হয়; \"never (কখনো নয়)\" - এই আইকন কখনো প্রদর্শন করা হবে না।" + +#: ../server/vino-server.schemas.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"দূরবর্তী ডেস্কটপের বৈশিষ্ট্যাবলী সংক্রান্ত ডায়লগের উপর ব্যবহারকারী ক্লিক করলে, যে " +"ইমেইল ঠিকানায় দূরবর্তী ডেস্কটপের URL প্রেরিত হবে, তা এই কি'র দ্বারা চিহ্নিত হবে।" + +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "অবস্থাসূচক আইকন কোন সময় প্রদর্শন করা হবে" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "সত্য (true) হলে, কার্যকর সেশান প্রাপ্ত হলে পটভূমি নিষ্ক্রিয় করা হবে" + +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org-র XDamage এক্সটেনশন নিষ্ক্রিয় করা হবে কি না" + +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "রাউটারের মধ্যে পোর্ট অনুবর্তনের জন্য UPNP ব্যবহার করা হবে কি না" + +#: ../server/vino-status-icon.c:102 ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "ডেস্কটপে শেয়ার ব্যবস্থা সক্রিয় করা হয়েছে" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "একজন ব্যবহারকারী সংযুক্ত রয়েছেন" +msgstr[1] "%d-জন ব্যবহারকারী সংযুক্ত রয়েছেন" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-tube-icon.c:175 +msgid "Error displaying preferences" +msgstr "পছন্দের মান প্রদর্শনে সমস্যা দেখা দিয়েছে" + +#: ../server/vino-status-icon.c:226 ../server/vino-status-tube-icon.c:191 +msgid "Error displaying help" +msgstr "সহায়িকা প্রদর্শনে সমস্যা দেখা" + +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU General Public License-র ২য় সংস্করণের শর্তাধীন লাইসেন্সকৃত\n" +"\n" +"Vino একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU \n" +"General Public License'র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে;\n" +" লাইসেন্সের সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) পরের কোনো সংস্করণের অধীন।\n" +"Vino বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু \n" +"এটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট কর্ম\n" +" সাধনের জন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General Public \n" +"License পড়ুন।\n" +"\n" +"Vino-র সাথে GNU General Public License'র একটি প্রতিলিপি পাওয়া উচিত; না থাকলে\n" +" নিম্নলিখিত ঠিকানায় লিখে তা সংগ্রহ করুন Free Software Foundation, Inc., 51\n" +" Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "অঙ্কুর প্রকল্পের পক্ষে, রুণা ভট্টাচার্য্য (runabh@gmail.com)\n" +"ইসরাত জাহান <israt@ankur.org.bd>" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "অন্য ব্যবহারকারীদের সাথে আপনার ডেস্কটপ শেয়ার করুন" + +#: ../server/vino-status-icon.c:339 ../server/vino-status-tube-icon.c:223 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "আপনি কি নিশ্চিতরূপে '%s' থেকে সংযোগ বিচ্ছিন্ন করতে ইচ্ছুক?" + +#: ../server/vino-status-icon.c:342 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' থেকে সংযুক্ত দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "আপনি কি নিশ্চিতরূপে সব ক্লায়েন্টদের সাথে সংযোগ বিচ্ছিন্ন করতে ইচ্ছুক?" + +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "সকল দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-status-icon.c:362 ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "বিচ্ছিন্ন করুন" + +#: ../server/vino-status-icon.c:388 ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "পছন্দ (_P)" + +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "সব বিচ্ছিন্ন করুন" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:427 ../server/vino-status-tube-icon.c:275 +#, c-format +msgid "Disconnect %s" +msgstr "%s-কে বিচ্ছিন্ন করুন" + +#: ../server/vino-status-icon.c:448 ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "সহায়তা (_H)" + +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "পরিচিতি (_A)" + +#: ../server/vino-status-icon.c:589 ../server/vino-status-tube-icon.c:391 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify আরম্ভ করতে ত্রুটি\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "অন্য একজন ব্যবহারকারী বর্তমানে আপনার ডেস্কটপ দেখছেন" + +#: ../server/vino-status-icon.c:612 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ দেখছেন।" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "অন্য একজন ব্যবহারকারী আপনার ডেস্কটপ নিয়ন্ত্রণ করছেন" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ নিয়ন্ত্রণ করছেন।" + +#: ../server/vino-status-icon.c:642 ../server/vino-status-tube-icon.c:422 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "ঘোষনা প্রদানের বাবল প্রদর্শন করতে ব্যর্থ: %s\n" + +#: ../server/vino-status-tube-icon.c:226 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "'%s' থেকে সংযুক্ত দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-tube-server.c:311 ../server/vino-tube-server.c:340 +msgid "Share my desktop information" +msgstr "অন্য ব্যবহারকারীদের জন্য আমার ডেস্কটপের ব্যবহার শেয়ার করা হবে" + +#: ../server/vino-tube-server.c:315 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "ডেস্কটপের যৌথ ব্যবহারের আমন্ত্রণ '%s' দ্বারা প্রত্যাখ্যাত হয়েছে।" + +#: ../server/vino-tube-server.c:319 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s'-কে বিচ্ছিন্ন করা হয়েছে" + +#: ../server/vino-tube-server.c:346 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "দূরবর্তী অবস্থান থেকে '%s' অাপনার ডেস্কটপ নিয়ন্ত্রণ করছেন।" + +#: ../server/vino-tube-server.c:355 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' দ্বারা পর্দায় সংযোগের অপেক্ষা করা হচ্ছে।" + +#: ../server/vino-util.c:116 +msgid "An error has occurred:" +msgstr "একটি ত্রুটি উৎপন্ন হয়েছে:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "বাতিল" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ত্রুটি: পাসওয়ার্ডের ক্ষেত্রে সর্বাধিক %d-টি অক্ষর ব্যবহার করা যাবে। অনুগ্রহ করে " +"পাসওয়ার্ড পুনরায় লিখুন।" +msgstr[1] "" +"ত্রুটি: পাসওয়ার্ডের ক্ষেত্রে সর্বাধিক %d-টি অক্ষর ব্যবহার করা যাবে। অনুগ্রহ করে " +"পাসওয়ার্ড পুনরায় লিখুন।" + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino পাসওয়ার্ড পরিবর্তন করা হচ্ছে।\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "নতুন Vino পাসওয়ার্ড লিখুন:" + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "নতুন Vino পাসওয়ার্ড পুনরায় লিখুন:" + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: সাফল্যের সাথে পাসওয়ার্ড পরিবর্তন করা হয়েছে।\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "দুঃখিত, দুটি পাসওয়ার্ডে গরমিল।\n" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: পাসওয়ার্ড পরিবর্তন করা হয়নি।\n" + +#: ../tools/vino-passwd.c:181 +#, c-format +msgid "" +"Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "GConf-র সাথে যোগযোগ করতে ত্রুটি। GNOME সেশনে লগইন করা হয়েছে কি?" + +#: ../tools/vino-passwd.c:183 +#, c-format +msgid "Error message:" +msgstr "ত্রুটির বার্তা:" + +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "Vino সংস্করণ প্রদর্শন করা হবে" + +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "- Vino পাসওয়ার্ড হালনাগাদ করা হয়" + +#: ../tools/vino-passwd.c:219 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"কমান্ড-লাইন থেকে ব্যবহারযোগ্য অপশনগুলোর সম্পূর্ণ তালিকা দেখার জন্য 'vino-passwd --" +"help' কমান্ড প্রয়োগ করুন" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO সংস্করণ %s\n" + +#: ../tools/vino-passwd.c:238 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: Vino পাসওয়ার্ড পরিবর্তনের জন্য পর্যাপ্ত অনুমতি আপনার নেই।\n" diff --git a/po/bn_IN.po b/po/bn_IN.po new file mode 100644 index 0000000..53df96d --- /dev/null +++ b/po/bn_IN.po @@ -0,0 +1,814 @@ +# translation of bn_IN.po to Bengali INDIA +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Runa Bhattacharjee <runa@bengalinux.org>, 2004. +# Runa Bhattacharjee <runabh@gmail.com>, 2007. +# Runa Bhattacharjee <runab@redhat.com>, 2008, 2009, 2011, 2012. +# sray <sray@redhat.com>, 2013. #zanata +msgid "" +msgstr "" +"Project-Id-Version: bn_IN\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=" +"vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2012-08-20 21:35+0000\n" +"PO-Revision-Date: 2013-10-09 02:25-0400\n" +"Last-Translator: sray <sray@redhat.com>\n" +"Language-Team: Bengali (India) <anubad@lists.ankur.org.in>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bn_IN\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Zanata 3.1.2\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" প্রদর্শনে সমস্যা" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "There was an error displaying help:\n" +"%s" +msgstr "সহায়িকা প্রদর্শনে সমস্যা দেখা:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "বর্তমান মেশিনের সংযোগ ব্যবস্থা পরীক্ষা করুন..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "" +"শুধুমাত্র স্থানীয় নেটওয়ার্কের মাধ্যমে আপনার ডেস্কটপের সাথে সংযোগ স্থাপন করা " +"সম্ভব।" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " অথবা " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"%s ঠিকানার মাধ্যমে অন্যান্য ব্যক্তিরা আপনার কম্পিউটারের সাথে সংযোগ স্থাপন " +"করতে পারবেন।" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "" +"আপনার ডেস্কটপ অন্য কোনো ব্যক্তি দ্বারা ব্যবহারের জন্য উপলব্ধ করা হবে না।" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ডেস্কটপে শেয়ার ব্যবস্থা" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"দূরবর্তী ব্যবহারকারীদের জন্য অাপনার ডেস্কটপ প্রদর্শনের প্রণালী নির্ধারণ করুন" + +# msgstr "অন্যান্য ব্যবহারকারীদেরকে অাপনার ডেস্কটপ প্রত্যক্ষ করবার অনুমতি প্রদান করুন (_প)" +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ডেস্কটপ শেয়ার ব্যবস্থা সংক্রান্ত পছন্দ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "যৌথ ব্যবহার" + +# msgstr "দূরবর্তী ডেস্কটপ সংক্রান্ত বৈশিষ্ট্যাবলী" +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "এর মধ্যে কয়েকটি পছন্দসই মান লক করা অাছে" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "" +"অন্যান্য ব্যবহারকারীদেরকে অাপনার ডেস্কটপ দেখার অনুমতি প্রদান করুন (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "অন্য ব্যবহারকারীদের সাথে আপনার ডেস্কটপ শেয়ার করা হবে" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "" +"অন্যান্য ব্যবহারকারীর দ্বারা আপনার ডেস্কটপ নিয়ন্ত্রণের অনুমতি প্রদান করুন " +"(_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"দূরবর্তী ব্যবহারকারীরা, আপনার সিস্টেমের মাউজ ও কি-বোর্ড নিয়ন্ত্রণ করতে " +"পারবেন" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "নিরাপত্তা" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "" +"বর্তমান মেশিনের সাথে সংযোগ স্থাপন করতে ইচ্ছুক প্রতিটি অনুরোধ অনুমোদন করা হবে " +"(_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ব্যবহারকারীকে বাধ্যতামূলকভাবে পাসওয়ার্ড লিখতে হবে:(_R)" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"পোর্ট উন্মুক্ত ও ফরওয়ার্ড করার জন্য স্বয়ংক্রিয়ভাবে UPnP কনফিগার করুন (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "রাউটারের মধ্যে UPnP বৈশিষ্ট্য সক্রিয় থাকা আবশ্যক" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "বিজ্ঞপ্তিস্থলের আইকন প্রদর্শন করা হবে" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "সর্বদা (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "শুধুমাত্র যখন একজন সংযুক্ত রয়েছেন (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "কখনো নয় (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "দূরবর্তী অবস্থা থেকে ডেস্কটপ ব্যবহারের পদ্ধতি সক্রিয় করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"মান সত্য (true) হলে, RFB প্রোটোকলের মাধ্যমে দূরবর্তী ডেস্কটপ ব্যবহার করার " +"অনুমতি প্রদান করা হবে। দূরবর্তী মেশিনের ব্যবহারকারীরা VNC viewer-র মাধ্যমে " +"ডেস্কটপের সাথে সংযোগ করতে পারবেন।" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "সংযোগ প্রক্রিয়া সম্পন্ন করার পূর্বে ব্যবহারকারীদেরকে সচেতন করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"মান সত্য (true) হলে, হোস্ট মেশিনের অনুমতি ছাড়া, ডেস্কটপ ব্যবহার করতে ইচ্ছুক " +"দূরবর্তী ব্যবহারকারীদের সংযোগ অনুমোদন করা হবে না। পাসওয়ার্ড দ্বারা সুরক্ষিত " +"না থাকলে এটা ব্যবহার করা বাঞ্ছনীয়।" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "" +"শুধুমাত্র দূরবর্তী ব্যবহারকারীদেরকে ডেস্কটপ দেখার অনুমোদন প্রদান করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"মান সত্য (true) হলে, দূরবর্তী ব্যবহারকারীরা ডেস্কটপ শুধুমাত্র প্রত্যক্ষ করতে " +"সক্ষম হবেন। দূরবর্তী ব্যবহারকারীরা মাউস অথবা কি-বোর্ড ব্যবহার করতে সক্ষম " +"হবেন না।" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "অপেক্ষা করার জন্য চিহ্নিত নেটওয়ার্ক ইন্টারফেস" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"নির্দিষ্ট করা না থাকলে, সার্ভার সকল নেটওয়ার্ক ইন্টারফেস শুনে চলবে।\n" +"\n" +"অাপনি শুধুমাত্র কিছু নির্দিষ্ট নেটওয়ার্ক ইন্টারফেস থেকে সংযোগ স্বীকার করতে " +"চাইলে, এটি নির্দিষ্ট করুন। উদাহরণস্বরূপ, eth0, wifi0, lo এবং সমজাতীয়।" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "বিকল্প পোর্টে অপেক্ষা করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"সত্য হলে, সার্ভার ডিফল্টের (5900) পরিবর্তে অন্য পোর্ট অনুসরণ করবে। পোর্ট " +"অবশ্যই 'alternative-port' কীতে নির্দিষ্ট করতে হবে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "বিকল্প পোর্ট সংখ্যা" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative-port' কী সত্য হিসাবে নির্দিষ্ট করা থাকলে সার্ভার এই পোর্ট " +"অনুসরণ করবে। বৈধ মানগুলির রেঞ্জ হল 5000 থেকে 50000।" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "এনক্রিপশন প্রয়োজন" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"মান সত্য (true) হলে, দূরবর্তী অবস্থান থেকে ডেস্কটপ ব্যবহারকারীরা এনক্রিপশন " +"করতে সক্ষম হবেন। মধ্যবর্তী নেটওয়ার্ক যদি নির্ভরযোগ্য (trusted) না হয় তাহলে " +"এনক্রিপশন সমর্থনকারী একটি ক্লায়েন্ট ব্যবহার করা বাঞ্ছনীয়।" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ব্যবহারযোগ্য অনুমোদন ব্যবস্থা" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"দূরবর্তী ব্যবহারকারীরা যে সকল অনুমোদন প্রক্রিযার মাধ্যমে ডেস্কটপ ব্যবহার " +"করতে সক্ষম হবেন তা তালিকাভুক্ত করে।\n" +"\n" +"দুটি সম্ভাব্য অনুমোদন প্রক্রিয়া উপস্থিত অাছে; \"vnc\" -র দ্বারা দূরবর্তী " +"ব্যবহারকারীকে সংযোগের পূর্বে পাসওয়ার্ড-র জন্য অনুরোধ করা হবে (এই পাসওযার্ডটি " +"vnc-password কি-র দ্বারা নির্ধারিত হয়) এবং \"none\" যার দ্বারা যে কোনো " +"দূরবর্তী ব্যবহারকারী সংযোগ করার অনুমতি পাবেন।" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" অনুমোদন প্রক্রিয়ার জন্য পাসওয়ার্ড প্রয়োজন" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" অনুমোদন প্রক্রিয়া ব্যবহার করা হলে দূরবর্তী ব্যবহারকারীদেরকে যে " +"পাসওয়ার্ড লিখতে অনুরোধ করা হবে। এই কি দ্বারা নির্ধারিত পাসওয়ার্ডটি base64 " +"এনকোড করা হয়।\n" +"\n" +" 'keyring'-র বিশেষ মান (এটি বৈধ base64 নয়) দ্বারা চিহ্নিত করা হয় যে " +"পাসওয়ার্ডটি GNOME keyring-র মধ্যে সংরক্ষিত রয়েছে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "দূরবর্তী ডেস্কটপের URL প্রেরণের উদ্দেশ্যে চিহ্নিত ই-মেইল ঠিকানা" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"দূরবর্তী ডেস্কটপ-র বৈশিষ্ট্য সংক্রান্ত ডায়লগের মধ্যে URL-র উপর ব্যবহারকারী " +"ক্লিক করলে, যে ই-মেইল ঠিকানায় দূরবর্তী ডেস্কটপের URL পাঠানো হবে, তা এই কি " +"দ্বারা চিহ্নিত হবে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "সর্বশেষ ব্যবহারকারী বিচ্ছিন্ন করার পরে পর্দা লক করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"সত্য হলে, সর্বশেষ রিমোট ক্লায়েন্ট সংযোগ বিচ্ছিন্ন হওয়ার পরে, স্ক্রীন অাটকে " +"দেওয়া হবে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "অবস্থাসূচক আইকন কোন সময় প্রদর্শন করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"এই কী স্ট্যাটাস অাইকনের ব্যবহার নিয়ন্ত্রণ করে। তিনটি বিকল্প উপস্থিত: " +"\"সর্বদা\" - অাইকন সবসময় উপস্থিত থাকবে; \"ক্লায়েন্ট\" - কেউ সংযুক্ত থাকলে " +"তবেই অাইকন উপস্থিত হবে (এটি হল ডিফল্ট ব্যবহার); \"কখনও নয়\" - অাইকন উপস্থিত " +"হবে না।" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"কোনো ব্যবহারকারী সংযুক্ত থাকা অবস্থায় ডেস্কটপ ব্যাকগ্রাউন্ড অক্ষম করা হবে " +"কিনা" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"সত্য হলে, কোনো ব্যবহারকারী সফলভাবে সংযুক্ত হলে ডেস্কটপ ব্যাকগ্রাউন্ড অক্ষম " +"করুন এবং তা রঙের একটিমাত্র ব্লক দিয়ে প্রতিস্থাপন করুন।" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "পোর্ট ফরোয়ার্ড করতে এবং খুলতে একটি UPnP রাউটার ব্যবহার করা হবে কিনা" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"সত্য হলে, Vino দ্বারা ব্যবহৃত পোর্ট একটি UPnP-সক্ষম রাউটার যাতে ফরোয়ার্ড করে " +"এবং খোলে তার অনুরোধ জানান।" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org-র XDamage এক্সটেনশন নিষ্ক্রিয় করা হবে কি না" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +"" +msgstr "" +"সত্য হলে, X.org এর XDamage এক্সটেনশন ব্যবহার করবেন না। 3D প্রভাব ব্যবহারের " +"ক্ষেত্রে কিছু ভিডিও ড্রাইভারে এই এক্সটেনশন যথাযথ ভাবে কাজ করে না। এটি অক্ষম " +"করলে Vino এই সকল পরিবেশে কাজ করতে পারবে, পার্শ্ব-প্রতিক্রিয়া হিসাবে " +"রেন্ডারিং মন্থর হবে।" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "সংযোগ স্থাপনের পরে সূচিত করা হবে" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"সত্য হলে, কোনো ব্যবহারকারী সিস্টেমের সংগে সংযুক্ত হলে একটি বিঞ্জপ্তি দেখান।" + +#: ../common/vino-keyring.c:54 +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "দূরবর্তী ডেস্কটপ শেয়ার করতে ব্যবহৃত পাসওয়ার্ড " + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "এটি বৈধ .desktop ফাইল নয়" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ডেস্কটপ ফাইলের অজ্ঞাত সংস্করণ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s আরম্ভ করা হচ্ছে" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "অ্যাপ্লিকেশন দ্বারা কমান্ড-লাইনের মাধ্যমে নথিপত্র গ্রহণ করা হয় না" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "প্রারম্ভিক বিকল্প অজানা: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"'Type=Link' ডেস্কটপ এনট্রির ক্ষেত্রে নথিপত্রের URI উল্লেখ করা সম্ভব নয়" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "প্রারম্ভ করার যোগ্য বস্তু নয়" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "সেশান পরিচালনব্যবস্থার সাথে সংযোগ বিচ্ছিন্ন করা হবে" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "সংরক্ষিত কনফিগারেশন ধারণকারী ফাইল উল্লেখ করুন" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "সেশান পরিচালনার ID উল্লেখ করুন" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "সেশান পরিচালনা সংক্রান্ত বিকল্প:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "সেশান পরিচালনা সংক্রান্ত বিকল্প প্রদর্শন করা হবে" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"অাপনার XServer কোনো XTest এক্সটেনশন সমর্থন করে না - দূরবর্তী ডেস্কটপ " +"ব্যবহারের সময় শুধুমাত্র প্রত্যক্ষ করা সম্ভব হবে\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "‘ডেস্কটপ শেয়ার করা হবে’ বৈশিষ্ট্যের জন্য টিউব মোডে আরম্ভ করুন" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME-র সাথে ব্যবহারযোগ্য VNC সার্ভার" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line " +"options" +msgstr "" +"কমান্ড-লাইন থেকে ব্যবহারযোগ্য বিকল্পগুলির সম্পূর্ণ তালিকা দেখার জন্য 'vino-" +"server --help' কমান্ড প্রয়োগ করুন" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME ডেস্কটপ শেয়ার ব্যবস্থা" + +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s'র দূরবর্তী ডেস্কটপ, %s-র উপর" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d সংকেত প্রাপ্ত হয়েছে, প্রস্থান করা হবে।" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "পর্দা" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "প্রম্পট প্রদর্শনকারী পর্দা" + +#: ../server/vino-prompt.c:263 +#: ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify আরম্ভ করতে সমস্যা\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ " +"প্রত্যক্ষ অথবা নিয়ন্ত্রণ করার চেষ্টা করছেন।" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "অন্য এক ব্যবহারকারী অাপনার ডেস্কটপ দেখার প্রচেষ্টা করছেন।" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "প্রত্যাখ্যান করুন" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "স্বীকার করুন" + +#: ../server/vino-server.c:166 +#: ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "বাস-র সাথে সংযোগ আরম্ভ করতে ব্যর্থ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME ডেস্কটপ শেয়ার সার্ভার" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;ভাগ;রিমোট;" + +#: ../server/vino-status-icon.c:97 +#: ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ডেস্কটপে শেয়ার ব্যবস্থা সক্রিয় করা হয়েছে" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "অন্য একজন ব্যবহারকারী বর্তমানে আপনার ডেস্কটপ দেখছেন" +msgstr[1] "%d-জন ব্যবহারকারী বর্তমানে আপনার ডেস্কটপ দেখছেন" + +#: ../server/vino-status-icon.c:208 +#: ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "পছন্দের মান প্রদর্শনে সমস্যা দেখা দিয়েছে" + +#: ../server/vino-status-icon.c:230 +#: ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "সহায়িকা প্রদর্শনে সমস্যা দেখা" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU General Public License-র ২-য় সংস্করণের শর্তাধীন বিতরিত\n" +"\n" +"Vino একটি মুক্ত সফ্টওয়্যার; Free Software Foundation দ্বারা প্রকাশিত GNU " +"General Public License'র শর্তানুযায়ী এটি বিতরণ ও পরিবর্তন করা যাবে; " +"লাইসেন্সের সংস্করণ ২ অথবা (আপনার সুবিধানুযায়ী) ঊর্ধ্বতন কোনো সংস্করণের অধীন।\n" +"Vino বিতরণ করার মূল উদ্দেশ্য যে ব্যবহারকারীরা এর দ্বারা উপকৃত হবেন, কিন্তু " +"এটির জন্য কোনো সুস্পষ্ট ওয়ারেন্টি উপস্থিত নেই; বাণিজ্যিক ও কোনো সুনির্দিষ্ট " +"কর্ম সাধনের জন্য অন্তর্নিহীত ওয়ারেন্টিও অনুপস্থিত। অধিক জানতে GNU General " +"Public License পড়ুন।\n" +"\n" +"Vino-র সাথে GNU General Public License'র একটি প্রতিলিপি উপলব্ধ হওয়া উচিত; না " +"থাকলে নিম্নলিখিত ঠিকানায় লিখে তা সংগ্রহ করুন Free Software Foundation, Inc., " +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "রুণা ভট্টাচার্য্য (runabh@gmail.com)" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "অন্য ব্যবহারকারীদের সাথে আপনার ডেস্কটপ শেয়ার করুন" + +#: ../server/vino-status-icon.c:351 +#: ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "আপনি কি নিশ্চিতরূপে '%s' থেকে সংযোগ বিচ্ছিন্ন করতে ইচ্ছুক?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' থেকে সংযুক্ত দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "আপনি কি নিশ্চিতরূপে সব ক্লায়েন্টদের সাথে সংযোগ বিচ্ছিন্ন করতে ইচ্ছুক?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "সকল দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-status-icon.c:374 +#: ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "বিচ্ছিন্ত করুন" + +#: ../server/vino-status-icon.c:400 +#: ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "পছন্দ (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "সকল বিচ্ছিন্ন করুন" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 +#: ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s-কে বিচ্ছিন্ন করুন" + +#: ../server/vino-status-icon.c:460 +#: ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "সাহায্য (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "পরিচিতি (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "অন্য একজন ব্যবহারকারী বর্তমানে আপনার ডেস্কটপ দেখছেন" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ " +"প্রত্যক্ষ দেখছেন।" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "অন্য একজন ব্যবহারকারী আপনার ডেস্কটপ নিয়ন্ত্রণ করছেন" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' কম্পিউটারের এক ব্যবহারকারী দূরবর্তী অবস্থান থেকে অাপনার ডেস্কটপ " +"নিয়ন্ত্রণ করছেন।" + +#: ../server/vino-status-icon.c:651 +#: ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "সূচনাপ্রদানের বাবল প্রদর্শন করতে ব্যর্থ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' থেকে সংযুক্ত দূরবর্তী ব্যবহারকারীকে বিচ্ছিন্ন করা হবে। নিশ্চিত কি?" + +#: ../server/vino-tube-server.c:220 +#: ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "অন্য ব্যবহারকারীদের জন্য আমার ডেস্কটপের ব্যবহার উপলব্ধ করা হবে" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "ডেস্কটপের যৌথ ব্যবহারের আমন্ত্রণ '%s' দ্বারা প্রত্যাখ্যাত হয়েছে।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s'-কে বিচ্ছিন্ন করা হয়েছে" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "দূরবর্তী অবস্থান থেকে '%s' অাপনার ডেস্কটপ নিয়ন্ত্রণ করছেন।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' দ্বারা পর্দায় সংযোগের অপেক্ষা করা হচ্ছে।" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "অনুমতি প্রদান করা হবে (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "প্রত্যাখ্যান করা হবে (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "একটি ত্রুটি উৎপন্ন হয়েছে:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "বাতিল" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ত্রুটি: পাসওয়ার্ডের ক্ষেত্রে সর্বাধিক %d-টি অক্ষর ব্যবহার করা যাবে। অনুগ্রহ " +"করে পাসওয়ার্ড পুনরায় লিখুন।" +msgstr[1] "" +"ত্রুটি: পাসওয়ার্ডের ক্ষেত্রে সর্বাধিক %d-টি অক্ষর ব্যবহার করা যাবে। অনুগ্রহ " +"করে পাসওয়ার্ড পুনরায় লিখুন।" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino পাসওয়ার্ড পরিবর্তন প্রণালী।\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "নতুন Vino পাসওয়ার্ড লিখুন: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "নতুন Vino পাসওয়ার্ড পুনরায় লিখুন: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: সাফল্যের সাথে পাসওয়ার্ড পরিবর্তন করা হয়েছে।\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "দুঃখিত, দুটি পাসওয়ার্ডে গরমিল।\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: পাসওয়ার্ড পরিবর্তন করা হয়নি।\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino সংস্করণ প্রদর্শন করা হবে" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino পাসওয়ার্ড পরিবর্তন করতে ব্যবহৃত" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line " +"options" +msgstr "" +"কমান্ড-লাইন থেকে ব্যবহারযোগ্য বিকল্পগুলির সম্পূর্ণ তালিকা দেখার জন্য 'vino-" +"passwd --help' কমান্ড প্রয়োগ করুন" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO সংস্করণ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: Vino পাসওয়ার্ড পরিবর্তনের জন্য পর্যাপ্ত অনুমতি আপনার নেই।\n" diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..2d54cef --- /dev/null +++ b/po/bs.po @@ -0,0 +1,580 @@ +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2015-02-27 00:19+0000\n" +"PO-Revision-Date: 2015-01-01 19:42+0000\n" +"Last-Translator: Dženana <dkapetanov1@etf.unsa.ba>\n" +"Language-Team: Bosnian <lokal@linux.org.ba>\n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Launchpad (build 17341)\n" +"X-Launchpad-Export-Date: 2015-02-15 06:18+0000\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Upitaj korisnika prije završavanja konekcije" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ukoliko je potvrdno, udaljenim korisnicima koji pristupaju desktopu nije " +"dozvoljen pristup sve dok korisnik na lokalnoj mašini ne dozvoli konekciju. " +"Preporučeno posebno kada pristup nije zaštićen šifrom." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Dozvoliti udaljenom korisniku samo pregled desktopa." + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ako je postavljeno, udaljenim korisnicima se dozvoljava jedino pregled radne " +"površi. Udaljeni korisnici neće moći da koriste miša ili tastaturu." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Mrežni uređaj na kome se sluša" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ako ne postavite, poslužitelj će slušati na svim mrežnim sučeljima.\n" +"\n" +"Odaberite ako želite prihvatiti veze samo s nekim određenim mrežnim " +"sučeljom. Na primjer, eth0, wifi0, evo i tako dalje." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Osluškivanje na alternativnom portu" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ako je istina, poslužitelj će slušati na drugom portu, umjesto zadanog " +"(5900).Port mora biti naveden u ključu \"Alternativa-port\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternativni broj porta" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Luka koju će poslužitelj slušati ako ključ \"use-alternative-port\" je " +"postavljen na truje. Važeće vrijednosti su u rasponu od 5.000 do 50.000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Zahtijeva enkripciju" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ako je postavljeno, udaljeni korisnici koji pristupaju radnoj površi moraju " +"da podržavaju šifrovanje. Preporučuje se da koristite klijenta koji podržava " +"šifrovanje osim ako se nalazite u pouzdanoj mreži." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Dozvoljene metode autorizacije" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Navodi metoda provjere autentičnosti s kojima udaljeni korisnici mogu " +"pristupiti desktopu.\n" +"\n" +"Postoje dva moguća metoda provjere autentičnosti; \"VNC\" traži od udaljenog " +"korisnika lozinku (određenu s ključem vnc lozinke) prije spajanja i \"none" +"\", koji omogućava svakom udaljenom korisniku spajanje." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Šifra potrebna za \"vnc\" autorizaciju" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Lozinka koja će udaljenom korisniku biti proslijeđena kao je \"vnc\" " +"autentifikacija korištena. Loznka navedena ključem je kodirana base64.\n" +"\n" +"Posebna vrijednost za 'keyring' (koja nije base64) znači da se lozinka čuva " +"u GNOME prstenu." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail adrese na koje bi trebalo poslati URL udaljenog desktopa" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ovaj ključ navodi adresu e-pošte na koju će se slati adresa udaljene radne " +"površi kada korisnik klikne na adresu u prozorčiču za postavke udaljene " +"radne površi." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Zaključaj ekran po odjavi posljednjeg korisnika" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ako je istina, zaslon će se zaključati nakon što se posljednji udaljeni " +"klijent rastavi." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Kada treba biti prikazana statusna ikona" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ova tipka kontrolira ponašanje ikone statusa. Postoje tri mogućnosti: " +"\"Uvijek\" - ikona će uvijek biti prisutna; \"klijent\" - ikona će biti " +"prisutna samo kada je netko spojen (to je zadana postavka); \"Nikad\" - " +"ikona neće biti prisutna." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Da li onemogućiti pozadinu kada je spojen korisnik" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Kad je odabrano, onemogućiti pozadinu i zamijeniti ga s jednim blokom boje " +"kad korisnik uspješno spaja." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Bilo UPnP router bi trebao biti korišten za prosljeđivanje i otvorene portove" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ako jeodabrano, zatražiti da UPnP-sposoban router treba proslijediti i " +"otvoriti port koji koristi Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Da li isključiti XDamage dodatak X.org-a" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ako je istina, ne koristite XDamage proširenje X.org. Ovo proširenje ne radi " +"ispravno na nekim video driverima kada se koristi 3D efekte. " +"Onemogućavanjem će Vino raditi u tim sredinama, sa sporijim renderiranjem " +"kao nuspojavom." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Obavijesti pri konekciji" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "Ako je istina, pokaži obavijest kada se korisnik spaja na sustav." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ovo nije ispravna .desktop datoteka" + +#. translators: 'Version' is from a desktop file, and +#. * should not bje translated. '%s' would probably bje a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nije prepoznato izdanje desktop datoteke „%s“" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Započinjem %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program ne prihvata dokumente iz komandne linije" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nepoznata opcija pokretanja: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not bje translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Ne mogu da proslijedim adresu dokumenta u „Type=Link“ unos radne površi" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Ova stavka se ne može pokrenuti" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Onemogući vezu sa upravnikom sesije" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Odredite datoteku sa sačuvanim podešavanjima" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DATOTEKA" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Unesite IB upravnika sesijom" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IB" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcije upravnika sesije:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Prikazuje opcije upravnika sesijom" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Vaš XServer ne podržava XTest ekstenziju - pristup udaljenom desktop-u biće " +"samo za pregledanje\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Pokreni u tube režimu za mogućnost 'Dijeli moj desktop'." + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- Gnomov VNC server" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Pokrenite „vino-server --help“ za potpunu listu dostupnih opcija komandne " +"linije" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Gnomovo dijeljenje radne površi" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't makije sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Udaljena radna površ korisnika %s na %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Primljen je signal %d, izlazim." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Ekran na kojem će se pojaviti prompt" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Greška pri uspostavljanju libnotify-a\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Korisnik na kompjuteru '%s' pokušava udaljeno pregledati ili kontrolisati " +"vaš desktop." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Drugi korisnik pokušava da gleda vašu radnu površ." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Odbij" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Prihvati" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Ne mogu da otvorim vezu sa sabirnicom: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Dijeljenje radne površine" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server Gnomove udaljene radne površi" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;podjeli;premotaj;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Status dijeljenja desktopa je omogućen" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d korisnik pregleda vašu radnu površ" +msgstr[1] "%d korisnika pregledaju vašu radnu površ" +msgstr[2] "%d korisnika pregleda vašu radnu površ" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Greška prilikom prikazivanja postavki" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Greška prilikom prikazivanja pomoći" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Ovaj program je slobodan softver; možete ga raspodeljivati i/ili ga menjati\n" +"pod uslovima GNU Opšte Javne Licence (GNU GPL) kako je objavljuje Zadužbina\n" +"za Slobodni Softver (FSF); bilo verzije 2 te Licence, bilo (po vašem\n" +"nahođenju) bilo koje novije verzije.\n" +"\n" +"Ovaj program se raspodjeljuje u nadi da će biti od koristi, ali BEZ IKAKVIH\n" +"GARANCIJA; čak i bez podrazumijevane garancije KORISNOSTI ili " +"PRILAGOĐENOSTI\n" +"ODREĐENOJ NAMENI. Vidite GNU Opštu Javnu Licencu za više detalja.\n" +"\n" +"Trebali ste da primite primjerak GNU Opšte Javne Licence uz Nautilus; ako\n" +"niste, pišite Zadužbini za Slobodni Softver (Free Software Foundation,\n" +"Inc.), 51 Franklin Street, Fifth Floor, Boston, MA, 02110-1301, USA.\n" + +#. Translators comment: put your own nami here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +" Dženana https://launchpad.net/~dkapetanov1\n" +" Samir Ribić https://launchpad.net/~megaribi" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Dijelite vašu radnu površ sa drugima" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Da li sigurno želite da isključite „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Udaljeni korisnik sa „%s“ će biti isključen. Jeste li sigurni?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Sigurno želite da isključite sve klijente?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Svi udaljeni korisnici će biti isključeni. Jeste li sigurni?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Isključi" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Postavke" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Isključi sve" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Isključi %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Pomoć" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_O programu" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Neki korisnik pregleda već vašu radnu površ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Korisnik računara „%s“ izdaleka pregleda vašu radnu površ." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Neki korisnik već upravlja vašom radnom površi" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Korisnik računara „%s“ izdaleka upravlja vašom radnom površi." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Greška pri prikazivanju obavještajnog oblačića: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Udaljeni korisnik sa „%s“ će biti isključen. Da ga isključim?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Podjeli podatke moje radne površi" + +#. Translators: '%s' is the nami of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s“ je odbio poziv na razmjenu radne površi." + +#. Translators: '%s' is the nami of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s“ je isključen" + +#. Translators: '%s' is the nami of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s“ izdaleka upravlja vašom radnom površinom." + +#. Translators: '%s' is the nami of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Čekam da se „%s“ poveže na ekran." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Dozvoliti" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Odbiti" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Došlo je do greške:" diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..c430e38 --- /dev/null +++ b/po/ca.po @@ -0,0 +1,1060 @@ +# Traducció del mòdul vino de Softcatalà +# Copyright © 2004-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>, 2004-2007. +# Joan Duran <jodufi@gmail.com>, 2008-2013. +# Jordi Serratosa <jordis@softcatala.cat>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-07 18:49+0000\n" +"PO-Revision-Date: 2013-03-05 22:38+0100\n" +"Last-Translator: Joan Duran <jodufi@gmail.com>\n" +"Language-Team: Catalan <tradgnome@softcatala.org>\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "S'ha produït un error en mostrar l'URL «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"S'ha produït un error en mostrar l'ajuda:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "S'està comprovant la connectivitat d'aquesta màquina..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Només es pot accedir al vostre escriptori a través de la xarxa local." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " o " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Altres poden accedir a l'ordinador utilitzant l'adreça %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ningú pot accedir al vostre escriptori." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartició de l'escriptori" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Trieu com altres usuaris remots poden visualitzar el meu escriptori" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferències de la compartició de l'escriptori" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Compartició" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Algunes d'aquestes preferències estan blocades" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Permet que altres usuaris _visualitzin el meu escriptori" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Es compartirà el vostre escriptori" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Permet que altres usuaris controlin l'escriptori" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Els usuaris remots poden controlar el ratolí i el teclat" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Seguretat" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Heu de confirmar cada accés a aquesta màquina" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "Demana aquesta cont_rasenya:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Configura automàticament l'encaminador UPnP per obrir i reenviar els ports" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "L'encaminador ha de tenir la funció UPnP habilitada" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Mostra la icona a l'àrea de notificació" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Sempre" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Només quan algú estigui connectat" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Mai" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Habilita l'accés remot a l'escriptori" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Si s'habilita, permet l'accés remot a l'escriptori a través del protocol " +"RFB. Els usuaris en màquines remotes es poden connectar a l'escriptori si " +"utilitzen un visualitzador VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Pregunta a l'usuari abans de completar la connexió" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si s'habilita, els usuaris remots que accedeixin a l'escriptori no se'ls " +"permetrà l'accés fins que no se'ls aprovi la connexió. Es recomana " +"especialment quan l'accés no està protegit per cap contrasenya." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Permet només que els usuaris remots visualitzin l'escriptori" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Si s'habilita, els usuaris remots que accedeixin a l'escriptori només se'ls " +"permetrà visualitzar-lo. Els usuaris remots no podran fer servir el ratolí " +"ni el teclat." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interfície de xarxa on escoltar" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Si no s'habilita, el servidor escoltarà a totes les interfícies de xarxa.\n" +"\n" +"Establiu-ho si només voleu acceptar connexions des d'una interfície de xarxa " +"específica. Per exemple, eth0, wifi0, lo..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Escolta en un port alternatiu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Si s'habilita, el servidor escoltarà en un port diferent del per defecte " +"(5900). S'ha d'especificar el port nou en la clau «alternative-port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Número de port alternatiu" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"El port que el servidor escoltarà si s'habilita l'opció «use-alternative-" +"port». Els valors vàlids són dins el rang que va de 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Requereix xifratge" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si s'habilita, els usuaris remots que accedeixin a l'escriptori se'ls " +"requerirà que puguin xifrar la connexió. És molt recomanable que feu servir " +"clients que permetin el xifratge si no és que la xarxa on es faci servir " +"sigui fiable." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Mètodes d'autenticació permesos" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Llista els mètodes d'autenticació amb els quals els usuaris remots poden " +"accedir a l'escriptori.\n" +"\n" +"Hi ha dos possibles mètodes d'autenticació: «vnc» farà que abans de " +"connectar es demani una contrasenya a l'usuari remot (la contrasenya " +"s'especifica amb la clau vnc-password), i «none» permetrà que qualsevol " +"usuari remot es pugui connectar." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Es requereix una contrasenya per a l'autenticació «vnc»" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"La contrasenya que es demanarà a l'usuari remot si es fa servir el mètode " +"d'autenticació «vnc». La contrasenya especificada en aquesta clau es " +"codifica en base64.\n" +"\n" +"El valor especial «keyring» (que no és un base64 vàlid) significa que la " +"contrasenya s'emmagatzema a l'anell de claus del GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Adreça electrònica a la qual s'hauria d'enviar l'URL de l'escriptori remot" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Aquesta clau especifica l'adreça electrònica a la qual s'hauria d'enviar " +"l'URL de l'escriptori remot, si l'usuari fa clic a l'URL en el diàleg de " +"preferències de compartició de l'escriptori." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Bloca la pantalla quan es desconnecti el darrer usuari" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Si s'habilita, la pantalla es blocarà quan es desconnecti el darrer client " +"remot." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Quan s'hauria de mostrar la icona d'estat" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Aquesta clau controla el comportament de la icona d'estat. Hi ha tres " +"opcions: «always» - la icona sempre està visible, «client» - la icona només " +"es mostrarà quan hi ha algú connectat (aquest és el comportament per " +"defecte) i «never» - la icona no es mostra mai." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Si s'ha d'inhabilitar el fons d'escriptori quan es connecti un usuari" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Si és «True» (cert), inhabilita el fons d'escriptori i reemplaça'l amb un " +"bloc de color quan un usuari es connecti amb èxit." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Indica si s'hauria d'utilitzar un encaminador UPnP per reenviar i obrir ports" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Si és «True» (cert), la petició que hauria de reenviar un encaminador UPnP " +"per obrir el port utilitzat pel Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Si s'hauria d'inhabilitar l'extensió XDamage de l'X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Si és «True» (cert), no s'utilitzarà l'extensió XDamage de l'X.org. Aquesta " +"extensió no funciona correctament amb alguns controladors de vídeo quan " +"s'utilitzen efectes 3D. Si s'inhabilita, el Vino funcionarà en aquests " +"entorns, però amb una renderització més lenta com a contrapartida." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notifica en connectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Si és «True» (cert), es mostrarà una notificació quan un usuari es connecti " +"al sistema." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Contrasenya compartida de l'escriptori remot" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El fitxer no és un fitxer .desktop vàlid" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "No s'ha reconegut la versió «%s» del fitxer d'escriptori" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "S'està iniciant %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicació no accepta documents des de la línia d'ordres" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "No s'ha reconegut l'opció de llançament: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No es poden passar URI de documents a una entrada d'escriptori de tipus " +"«Type=Link»" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "No és un element executable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Inhabilita la connexió al gestor de sessió" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especifica el fitxer que conté la configuració desada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FITXER" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especifica l'identificador del gestor de sessió" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IDENTIFICADOR" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcions del gestor de sessió:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostra les opcions del gestor de sessió" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Aquest servidor X no implementa l'extensió XTest, l'accés remot a " +"l'escriptori només podrà ser visual\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Inicia en mode tub, per a la funció «Comparteix el meu escriptori»" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC per al GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Executeu «vino-server --help» per veure una llista completa de les opcions " +"disponibles de la línia d'ordres" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Compartició de l'escriptori del GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Escriptori remot de %s a %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "S'ha rebut el senyal %d, s'està sortint." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "La pantalla on mostrar l'indicador" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "S'ha produït un error en inicialitzar el libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està intentant visualitzar o controlar el " +"vostre escriptori remotament." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Un altre usuari està intentant visualitzar el vostre escriptori." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Refusa" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Accepta" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Ha fallat obrir la connexió al bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartició de l'escriptori del GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;comparteix;remot;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "La compartició de l'escriptori està habilitada" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Una persona està visualitzant el vostre escriptori" +msgstr[1] "%d persones estan visualitzant el vostre escriptori" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "S'ha produït un error en mostrar les preferències" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "S'ha produït un error en mostrar l'ajuda" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Llicenciat segons la Llicència General Pública GNU versió 2\n" +"\n" +"El Vino és un programa lliure; el podeu redistribuir i/o modificar\n" +"d'acord amb els termes de la llicència pública general de GNU, tal \n" +"i com la publica la Free Software Foundation; ja sigui la versió 2\n" +"de la Llicència com (si ho preferiu) qualsevol versió posterior.\n" +"\n" +"Aquest programa es distribueix amb l'esperança que serà útil, \n" +"però SENSE CAP GARANTIA; ni tan sols amb la garantia de \n" +"COMERCIALITZACIÓ, o VALIDESA PER A PROPÒSITS DETERMINATS. Vegeu\n" +"la Llicència general pública de GNU per a més detalls. \n" +"\n" +"Hauríeu d'haver rebut una còpia de la llicència pública general \n" +"de GNU amb aquest programa; si no, escriviu a la Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n" +"Joan Duran <jodufi@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Compartiu el vostre escriptori amb altres usuaris" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Esteu segur que voleu desconnectar «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Es desconnectarà l'usuari remot de «%s». N'esteu segur?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Esteu segur que voleu desconnectar tots els clients?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Es desconnectaran tots els usuaris remots. N'esteu segur?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Desconnecta" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferències" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Desconnecta'ls tots" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Desconnecta %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "A_juda" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Quant a" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Un altre usuari està veient el vostre escriptori" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està veient el vostre escriptori remotament." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Un altre usuari està controlant el vostre escriptori" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està controlant el vostre escriptori " +"remotament." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "S'ha produït un error en mostrar la notificació: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Es desconnectarà l'usuari remot «%s». N'esteu segur?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartiu la informació de l'escriptori" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» ha refusat la invitació de compartició de l'escriptori." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» desconnectat" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» està controlant el vostre escriptori remotament." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "S'està esperant «%s» per connectar a la pantalla." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permet" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Refusa" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "S'ha produït un error:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Cancel·lat" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERROR: La longitud màxima de la contrasenya és d'%d caràcter. Torneu a " +"introduir la contrasenya." +msgstr[1] "" +"ERROR: La longitud màxima de la contrasenya és de %d caràcters. Torneu a " +"introduir la contrasenya." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Canvia la contrasenya del Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Introduïu la contrasenya nova del Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Torneu a escriure la contrasenya nova del Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: la contrasenya s'ha actualitzat correctament.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Les contrasenyes no coincideixen.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: no s'ha canviat la contrasenya.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Mostra la versió del Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Actualitza la contrasenya del Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Executeu «vino-passwd --help» per veure una llista completa de les opcions " +"disponibles de la línia d'ordres" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Vino versió %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"S'ha produït un error: no teniu suficients permisos per canviar la " +"contrasenya del Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Si s'habilita, s'utilitzarà el protocol UPnP per reenviar automàticament " +#~ "el port utilitzat pel Vino a l'encaminador." + +#~ msgid "Question" +#~ msgstr "Pregunta" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un usuari d'un altre ordinador està intentant visualitzar o controlar el " +#~ "vostre escriptori remotament." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Els ho voleu permetre?" + +#~ msgid "Remote Desktop" +#~ msgstr "Escriptori remot" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Habilita l'accés a l'escriptori remot" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Mostra sempre una _icona" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configura automàticament la xarxa per acceptar connexions" + +#~ msgid "_Never display an icon" +#~ msgstr "_No mostris mai una icona" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Mostra n_omés una icona quan hi hagi algú connectat" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Escriptori remot del GNOME" + +#~ msgid "_Send address by email" +#~ msgstr "_Envia l'adreça per correu" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copia l'adreça al porta-retalls" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Mida màxima: 8 caràcters" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Se us sol·licitarà que permeteu o rebutgeu qualsevol connexió d'entrada" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "El servidor de l'escriptori remot ja s'està executant; s'està sortint...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "S'ha produït un error mentre es comunicava amb el GConf. Heu entrat a una " +#~ "sessió del GNOME?" + +#~ msgid "Error message:" +#~ msgstr "Missatge d'error:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "No hi ha hagut prou memòria per a gestionar el missatge «%s»" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "" +#~ "No hi ha hagut prou memòria per a registrar el camí de l'objecte «%s»" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "No s'ha pogut obtenir el nom D-Bus «%s»\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Especifiqueu les preferències per a l'accés a l'escriptori remot" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "gtk-close" +#~ msgstr "gtk-close" + +#~ msgid "gtk-help" +#~ msgstr "gtk-help" + +#~ msgid "_Talk to the router and try to open the doors there" +#~ msgstr "" +#~ "_Comuniqueu-vos amb l'encaminador i intenteu obrir les portes des d'allà" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Xarxa</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "_Demana'm confirmació" + +#~ msgid "Advanced" +#~ msgstr "Avançat" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Inhabilita el _fons d'escriptori quan es connecti" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Inhabilita el fons d'escriptori quan es connecti correctament" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Els clients VNC dels usuaris remots que accedeixin a l'escriptori se'ls " +#~ "demanarà que admetin xifratge" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "La pantalla es blocarà quan es desconnecti el darrer client remot." + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "El servidor només acceptarà connexions des del propi ordinador" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "El servidor utilitzarà un port diferent del predeterminat (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "" +#~ "Els usuaris poden visualitzar el vostre escriptori amb aquesta ordre:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "" +#~ "Quan un usuari intenta visualitzar o controlar el vostre escriptori:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Bloca la pantalla en desconnectar" + +#~ msgid "_Only allow local connections" +#~ msgstr "Permet n_omés connexions locals" + +#~ msgid "_Password:" +#~ msgstr "_Contrasenya:" + +#~ msgid "_Require encryption" +#~ msgstr "_Requereix xifratge" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Escolta un port alternatiu:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Si s'habilita, el servidor només acceptarà connexions de l'ordinador " +#~ "local i se'n refusaran les externes. Habiliteu aquesta opció si voleu que " +#~ "només es pugui accedir al servidor a través d'un túnel, com ara ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Permet només connexions locals" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Si està marcat, es blocarà la pantalla després que es desconnecti l'últim " +#~ "client" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Hi ha hagut un problema en registrar el servidor d'escriptori remot amb " +#~ "bonobo-activation; s'està sortint...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "El servidor remot ha fallat, s'està reiniciant\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Ha fallat l'activació de %s: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Ha fallat l'activació de %s: error desconegut\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "No s'ha pogut activar el servidor d'escriptori remot: s'ha intentat massa " +#~ "vegades\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "S'està iniciant el servidor d'escriptori remot" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "No s'està iniciant el servidor d'escriptori remot" + +#~ msgid "Address" +#~ msgstr "Adreça" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "Les adreces a les que el giny apunta" + +#~ msgid "Tooltip" +#~ msgstr "Rètol indicador" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Rètol indicador per a aquesta URL" + +#~ msgid "URL color" +#~ msgstr "Color de l'URL" + +#~ msgid "The color of the URL's label" +#~ msgstr "El color de les etiquetes URL" + +#~ msgid "The screen to be monitored" +#~ msgstr "La pantalla que s'ha de monitoritzar" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "La pantalla amb la qual es crearà el servidor VNC" + +#~ msgid "On Hold" +#~ msgstr "En espera" + +#~ msgid "Place all clients on hold" +#~ msgstr "Col·loca tots els clients en espera" + +#~ msgid "Prompt enabled" +#~ msgstr "S'ha activat l'indicador" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Indica a l'usuari en cas d'intents de connexió" + +#~ msgid "View Only" +#~ msgstr "Només visualitza" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "No permetis l'entrada de teclat/punter dels clients" + +#~ msgid "Require Encryption" +#~ msgstr "Requereix xifratge" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Requereix que els clients usin xifratge" + +#~ msgid "Authentication methods" +#~ msgstr "Mètode d'autenticació" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "Els mètodes d'autenticació que aquest servidor hauria de permetre" + +#~ msgid "VNC Password" +#~ msgstr "Contrasenya VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "La contrasenya (codificada en base64) per autenticar el tipus, fent " +#~ "servir el mètode VncAuth" diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 0000000..31ed650 --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,1059 @@ +# Traducció del mòdul vino de Softcatalà +# Copyright © 2004-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>, 2004-2007. +# Joan Duran <jodufi@gmail.com>, 2008-2013. +# Jordi Serratosa <jordis@softcatala.cat>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-17 19:56+0100\n" +"PO-Revision-Date: 2013-03-05 22:38+0100\n" +"Last-Translator: Joan Duran <jodufi@gmail.com>\n" +"Language-Team: Catalan <tradgnome@softcatala.org>\n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "S'ha produït un error en mostrar l'URL «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"S'ha produït un error en mostrar l'ajuda:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "S'està comprovant la connectivitat d'esta màquina..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Només es pot accedir al vostre escriptori a través de la xarxa local." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " o " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Altres poden accedir a l'ordinador utilitzant l'adreça %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ningú pot accedir al vostre escriptori." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartició de l'escriptori" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Trieu com altres usuaris remots poden visualitzar el meu escriptori" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferències de la compartició de l'escriptori" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Compartició" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Algunes d'estes preferències estan blocades" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Permet que altres usuaris _visualitzen el meu escriptori" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Es compartirà el vostre escriptori" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Permet que altres usuaris controlin l'escriptori" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Els usuaris remots poden controlar el ratolí i el teclat" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Seguretat" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Heu de confirmar cada accés a esta màquina" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "Demana esta cont_rasenya:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Configura automàticament l'encaminador UPnP per obrir i reenviar els ports" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "L'encaminador ha de tindre la funció UPnP habilitada" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Mostra la icona a l'àrea de notificació" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Sempre" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Només quan algú estiga connectat" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Mai" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Habilita l'accés remot a l'escriptori" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Si s'habilita, permet l'accés remot a l'escriptori a través del protocol " +"RFB. Els usuaris en màquines remotes es poden connectar a l'escriptori si " +"utilitzen un visualitzador VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Pregunta a l'usuari abans de completar la connexió" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si s'habilita, els usuaris remots que accedisquen a l'escriptori no se'ls " +"permetrà l'accés fins que no se'ls aprovi la connexió. Es recomana " +"especialment quan l'accés no està protegit per cap contrasenya." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Permet només que els usuaris remots visualitzen l'escriptori" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Si s'habilita, els usuaris remots que accedisquen a l'escriptori només se'ls " +"permetrà visualitzar-lo. Els usuaris remots no podran fer servir el ratolí " +"ni el teclat." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interfície de xarxa on escoltar" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Si no s'habilita, el servidor escoltarà a totes les interfícies de xarxa.\n" +"\n" +"Establiu-ho si només voleu acceptar connexions des d'una interfície de xarxa " +"específica. Per exemple, eth0, wifi0, lo..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Escolta en un port alternatiu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Si s'habilita, el servidor escoltarà en un port diferent del per defecte " +"(5900). S'ha d'especificar el port nou en la clau «alternative-port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Número de port alternatiu" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"El port que el servidor escoltarà si s'habilita l'opció «use-alternative-" +"port». Els valors vàlids són dins el rang que va de 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Requereix xifratge" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si s'habilita, els usuaris remots que accedisquen a l'escriptori se'ls " +"requerirà que puguen xifrar la connexió. És molt recomanable que feu servir " +"clients que permeten el xifratge si no és que la xarxa on es faça servir " +"siga fiable." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Mètodes d'autenticació permesos" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Llista els mètodes d'autenticació amb els quals els usuaris remots poden " +"accedir a l'escriptori.\n" +"\n" +"Hi ha dos possibles mètodes d'autenticació: «vnc» farà que abans de " +"connectar es demane una contrasenya a l'usuari remot (la contrasenya " +"s'especifica amb la clau vnc-password), i «none» permetrà que qualsevol " +"usuari remot es puga connectar." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Es requereix una contrasenya per a l'autenticació «vnc»" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"La contrasenya que es demanarà a l'usuari remot si es fa servir el mètode " +"d'autenticació «vnc». La contrasenya especificada en esta clau es codifica " +"en base64.\n" +"\n" +"El valor especial «keyring» (que no és un base64 vàlid) significa que la " +"contrasenya s'emmagatzema a l'anell de claus del GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Adreça electrònica a la qual s'hauria d'enviar l'URL de l'escriptori remot" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Esta clau especifica l'adreça electrònica a la qual s'hauria d'enviar l'URL " +"de l'escriptori remot, si l'usuari fa clic a l'URL en el diàleg de " +"preferències de compartició de l'escriptori." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Bloca la pantalla quan es desconnecte el darrer usuari" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Si s'habilita, la pantalla es blocarà quan es desconnecte el darrer client " +"remot." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Quan s'hauria de mostrar la icona d'estat" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Esta clau controla el comportament de la icona d'estat. Hi ha tres opcions: " +"«always» - la icona sempre està visible, «client» - l'icona només es " +"mostrarà quan hi ha algú connectat (este és el comportament per defecte) i " +"«never» - la icona no es mostra mai." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Si s'ha d'inhabilitar el fons d'escriptori quan es connecte un usuari" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Si és «True» (cert), inhabilita el fons d'escriptori i reemplaça'l amb un " +"bloc de color quan un usuari es connecte amb èxit." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Indica si s'hauria d'utilitzar un encaminador UPnP per reenviar i obrir ports" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Si és «True» (cert), la petició que hauria de reenviar un encaminador UPnP " +"per obrir el port utilitzat pel Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Si s'hauria d'inhabilitar l'extensió XDamage de l'X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Si és «True» (cert), no s'utilitzarà l'extensió XDamage de l'X.org. Esta " +"extensió no funciona correctament amb alguns controladors de vídeo quan " +"s'utilitzen efectes 3D. Si s'inhabilita, el Vino funcionarà en estos " +"entorns, però amb una renderització més lenta com a contrapartida." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notifica en connectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Si és «True» (cert), es mostrarà una notificació quan un usuari es connecte " +"al sistema." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Contrasenya compartida de l'escriptori remot" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El fitxer no és un fitxer .desktop vàlid" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "No s'ha reconegut la versió «%s» del fitxer d'escriptori" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "S'està iniciant %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicació no accepta documents des de la línia d'ordes" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "No s'ha reconegut l'opció de llançament: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No es poden passar URI de documents a una entrada d'escriptori de tipus " +"«Type=Link»" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "No és un element executable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Inhabilita la connexió al gestor de sessió" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especifica el fitxer que conté la configuració guardada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FITXER" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especifica l'identificador del gestor de sessió" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IDENTIFICADOR" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcions del gestor de sessió:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostra les opcions del gestor de sessió" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Este servidor X no implementa l'extensió XTest, l'accés remot a l'escriptori " +"només podrà ser visual\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Inicia en mode tub, per a la funció «Comparteix el meu escriptori»" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC per al GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Executeu «vino-server --help» per veure una llista completa de les opcions " +"disponibles de la línia d'ordes" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Compartició de l'escriptori del GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Escriptori remot de %s a %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "S'ha rebut la senyal %d, s'està eixint." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "La pantalla on mostrar l'indicador" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "S'ha produït un error en inicialitzar el libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està intentant visualitzar o controlar el " +"vostre escriptori remotament." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Un altre usuari està intentant visualitzar el vostre escriptori." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Refusa" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Accepta" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Ha fallat obrir la connexió al bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartició de l'escriptori del GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;comparteix;remot;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "La compartició de l'escriptori està habilitada" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Una persona està visualitzant el vostre escriptori" +msgstr[1] "%d persones estan visualitzant el vostre escriptori" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "S'ha produït un error en mostrar les preferències" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "S'ha produït un error en mostrar l'ajuda" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Llicenciat segons la Llicència General Pública GNU versió 2\n" +"\n" +"El Vino és un programa lliure; el podeu redistribuir i/o modificar\n" +"d'acord amb els termes de la llicència pública general de GNU, tal \n" +"i com la publica la Free Software Foundation; ja siga la versió 2\n" +"de la Llicència com (si ho preferiu) qualsevol versió posterior.\n" +"\n" +"Este programa es distribueix amb l'esperança que serà útil, \n" +"però SENSE CAP GARANTIA; ni tan sols amb la garantia de \n" +"COMERCIALITZACIÓ, o VALIDESA PER A PROPÒSITS DETERMINATS. Vegeu\n" +"la Llicència general pública de GNU per a més detalls. \n" +"\n" +"Hauríeu d'haver rebut una còpia de la llicència pública general \n" +"de GNU amb este programa; si no, escriviu a la Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Josep Puigdemont i Casamajó <josep.puigdemont@gmail.com>\n" +"Joan Duran <jodufi@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Compartiu el vostre escriptori amb altres usuaris" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Esteu segur que voleu desconnectar «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Es desconnectarà l'usuari remot de «%s». N'esteu segur?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Esteu segur que voleu desconnectar tots els clients?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Es desconnectaran tots els usuaris remots. N'esteu segur?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Desconnecta" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferències" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Desconnecta'ls tots" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Desconnecta %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "A_juda" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Quant a" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Un altre usuari està veient el vostre escriptori" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està veient el vostre escriptori remotament." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Un altre usuari està controlant el vostre escriptori" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un usuari de l'ordinador «%s» està controlant el vostre escriptori " +"remotament." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "S'ha produït un error en mostrar la notificació: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Es desconnectarà l'usuari remot «%s». N'esteu segur?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartiu la informació de l'escriptori" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» ha refusat la invitació de compartició de l'escriptori." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» desconnectat" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» està controlant el vostre escriptori remotament." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "S'està esperant «%s» per connectar a la pantalla." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permet" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Refusa" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "S'ha produït un error:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Cancel·lat" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERROR: La longitud màxima de la contrasenya és d'%d caràcter. Torneu a " +"introduir la contrasenya." +msgstr[1] "" +"ERROR: La longitud màxima de la contrasenya és de %d caràcters. Torneu a " +"introduir la contrasenya." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Canvia la contrasenya del Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Introduïu la contrasenya nova del Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Torneu a escriure la contrasenya nova del Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: la contrasenya s'ha actualitzat correctament.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Les contrasenyes no coincideixen.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: no s'ha canviat la contrasenya.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Mostra la versió del Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Actualitza la contrasenya del Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Executeu «vino-passwd --help» per veure una llista completa de les opcions " +"disponibles de la línia d'ordes" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Vino versió %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"S'ha produït un error: no teniu suficients permisos per canviar la " +"contrasenya del Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Si s'habilita, s'utilitzarà el protocol UPnP per reenviar automàticament " +#~ "el port utilitzat pel Vino a l'encaminador." + +#~ msgid "Question" +#~ msgstr "Pregunta" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un usuari d'un altre ordinador està intentant visualitzar o controlar el " +#~ "vostre escriptori remotament." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Els ho voleu permetre?" + +#~ msgid "Remote Desktop" +#~ msgstr "Escriptori remot" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Habilita l'accés a l'escriptori remot" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Mostra sempre una _icona" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configura automàticament la xarxa per acceptar connexions" + +#~ msgid "_Never display an icon" +#~ msgstr "_No mostris mai una icona" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Mostra n_omés una icona quan hi hagi algú connectat" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Escriptori remot del GNOME" + +#~ msgid "_Send address by email" +#~ msgstr "_Envia l'adreça per correu" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copia l'adreça al porta-retalls" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Mida màxima: 8 caràcters" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Se us sol·licitarà que permeteu o rebutgeu qualsevol connexió d'entrada" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "El servidor de l'escriptori remot ja s'està executant; s'està sortint...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "S'ha produït un error mentre es comunicava amb el GConf. Heu entrat a una " +#~ "sessió del GNOME?" + +#~ msgid "Error message:" +#~ msgstr "Missatge d'error:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "No hi ha hagut prou memòria per a gestionar el missatge «%s»" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "" +#~ "No hi ha hagut prou memòria per a registrar el camí de l'objecte «%s»" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "No s'ha pogut obtenir el nom D-Bus «%s»\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Especifiqueu les preferències per a l'accés a l'escriptori remot" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "gtk-close" +#~ msgstr "gtk-close" + +#~ msgid "gtk-help" +#~ msgstr "gtk-help" + +#~ msgid "_Talk to the router and try to open the doors there" +#~ msgstr "" +#~ "_Comuniqueu-vos amb l'encaminador i intenteu obrir les portes des d'allà" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Xarxa</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "_Demana'm confirmació" + +#~ msgid "Advanced" +#~ msgstr "Avançat" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Inhabilita el _fons d'escriptori quan es connecti" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Inhabilita el fons d'escriptori quan es connecti correctament" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Els clients VNC dels usuaris remots que accedeixin a l'escriptori se'ls " +#~ "demanarà que admetin xifratge" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "La pantalla es blocarà quan es desconnecti el darrer client remot." + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "El servidor només acceptarà connexions des del propi ordinador" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "El servidor utilitzarà un port diferent del predeterminat (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "" +#~ "Els usuaris poden visualitzar el vostre escriptori amb aquesta ordre:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "" +#~ "Quan un usuari intenta visualitzar o controlar el vostre escriptori:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Bloca la pantalla en desconnectar" + +#~ msgid "_Only allow local connections" +#~ msgstr "Permet n_omés connexions locals" + +#~ msgid "_Password:" +#~ msgstr "_Contrasenya:" + +#~ msgid "_Require encryption" +#~ msgstr "_Requereix xifratge" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Escolta un port alternatiu:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Si s'habilita, el servidor només acceptarà connexions de l'ordinador " +#~ "local i se'n refusaran les externes. Habiliteu aquesta opció si voleu que " +#~ "només es pugui accedir al servidor a través d'un túnel, com ara ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Permet només connexions locals" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Si està marcat, es blocarà la pantalla després que es desconnecti l'últim " +#~ "client" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Hi ha hagut un problema en registrar el servidor d'escriptori remot amb " +#~ "bonobo-activation; s'està sortint...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "El servidor remot ha fallat, s'està reiniciant\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Ha fallat l'activació de %s: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Ha fallat l'activació de %s: error desconegut\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "No s'ha pogut activar el servidor d'escriptori remot: s'ha intentat massa " +#~ "vegades\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "S'està iniciant el servidor d'escriptori remot" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "No s'està iniciant el servidor d'escriptori remot" + +#~ msgid "Address" +#~ msgstr "Adreça" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "Les adreces a les que el giny apunta" + +#~ msgid "Tooltip" +#~ msgstr "Rètol indicador" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Rètol indicador per a aquesta URL" + +#~ msgid "URL color" +#~ msgstr "Color de l'URL" + +#~ msgid "The color of the URL's label" +#~ msgstr "El color de les etiquetes URL" + +#~ msgid "The screen to be monitored" +#~ msgstr "La pantalla que s'ha de monitoritzar" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "La pantalla amb la qual es crearà el servidor VNC" + +#~ msgid "On Hold" +#~ msgstr "En espera" + +#~ msgid "Place all clients on hold" +#~ msgstr "Col·loca tots els clients en espera" + +#~ msgid "Prompt enabled" +#~ msgstr "S'ha activat l'indicador" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Indica a l'usuari en cas d'intents de connexió" + +#~ msgid "View Only" +#~ msgstr "Només visualitza" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "No permetis l'entrada de teclat/punter dels clients" + +#~ msgid "Require Encryption" +#~ msgstr "Requereix xifratge" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Requereix que els clients usin xifratge" + +#~ msgid "Authentication methods" +#~ msgstr "Mètode d'autenticació" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "Els mètodes d'autenticació que aquest servidor hauria de permetre" + +#~ msgid "VNC Password" +#~ msgstr "Contrasenya VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "La contrasenya (codificada en base64) per autenticar el tipus, fent " +#~ "servir el mètode VncAuth" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..88fa63a --- /dev/null +++ b/po/cs.po @@ -0,0 +1,795 @@ +# Czech translation of vino. +# Copyright (C) 2008, 2009 the author(s) of vino. +# Copyright (C) 2004, 2005, 2006 Miloslav Trmac <mitr@volny.cz>. +# Copyright (C) 2008 Pavel Šefránek <ps@pjoul.cz>. +# This file is distributed under the same license as the vino. +# +# Miloslav Trmac <mitr@volny.cz>, 2004, 2005, 2006. +# Jakub Friedl <jfriedl@suse.cz>, 2007. +# Petr Kovar <pknbe@volny.cz>, 2008, 2009. +# Kamil Páral <ripper42@gmail.com>, 2008. +# Pavel Šefránek <pavel.sefranek@gmail.com>, 2008, 2009, 2011. +# Marek Černocký <marek@manet.cz>, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-02-21 22:26+0100\n" +"Last-Translator: Marek Černocký <marek@manet.cz>\n" +"Language-Team: Czech <gnome-cs-list@gnome.org>\n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Nepodařilo se otevřít adresu „%s“" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Při zobrazování nápovědy došlo k chybě:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Kontroluje se připojení k síti" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Vaše pracovní plocha je dostupná pouze v místní síti." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " nebo " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"Ostatní uživatelé se mohou připojit k vaší pracovní ploše pomocí adresy %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Nikdo nemůže přistupovat k vaší pracovní ploše." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Sdílení pracovní plochy" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Vyberte, jakým způsobem umožníte vzdáleně zobrazit vaši pracovní plochu" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Předvolby sdílení pracovní plochy" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Sdílení" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Některá z těchto nastavení nejsou přístupná" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Umožnit jiným uživatelům _zobrazit vaši pracovní plochu" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Vaše pracovní plocha bude sdílena" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Umožnit jiným uživatelům _ovládat vaši pracovní plochu" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Vzdálení uživatelé, kteří přistupují k tomuto počítači, budou moci ovládat " +"vaši myš a klávesnici" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Zabezpečení" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Dotazovat se na každé příchozí spojení" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Vyžadovat, aby uživatel zadal toto heslo:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automaticky nastavit směrovač s UPnP, aby otevřel a přesměrovával porty" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Směrovač musí mít zapnutou funkci UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Zobrazovat ikonu v oznamovací oblasti" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Vždy" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Jen když je někd_o připojen" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nikdy" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Povolit vzdálený přístup k pracovní ploše" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Je-li zapnuto, umožňuje vzdálený přístup k pracovní ploše pomocí protokolu " +"RFB. Uživatelé na vzdálených počítačích se pak mohou připojit k pracovní " +"ploše pomocí prohlížeče VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Zeptat se uživatele před dokončením spojení" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Je-li zapnuto, vzdáleným uživatelům přistupujícím k pracovní ploše není " +"povolen přístup, dokud uživatel na tomto počítači nepovolí připojení. " +"Doporučeno obzvláště pokud přístup není chráněn heslem." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Povolit vzdáleným uživatelům jen prohlížet pracovní plochu" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Je-li zapnuto, vzdáleným uživatelům přistupujícím k pracovní ploše je " +"povoleno jen prohlížet pracovní plochu. Nebudou moci používat myš nebo " +"klávesnici." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Síťové rozhraní k naslouchání" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Pokud není nastaveno, server bude naslouchat na všech síťových rozhraních.\n" +"\n" +"Nastavte tuto volbu, chcete-li přijímat spojení pouze z určených síťových " +"rozhraní. Příklad: eth0, wifi0, lo atd." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Naslouchat na alternativním portu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Je-li zapnuto, server bude naslouchat na jiném portu než výchozím (5900). " +"Jiný port musí být uveden v klíči „alternative-port“." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternativní číslo portu" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Číslo portu, na kterém bude server naslouchat, pokud je klíč „use-" +"alternative-port“ nastaven na zapnuto. Přípustné hodnoty jsou v rozmezí od " +"5000 do 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Vyžadovat šifrování" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Je-li zapnuto, vzdálení uživatelé přistupující k pracovní ploše musí " +"podporovat šifrování. Důrazně se doporučuje používat klienta, který " +"podporuje šifrování, pokud tedy není síť propojující počítače důvěryhodná." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Povolené metody autentizace" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Obsahuje metody autentizace, se kterými mohou vzdálení uživatelé přistupovat " +"k pracovní ploše.\n" +"\n" +"Jsou dvě možné metody autentizace; „vnc“ způsobí, že vzdálený uživatel bude " +"před připojením dotázán na heslo (nastavené v klíči vnc-password) a „none“ " +"povoluje připojení kterémukoli vzdálenému uživateli." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Heslo vyžadované pro autentizaci „vnc“" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Heslo, na které bude vzdálený uživatel dotázán, pokud se používá metoda " +"autentizace „vnc“. Heslo určené tímto klíčem je kódováno v base64.\n" +"\n" +"Speciální hodnota „keyring“ (která není platná v base64) označuje, že heslo " +"je uchováno v klíčence GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-mailová adresa, na kterou má být odesláno URL vzdálené pracovní plochy" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Tento klíč určuje e-mailovou adresu, na kterou má být URL vzdálené pracovní " +"plochy odesláno, když uživatel klikne na URL v dialogovém okně Nastavení " +"sdílení pracovní plochy." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Uzamknout obrazovku, když se odpojí poslední uživatel" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Je-li zapnuto, obrazovka bude zamknuta poté, co se odpojí poslední klient." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Kdy zobrazovat ikonu v oznamovací oblasti" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Tento klíč upravuje chování ikony v oznamovací oblasti. Možné jsou tři " +"možnosti: „always“ - zobrazovat pořád; „client“ - zobrazovat pouze, když je " +"připojen vzdálený klient (jde o výchozí chování); „never“ - nezobrazovat " +"nikdy." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Zda uživatelům, kteří se připojí, vypnout tapetu na ploše" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Když je zapnuto, vypne se tapeta na pozadí pracovní plochy a nahradí se " +"jednobarevnou plochou po té, co se uživatel úspěšně připojí." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Zda by se měl používat směrovač UPnP k otevření a přesměrování portů" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Je-li zapnuto, požadovat, aby měl směrovač s podporou UPnP otevřené porty " +"používané aplikací Vino a předával jejich provoz do vnitřní sítě." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Zda používat rozšíření XDamage serveru X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Je-li zapnuto, nebude se používat rozšíření XDamage serveru X.org. Toto " +"rozšíření nepracuje správně v kombinaci 3D efektů pracovního prostředí a " +"některých ovladačů grafických karet. Pokud rozšíření zakážete, vyhnete se " +"tím možným problémum, avšak za cenu pomalejšího vykreslování." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Upozornit při připojení" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Je-li zapnuto, budete zobrazeno upozorněni, když se k systému připojí " +"uživatel." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Heslo pro sdílení vzdálené plochy" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Soubor není platným souborem typu .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nepodařilo se rozpoznat soubor typu .desktop „%s“" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Spouští se %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikace nepodporuje dokumenty zadávané v příkazovém řádku" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nerozpoznaná volba spouštění: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nepodařilo se předat URI dokumentu položce typu „Type=Link“" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Není spustitelnou položkou" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Zakázat připojení k sezení" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Zadejte soubor, který obsahuje uložené nastavení" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "SOUBOR" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Zadejte ID sezení" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Nastavení sezení:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Zobrazit volby správy sezení" + +# FIXME: s/XServer/X server/ +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Váš server X nepodporuje rozšíření XTest - vzdálený přístup k pracovní ploše " +"bude jen pro zobrazování\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Spustit v režimu roury, pro funkci „Sdílet moji pracovní plochu“" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- server VNC pro prostředí GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "Více informací získáte příkazem „vino-server --help“" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Sdílení pracovní plochy GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +# nepoužíváno +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Vzdálená plocha %s na %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Přijat signál %d. Ukončuje se." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Obrazovka" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Obrazovka, na které zobrazovat výzvu" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Problém s inicializací libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Uživatel na počítači „%s“ se pokouší vzdáleně zobrazit nebo ovládat vaši " +"pracovní plochu." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Jiný uživatel se pokouší zobrazit vaši pracovní plochu." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Odmítnout" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Přijmout" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Nepodařilo se připojit ke sběrnici: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server sdílení pracovní plochy GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;sdílení;vzdálený;přístup;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Vzdálená pracovní plocha je zapnuta" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Jiný uživatel vzdáleně sleduje vaši pracovní plochu" +msgstr[1] "Jiní %d uživatelé vzdáleně sledují vaši pracovní plochu" +msgstr[2] "Jiných %d uživatelů vzdáleně sleduje vaši pracovní plochu" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Nepodařilo se zobrazit předvolby" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Nepodařilo se zobrazit nápovědu" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licencováno pod GNU General Public License Version 2\n" +"\n" +"Vino je svobodný software; můžete jej šířit a modifikovat podle ustanovení\n" +"GNU General Public License, vydávané Free Software\n" +"Foundation; a to buď verze 2 této licence anebo (podle vlastního\n" +"uvážení) kterékoliv pozdější verze.\n" +"\n" +"Vino je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLIV\n" +"ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo\n" +"VHODNOSTI PRO URČITÝ ÚČEL. Další podrobnosti hledejte v GNU\n" +"General Public License.\n" +"\n" +"Kopii GNU General Public License jste měl(a) obdržet spolu s tímto\n" +"programem; pokud se tak nestalo, napište o ni Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Jakub Friedl <jfriedl@suse.cz>\n" +"Pavel Šefránek <ps@pjoul.cz>\n" +"Petr Kovář <pknbe@volny.cz>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Sdílejte svou plochu s dalšími uživateli" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Opravdu chcete odpojit „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Vzdálený uživatel z „%s“ bude odpojen. Opravdu?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Opravdu chcete odpojit všechny klienty?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Všichni vzdálení uživatelé budou odpojeni. Opravdu?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Odpojit" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Předvolby" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Odpojit vše" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Odpojit %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Nápověda" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "O _aplikaci" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Jiný uživatel vzdáleně sleduje vaši pracovní plochu" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Uživatel na počítači „%s“ vzdáleně sleduje vaši pracovní plochu." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Jiný uživatel vzdáleně ovládá vaši pracovní plochu" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Uživatel na počítači „%s“ vzdáleně ovládá vaši pracovní plochu." + +# jak překládat notiffication bubble? +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Nastal problém při pokusu zobrazit oznámení: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Vzdálený uživatel z „%s“ bude odpojen. Jste si jisti?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Sdílejte informace o své ploše s dalšími uživateli" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "Uživatel na počítači „%s“ odmítl vaši pozvánku." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Uživatel na počítači „%s“ se odpojil" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Uživatel na počítači „%s“ vzdáleně ovládá vaši pracovní plochu." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "" +"Čeká se na uživatele na počítači „%s“, dokud se nepřipojí k vaší ploše." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Povolit" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Odmítnout" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Došlo k chybě:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Zrušeno" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "CHYBA: Délka hesla je omezena na %d znak. Zadejte kratší heslo." +msgstr[1] "CHYBA: Délka hesla je omezena na %d znaky. Zadejte kratší heslo." +msgstr[2] "CHYBA: Délka hesla je omezena na %d znaků. Zadejte kratší heslo." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vyžádali jste si změnu hesla k aplikaci Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Zadejte nové heslo: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Zopakujte nové heslo: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: heslo bylo úspěšně změněno.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Hesla nesouhlasí.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: heslo nebylo změněno.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Zobrazit verzi aplikace Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- změna hesla k aplikaci Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Více informací získáte příkazem „vino-passwd --help“" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Vino %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"CHYBA: nemáte dostatečná oprávnění, abyste mohli změnit heslo k aplikaci " +"Vino.\n" diff --git a/po/cy.po b/po/cy.po new file mode 100644 index 0000000..c016ac6 --- /dev/null +++ b/po/cy.po @@ -0,0 +1,396 @@ +# Vino yn Gymraeg. +# This file is distributed under the same license as vino. +# +# Bryn Salisbury <bryn@randomlyevil.org.uk>, 2004. +# Rhys Jones <rhys@sucs.org>, 2005-2006. +# +# rhysj: Ychydig o dwtio, a gyrru'r cyfan drwy Cysill. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-03-02 17:56+0000\n" +"PO-Revision-Date: 2006-03-02 14:04+0100\n" +"Last-Translator: Rhys Jones <rhys@sucs.org>\n" +"Language-Team: Cymraeg <gnome-cy@pengwyn.linux.org.uk>\n" +"Language: cy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Gyrrwch y gorchymyn yma trwy ebost" + +#: ../capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Roedd gwall wrth ddangos cymorth:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Penbwrdd Pell" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Gosodwch eich hoffterau mynediad Penbwrdd Pell" + +#: ../capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Diogelwch</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Rhannu</b>" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "_Gofyn i chi am gadarnhad" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Gadael i ddefnyddwyr eraill _weld eich penbwrdd" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Hoffterau Penbwrdd Pell" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Mae rhai o'r hoffterau yma wedi eu cloi i lawr" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "" +"Bydd defnyddwyr yn gallu gweld eich penbwrdd trwy ddefnyddio'r gorchymyn:" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Pan fydd defnyddiwr yn ceisio gweld neu reoli eich penbwrdd:" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "Ga_dael i ddefnyddwyr eraill reoli eich penbwrdd" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "_Cyfrinair:" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "Gorfodi'r defnyddwyr i _roi'r cyfrinair yma:" + +#: ../capplet/vino-url.c:158 +msgid "Address" +msgstr "Cyfeiriad" + +#: ../capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "Y cyfeiriad cyfeirwyd ato gan y teclyn" + +#: ../capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Brysgymorth" + +#: ../capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Brysgymorth ar gyfer y LAU yma" + +#: ../capplet/vino-url.c:173 +msgid "URL color" +msgstr "lliw'r LAU" + +#: ../capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "Lliw label y LAU" + +#: ../server/vino-fb.c:954 ../server/vino-prompt.c:144 +#: ../server/vino-server.c:853 +msgid "Screen" +msgstr "Sgrîn" + +#: ../server/vino-fb.c:955 +msgid "The screen to be monitored" +msgstr "Y sgrîn i'w arolygu" + +#: ../server/vino-main.c:80 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Nid yw eich Gweinydd X yn cefnogi'r estyniad XTest - bydd mynediad penbwrdd " +"allanol ar gyfer gweld yn unig\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop" +msgstr "Penbwrdd pell %s" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Y sgrîn i ddangos yr anogwr arni" + +#: ../server/vino-prompt.c:390 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Mae defnyddiwr ar y cyfrifiadur '%s' yn ceisio gweld neu reoli eich penbwrdd " +"o bell." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Mae defnyddiwr arall yn ceisio gweld eich penbwrdd.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Mae defnyddiwr ar gyfrifiadur arall yn ceisio gweld neu reoli eich penbwrdd " +"o bell." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Ydych eisiau gadael iddo wneud felly?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Cwestiwn" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "Gad_ael" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "Gwr_thod" + +#: ../server/vino-server.c:854 +msgid "The screen for which to create a VNC server" +msgstr "Y sgrîn i greu gweinydd VNC ar ei chyfer" + +#: ../server/vino-server.c:861 +msgid "On Hold" +msgstr "Yn Aros" + +#: ../server/vino-server.c:862 +msgid "Place all clients on hold" +msgstr "Gosod pob cleient ar aros" + +#: ../server/vino-server.c:869 +msgid "Prompt enabled" +msgstr "Annog wedi ei alluogi" + +#: ../server/vino-server.c:870 +msgid "Prompt the user about connection attempts" +msgstr "Annog y defnyddwyr am geisiadau cysylltu" + +#: ../server/vino-server.c:877 +msgid "View Only" +msgstr "Gweld yn Unig" + +#: ../server/vino-server.c:878 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Rhwystro mewnbwn bysellfwrdd/pwyntydd gan y cleientau" + +#: ../server/vino-server.c:885 +msgid "Require Encryption" +msgstr "Mynnu Amgryptiad" + +#: ../server/vino-server.c:886 +msgid "Require clients to use encryption" +msgstr "Mynnu i gleientiau ddefnyddio amgryptiad" + +#: ../server/vino-server.c:893 +msgid "Authentication methods" +msgstr "Dulliau dilysiant" + +#: ../server/vino-server.c:894 +msgid "The authentication methods this server should allow" +msgstr "Y dulliau dilysiant ddylai'r gweinydd ganiatau" + +#: ../server/vino-server.c:902 +msgid "VNC Password" +msgstr "Cyfrinair VNC" + +#: ../server/vino-server.c:903 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"Y cyfrinair (amgodiad sail64) a ddefnyddir i ddilysu mathau gan ddefnyddio " +"dull VncAuth" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Dulliau dilysiant a ganiateir" + +#: ../server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Cyfeiriad e-bost i yrru LAU'r Penbwrdd Pell ato" + +#: ../server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Galluogi mynediad Penbwrdd Pell" + +#: ../server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Os yn wir, yn galluogi mynediad o bell i'r penbwrdd trwy'r protocol RFB. " +"Bydd defnyddwyr ar y peiriant pell yn gallu cysylltu â'r penbwrdd gan " +"ddefnyddio gweledydd VNC." + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Os yn wir, ni fydd defnyddwyr pell yn gallu cyrchu eu penbwrdd nes bod y " +"defnyddiwr ar y gweinydd yn caniatáu’r cysylltiad. Argymhellir hyn, yn " +"enwedig pan fod posib cael mynediad heb gyfrinair." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"Os yn wir, fydd defnyddwyr pell sydd yn cyrchu'r penbwrdd ddim ond yn gallu " +"gweld y penbwrdd. Bydd defnyddwyr pell ddim yn gallu defnyddio'r llygoden " +"na'r bysellfwrdd." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Os yn wir, bydd rhaid i ddefnyddwyr pell sydd yn cyrchu'r penbwrdd fedru " +"cefnogi amgryptiad. Argymhellir yn gryf eich bod chi'n defnyddio cleient " +"sydd yn cefnogi amgryptiad, os nad oes hyder gennych yn y rhwydwaith ddaw " +"rhyngoch chi a'r gweinydd pell." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Rhestru'r dulliau dilysiant bydd defnyddwyr pell yn gallu eu defnyddio i " +"gyrchu'r penbwrdd. Mae yna ddau ddull dilysiant ar gael; \"vnc\" sy'n achosi " +"i'r defnyddiwr pell dderbyn cais am gyfrinair cyn cysylltu (mae'r cyfrinair " +"yn cael ei benodi gan yr allwedd vnc_password), a \"dim\" sydd yn gadael i " +"unrhyw ddefnyddiwr pell gysylltu." + +#: ../server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Gadael i ddefnyddwyr pell weld y penbwrdd yn unig" + +#: ../server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "Cyfrinair fynnir ar gyfer dilysiant \"vnc\"" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Annog y defnyddiwr cyn cwbwlhau'r cysylltiad" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Mynnu amgryptiad" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Y cyfrinair bydd y defnyddiwr pell yn cael ei annog amdano os mai'r dull " +"\"vnc\" o ddilysiant sydd yn cael ei ddefnyddio. Mae'r cyfrinair benodwyd " +"gan yr allwedd wedi ei amgodio sail64. " + +#: ../server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Mae'r allwedd yma yn penodi'r cyfeiriad e-bost bydd LAU'r Penbwrdd Pell yn " +"cael ei yrru, os bydd y defnyddiwr yn clicio ar y ddeialog hoffterau " +"Penbwrdd Pell." + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Mae gweinydd Penbwrdd Pell yn rhedeg yn barod; yn terfynu ...\n" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Gwall wrth gofrestru'r gweinydd Penbwrdd Pell gyda bonobo-activation; yn " +"terfynu ...\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Bu farw gweinydd Penbwrdd Pell, wrthi'n ail-gychwyn\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Gweithrediad %s wedi methu: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "Gweithrediad %s wedi methu: gwall anhysbys\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" +"Methu gweithredu gweinydd Penbwrdd Pell: wedi ceisio gormod o weithiau\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Cychwyn gweinydd Penbwrdd Pell" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Ddim yn cychwyn gweinydd Penbwrdd Pell" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..f7be0e1 --- /dev/null +++ b/po/da.po @@ -0,0 +1,745 @@ +# Danish translation of vino. +# Copyright (C) 2013. +# Ole Laursen <olau@hardworking.dk>, 2004. +# Martin Willemoes Hansen <mwh@sysrq.dk>, 2005. +# Lasse Bang Mikkelsen <lbm@fatalerror.dk>, 2006. +# Peter Bach <bach.peter@gmail.com>, 2007. +# Kenneth Nielsen <k.nielsen81@gmail.com>, 2008. +# Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 08, 09, 12. +# Joe Hansen <joedalton2@yahoo.dk>, 2011, 2012, 2013. +# +# Konventioner: +# remote -> fjern, udefrakommende +# remote desktop -> fjernskrivebord +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-03-20 23:21+0100\n" +"PO-Revision-Date: 2016-03-20 21:58+0100\n" +"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" +"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Spørg brugeren før tilslutning" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Hvis sand, får fjernbrugere der tilgår skrivebordet, ikke adgang før " +"brugeren på værtsmaskinen godkender tilslutningen. Anbefales især hvis " +"adgangen ikke er beskyttet med en adgangskode." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Tillad kun at fjernbrugere kan se skrivebordet" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Hvis sand, får fjernbrugere der tilgår skrivebordet, kun lov til at se " +"skrivebordet og kan ikke benytte musen eller tastaturet." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Netværksgrænseflade at lytte på" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Hvis ikke sat, vil serveren lytte på alle netværksgrænseflader.\n" +"\n" +"Sæt denne hvis du kun ønsker at acceptere forbindelser fra visse, specifikke " +"netværksgrænseflader. F.eks.: eth0, wifi0, lo og så videre." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Lyt på en alternativ port" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Hvis sand (true), vil serveren lytte på en anden port i stedet for " +"standardporten (5900). Porten skal være angivet i \"alternative-port\"-" +"nøglen." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternativ portnummer" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Porten som serveren vil lytte på, hvis \"use-alternative-port\"-nøglen er " +"sat til sand (true). Gyldige værdier er i området fra 5000 til 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Påkræv kryptering" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Hvis sand, skal fjernbrugere der tilgår skrivebordet, anvende kryptering. " +"Det er stærkt anbefalet, at du anvender en klient som understøtter " +"kryptering, medmindre du kan stole på det mellemliggende netværk." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Tilladte godkendelsesmetoder" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Viser de godkendelsesmetoder som fjernbrugere kan tilgå skrivebordet med.\n" +"\n" +"Der er to mulige godkendelsesmetoder; \"vnc\" gør at fjernbrugeren bliver " +"spurgt efter en adgangskode (som angives i nøglen vnc-password) før " +"tilslutning, og \"none\" tillader enhver fjernbruger at tilslutte." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Adgangskode påkrævet for \"vnc\"-godkendelse" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Den adgangskode som fjernbrugeren bliver spurgt efter hvis \"vnc\"-" +"godkendelsesmetoden benyttes. Den angivne adgangskode skal være base64-" +"kodet.\n" +"\n" +"Specialværdien \"keyring\" (som ikke er gyldig base64) betyder, at " +"adgangskoden lagres i GNOME-nøgleringen." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail-adresse som fjernskrivebordsadressen skal sendes til" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Denne nøgle angiver den e-mail-adresse som fjernskrivebordsadressen skal " +"sendes til, hvis brugeren klikker på adressen under indstillingerne for " +"fjernskrivebord." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Lås skærmen når sidste bruger afkobler" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Hvis sand (true), vil skærmen blive låst efter den sidste fjernklients " +"afkobling." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Hvornår statusikonet skal vises" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Denne nøgle styrer opførslen af statusikonet. Der er tre valgmuligheder: " +"\"always\" - Ikonet vil altid være der; \"client\" - Ikonet vil være der " +"hvis nogen er forbundet (dette er standardopførsel); \"never\" - Ikonet vil " +"aldrig vises." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Om baggrunden skal deaktiveres når en bruger er forbundet" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Når sand (true), deaktiver skrivebordsbaggrunden og erstat den med en enkelt " +"farveblok, når en bruger forbinder." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Om en UPNP-router skal bruges til at viderestille og åbne porte" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Hvis sand (true), anmod om at en router, der kan håndtere UPnP, skal " +"videresende og åbne porten brugt af Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Hvorvidt vi skal deaktivere XDamage-udvidelsen til X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Hvis sand (true), så brug ikke XDamage-udvidelsen til X.org. Denne udvidelse " +"fungerer ikke korrekt på visse videodrivere, når der bruges 3D-effekter. " +"Deaktiveres udvidelsen, vil Vino fungere i disse miljøer med langsommere " +"grafikydelse som bieffekt." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Påmind ved forbindelse" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Hvis sand (true), vis en påmindelse, når brugeren forbinder til systemet." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen er ikke en gyldig .desktop-fil" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ukendt version \"%s\" af skrivebordsfil" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Starter %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet accepterer ikke dokumenter på kommandolinjen" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Ukendt starttilvalg: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan ikke give dokument-URI'er til et \"Type=Link\"-skrivebordselement" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Ikke et kørbart element" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Deaktivér forbindelsen til sessionshåndteringen" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Angiv filen, der indeholder den gemte konfiguration" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FIL" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Angiv id for sessionshåndteringen" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Id" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Indstillinger for sessionshåndtering:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Vis indstillinger for sessionshåndtering" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Din X-server understøtter ikke XTest-udvidelsen - fjernadgang til " +"skrivebordet er kun med visning\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Start i rørtilstand til \"Del mit skrivebord\"-funktionen" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- VNC-server til GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Kør \"vino-server --help\" for at se en fuld liste over tilgængelige " +"kommandolinjetilvalg" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Deling af GNOME-skrivebord" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s's fjernskrivebord på %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Modtaget signal %d, afslutter." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Skærm" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Den skærm som spørgsmålet skal vises på" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Fejl ved klargøring af libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"En bruger på maskinen \"%s\" forsøger at se eller fjernkontrollere dit " +"skrivebord." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "En anden bruger forsøger at se dit skrivebord." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Afvis" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Accepter" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Kunne ikke oprette forbindelse til bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Deling af skrivebord" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server til deling af GNOME-skrivebord" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;del;ekstern;fjern;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Skrivebordsdeling er slået til" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "En bruger ser dit skrivebord" +msgstr[1] "%d brugere ser dit skrivebord" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Fejl ved visning af indstillinger" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Fejl ved visning af hjælp" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Underlagt licens GNU General Public License Version 2\n" +"\n" +"Vino er fri software; det kan distribueres og/eller modificeres\n" +"som betinget af GNU General Public License, udarbejdet af\n" +"Free Software Foundation; enten version 2 af licensen eller,\n" +"efter eget valg, enhver nyere version.\n" +"\n" +"Vino distribueres i håb om at det viser sig nyttigt, men\n" +"UDEN NOGEN GARANTI; selv uden de underforståede\n" +"garantier SALGBARHED eller EGNETHED TIL ET BESTEMT\n" +"FORMÅL, idet der henvises til GNU General Public License\n" +"for detaljer.\n" +"\n" +"Du bør have modtaget en kopi af GNU General Public License\n" +"sammen med Vino; er dette ikke tilfældet, så skriv til Free\n" +"Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,\n" +"MA 02111-1307 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "" +"Ole Laursen\n" +"Martin Willemoes Hansen\n" +"Lasse Bang Mikkelsen\n" +"Peter Bach\n" +"Kenneth Nielsen\n" +"Ask Hjorth Larsen\n" +"Joe Hansen\n" +"\n" +"Dansk-gruppen <dansk@dansk-gruppen.dk>\n" +"Mere info: http://www.dansk-gruppen.dk" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Del dit skrivebord med andre brugere" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Er du sikker på, at du vil afbryde \"%s\"?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Fjernbrugeren fra \"%s\" vil blive afbrudt. Er du sikker?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Er du sikker på, at du vil afbryde alle klienter?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Alle fjerne brugere vil blive afbrudt. Er du sikker?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Afbryd" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Indstillinger" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Afbryd alle" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Afbryd %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "_Hjælp" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "_Om" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "En anden bruger ser dit skrivebord" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "En bruger på maskinen \"%s\" fjernser dit skrivebord." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "En anden bruger kontrollerer dit skrivebord" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "En bruger på maskinen \"%s\" fjernkontrollerer dit skrivebord." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Fejl ved visning af påmindelsesboblen: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Fjernbrugeren \"%s\" vil blive frakoblet. Er du sikker?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Del mine skrivebordsinformationer" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "\"%s\" afviste invitationen til skrivebordsdeling." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "\"%s\" frakoblede" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "\"%s\" fjernstyrer dit skrivebord." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Venter på at \"%s\" forbinder til skærmen." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Tillad" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Afvis" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Der opstod en fejl:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Der opstod en fejl ved visning af URL'en \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Der opstod en fejl ved visning af hjælp:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Kontrollerer denne maskines forbindelsesevner..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Dit skrivebord kan kun nås over det lokale netværk." + +#~ msgid " or " +#~ msgstr " eller " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Andre kan tilgå din computer ved brug af adressen %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Ingen kan tilgå dit skrivebord." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "Vælg hvordan andre brugere kan se dit skrivebord fjernt" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Indstillinger for skrivebordsdeling" + +#~ msgid "Sharing" +#~ msgstr "Deling" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Nogle af disse indstillinger er låst" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Tillad andre brugere at _se dit skrivebord" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Dit skrivebord vil blive delt" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Tillad andre brugere at kontrollere dit skrivebord" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Fjernbrugere kan styre din mus og dit tastatur" + +#~ msgid "Security" +#~ msgstr "Sikkerhed" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_Du skal godkende hver tilgang til denne maskine" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Påkræv at brugeren indtaster denne adgangskode:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "_Konfigurer automatisk UPnP-router til at åbne og videresende porte" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "Din ruter skal have UPnP slået til" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Vis ikon i statusfelt" + +#~ msgid "Al_ways" +#~ msgstr "_Altid" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Kun når nogle er forbundet" + +#~ msgid "_Never" +#~ msgstr "_Aldrig" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Aktiver fjernadgang til skrivebordet" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Hvis sand, tillader fjernadgang til skrivebordet vha. RFB-protokollen. " +#~ "Brugere på fjernmaskiner kan så tilslutte til skrivebordet med en VNC-" +#~ "fremviser." + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Adgangskode til deling af fjernskrivebord" + +#~ msgid "Cancelled" +#~ msgstr "Annulleret" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "FEJL: Den maksimale længde af et kodeord er %d tegn. Genindtast venligst " +#~ "kodeordet." +#~ msgstr[1] "" +#~ "FEJL: Den maksimale længde af et kodeord er %d tegn. Genindtast venligst " +#~ "kodeordet." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Ændrer Vino-kodeord.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Indtast nyt Vino-kodeord: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Genindtast nyt Vino-kodeord: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: kodeordet blev opdateret.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Beklager, kodeordene er ikke ens.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: kodeordet ikke ændret.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Vis Vino-version" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Opdaterer Vino-kodeord" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Kør \"vino-passwd --help\" for at se en fuld liste over tilgængelige " +#~ "kommandolinjetilvalg" + +#~ msgid "VINO Version %s\n" +#~ msgstr "VINO, version %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "FEJL: Du har ikke rettigheder til at ændre Vino-kodeord.\n" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..b72fa0f --- /dev/null +++ b/po/de.po @@ -0,0 +1,843 @@ +# German vino translation. +# Copyright (C) 2003, 2004, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# FIXME +# Manche der GConf-Schemabeschreibungen sind etwas abenteuerlich, sowohl im +# Original, als auch in der Übersetzung. +# +# Christian Neumair <chris@gnome-de.org>, 2004. +# Hendrik Richter <hendrikr@gnome.org>, 2005, 2006, 2007, 2009. +# Andre Klapper <ak-47@gmx.net>, 2008, 2009. +# Jochen Skulj <jochen@jochenskulj.de>, 2009. +# Mario Blättermann <mario.blaettermann@gmail.com>, 2011-2013. +# Christian Kirbach <christian.kirbach@gmail.com>, 2009, 2012. +# Wolfgang Stöggl <c72578@yahoo.de>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-03 18:56+0100\n" +"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" +"Language-Team: Deutsch <gnome-de@gnome.org>\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Generator: Gtranslator 2.91.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Beim Anzeigen der Adresse »%s« ist ein Fehler aufgetreten" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Beim Anzeigen der Hilfe ist ein Fehler aufgetreten:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Die Verbindungseinstellungen werden überprüft …" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Ihr Bildschirm ist nur über das lokale Netzwerk erreichbar." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " oder " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Auf Ihren Rechner kann über die Adresse %s zugegriffen werden." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Niemand kann auf Ihren Bildschirm zugreifen." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Freigabe der Arbeitsfläche" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Legen Sie fest, ob und wie andere Benutzer Ihren Bildschirm betrachten können" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Einstellungen für den entfernten Bildschirm" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Freigabe" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Einige dieser Einstellungen sind gesperrt" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "_Anderen Benutzern erlauben, Ihren Bildschirm anzuzeigen" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "" +"Wenn dieser Schlüssel wahr ist, wird Ihr Bildschirm für andere Benutzer " +"freigegeben" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "A_nderen Benutzern erlauben, Ihren Bildschirm zu steuern" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Wenn dieser Schlüssel wahr ist, können entfernte Benutzer Ihre Maus und Ihre " +"Tastatur kontrollieren" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Sicherheit" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Jeder Zugriff auf diesen Rechner muss bestätigt werden" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "Der Benutzer muss folgendes _Passwort eingeben:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"UPnP-Router automatisch so _konfigurieren, dass Ports automatisch geöffnet " +"und weitergeleitet werden" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Für den Router muss das UPnP-Funktionsmerkmal aktiviert sein" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Symbol im Benachrichtigungsfeld anzeigen" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Immer" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Nur, wenn eine Pers_on verbunden ist" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Niemals" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Entfernten Zugriff auf die Arbeitsumgebung erlauben" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Soll der Fernzugriff auf den Bildschirm via RFB-Protokoll zulässig sein? In " +"diesem Fall können Benutzer an entfernten Rechnern mit Hilfe einer Anwendung " +"zur Betrachtung entfernter Bildschirme (VNC-Betrachter) auf den Bildschirm " +"zugreifen." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Den Benutzer vor dem Herstellen einer Verbindung rückfragen" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially when " +"access is not password protected." +msgstr "" +"Sollen entfernte Benutzer ausschließlich auf den Bildschirm zugreifen dürfen, " +"nachdem der Benutzer auf dem freigebenden Rechner die Verbindung explizit " +"gestattet? Dies ist besonders empfehlenswert, falls der Zugriff nicht durch " +"ein Passwort geschützt erfolgt." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Entfernten Benutzern ausschließlich das Anzeigen des Desktops gestatten" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Sollen entfernte Benutzer, die auf den Bildschirm zugreifen, diesen " +"ausschließlich betrachten dürfen? In diesem Fall können sie weder Maus- noch " +"Tastatureingaben ausführen." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Netzwerkschnittstelle, auf der gelauscht wird" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Wenn dieser Schlüssel nicht gesetzt ist, lauscht der Server auf allen " +"Netzwerkschnittstellen.\n" +"\n" +"Setzen Sie diesen Schlüssel, falls Sie nur Verbindungen auf bestimmten " +"Schnittstellen akzeptieren möchten, z.B.: eth0, wifi0, lo, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Auf einen alternativen Port hören" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Wenn dieser Schlüssel wahr ist, lauscht der Server auf einem anderen Port als " +"dem Vorgabeport (5900). Der Port selbst muss im Schlüssel »alternative_port« " +"angegeben werden." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternative Port-Nummer" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key is " +"set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Der Port auf dem der Server lauscht, wenn der Schlüssel " +"»use_alternative_port« auf TRUE (wahr) gesetzt ist. Gültige Werte liegen " +"zwischen 5000 und 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Verschlüsselung erforderlich machen" + +# CHECK +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Sollen entfernte Benutzer, die auf den Bildschirm zugreifen wollen, " +"Verschlüsselung unterstützen müssen? Es ist besonders empfehlenswert einen " +"Client zu verwenden, der Verschlüsselung unterstützt, falls der Zugriff über " +"ein nicht vertrauenswürdiges Netzwerk erfolgt." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Zulässige Legitimationsmethoden" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote user " +"to be prompted for a password (the password is specified by the vnc-password " +"key) before connecting and \"none\" which allows any remote user to connect." +msgstr "" +"Eine Liste der Legitimationsmethoden, mit Hilfe derer entfernte Benutzer auf " +"den Bildschirm zugreifen dürfen.\n" +"\n" +"Zulässige Legitimationsmethoden sind: »vnc« (vor Verbindung Passwortabfrage " +"bei entferntem Benutzer, Passwort siehe »vnc_password«-Schlüssel) sowie " +"»none« (jeder entfernte Benutzer darf verbinden)." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Für »vnc«-Legitimation erforderliches Passwort" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Das Passwort, das vom entfernten Benutzer abgefragt werden soll, wenn die " +"Legitimationsmethode »vnc« verwendet wird. Das von diesem Schlüssel " +"bereitgestellte Passwort ist base64-kodiert.\n" +"\n" +"Der besondere Wert von »keyring« (kein gültiges base64) bedeutet, dass das " +"Passwort im GNOME-Schlüsselbund gespeichert wird." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-Mail-Adresse, an die die Adresse des entfernten Bildschirms verschickt " +"werden soll" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Dieser Schlüssel legt die E-Mail-Adresse fest, an die die Adresse des " +"entfernten Bildschirms verschickt werden soll, wenn der Benutzer die Adresse " +"im Dialog »Entfernter Bildschirm-Einstellungen« anklickt." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Den Bildschirm nach Abmelden des letzten Benutzers sperren" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Wenn dieser Schlüssel wahr ist, wird der Bildschirm gesperrt, sobald der " +"letzte entfernte Benutzer die Verbindung beendet hat." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Legt fest, wann das Statussymbol angezeigt werden soll" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will only " +"be present when someone is connected (this is the default behavior); \"never" +"\" - the icon will not be present." +msgstr "" +"Dieser Schlüssel bestimmt das Verhalten des Statussymbols. Es bestehen drei " +"Möglichkeiten: »always«: Das Symbol wird immer angezeigt; »client«: Das " +"Symbol wird nur angezeigt, wenn jemand verbunden ist (dies ist die " +"Vorgabeeinstellung); »never«: Das Symbol wird nie angezeigt." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Falls »TRUE« (wahr), so wird der Hintergrund in einer gültigen Sitzung " +"deaktiviert" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Falls auf »wahr« gesetzt, wird das Hintergrundbild des Schreibtisches " +"deaktiviert und durch eine einfache Farbe ersetzt, wenn ein Benutzer sich " +"erfolgreich verbindet." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Legt fest, ob UPNP zur Weiterleitung und zum Öffnen von Ports im Router " +"verwendet wird" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Falls auf »wahr« gesetzt, wird ein UPnP-fähiger Router veranlasst, den von " +"Vino genutzten Port zu öffnen und weiterzuleiten." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" +"Legt fest, ob die XDamage-Erweiterung von X.org deaktiviert werden soll." + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Wenn dieser Schlüssel auf »Wahr« gesetzt ist, wird die XDamage-Erweiterung " +"von X.org nicht verwendet. Diese Erweiterung funktioniert zusammen mit " +"einigen Grafiktreibern bei Verwendung von 3D-Effekten nicht richtig. Das " +"Deaktivieren ermöglicht, dass Vino in diesen Umgebungen funktionsfähig ist, " +"wobei sich als Nebeneffekt der Bildschirmaufbau verlangsamt." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Bei Verbindung benachrichtigen" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Falls wahr, wird der Benutzer benachrichtigt, sobald eine Verbindung zum " +"System besteht." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Lokales Passwort für fremden Zugriff" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datei ist keine gültige .desktop-Datei" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nicht erkannte Version »%s« der .desktop-Datei" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s wird gestartet" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Anwendung akzeptiert keine Dokumente auf der Befehlszeile" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Unbekannte Option beim Starten: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Dokument-Adressen können nicht an ein Arbeitsflächenobjekt vom Typ " +"»Type=Link« übergeben werden" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Kein ausführbares Element" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Verbindung zur Sitzungsverwaltung deaktivieren" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Datei mit der gespeicherten Konfiguration angeben" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DATEI" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Kennung der Sitzungsverwaltung" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Kennung" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Einstellungen der Sitzungsverwaltung:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Einstellungen der Sitzungsverwaltung anzeigen" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Ihr X-Server unterstützt die XTest-Erweiterung nicht - entfernter " +"Bildschirmzugriff beschränkt sich auf das Anzeigen\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Tube-Modus von Telepathy für die Freigabe des eigenen Bildschirms verwenden" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC-Server für GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Rufen Sie »vino-server --help« auf, um eine Liste der verfügbaren Optionen " +"für die Befehlszeile zu erhalten." + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME-Dienst für entfernte Bildschirme" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Entfernter Bildschirm von %s auf %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Signal %d wurde empfangen. Programm wird beendet." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Bildschirm" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Der Bildschirm, auf dem die Abfrage angezeigt werden soll" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Fehler beim Initialisieren von libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Ein Benutzer am Rechner »%s« versucht, entfernten Zugriff auf Ihren Desktop " +"zu erlangen." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Ein anderer Benutzer versucht, Ihren Bildschirm anzuzeigen." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Abweisen" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Annehmen" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Verbindungsbus konnte nicht geöffnet werden: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME-Server zur Freigabe der Arbeitsumgebung" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "VNC;Freigabe;entfernt;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Freigabe des Bildschirms ist aktiviert" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Ein anderer Benutzer betrachtet Ihren Bildschirm" +msgstr[1] "%d andere Benutzer betrachten Ihren Bildschirm" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Fehler beim Anzeigen der Einstellungen" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Fehler beim Anzeigen der Hilfe" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Lizenziert unter der GNU General Public License Version 2 (GPLv2)\n" +"\n" +"Vino ist freie Software; Sie können sie unter den Bedingungen\n" +"der GNU General Public License, so wie diese von der Free\n" +"Software Foundation veröffentlicht wurde (in Lizenzversion 2\n" +"oder neuer), verbreiten und/oder verändern.\n" +"\n" +"Vino wurde mit der Absicht veröffentlicht, dass Sie es nützlich\n" +"finden, JEDOCH OHNE JEGLICHE GARANTIE, sogar ohne still-\n" +"schweigend angenommene Garantie auf FUNKTIONSFÄHIGKEIT\n" +"oder TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.\n" +"Schlagen Sie für weitere Informationen in der GNU General\n" +"Public License nach.\n" +"Dieser Anwendung sollte auch eine Kopie der GNU General Public License\n" +"beiligen. Wenn dies nicht der Fall ist, schreiben Sie bitte an die\n" +"Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Christian Neumair <chris@gnome-de.org>\n" +"Hendrik Richter <hendrikr@gnome.org>\n" +"Hendrik Brandt <heb@gnome-de.org>\n" +"Christian Kirbach <Christian.Kirbach@googlemail.com>\n" +"Mario Blättermann <mario.blaettermann@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Ihren Bildschirm für andere Benutzer freigeben" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Sind Sie sicher, dass »%s« getrennt werden soll?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Sind Sie sicher, dass der entfernte Benutzer »%s« getrennt werden soll?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Sind Sie sicher, dass alle Clients getrennt werden sollen?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Sind Sie sicher, dass alle entfernten Benutzer getrennt werden sollen?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Trennen" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Einstellungen" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Alle trennen" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s trennen" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Hilfe" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Info" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Ein anderer Benutzer betrachtet Ihren Bildschirm" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Ein Benutzer am Rechner »%s« betrachtet Ihren Bildschirm aus der Ferne." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Ein anderer Benutzer steuert Ihren Bildschirm" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Ein Benutzer am Rechner »%s« steuert Ihren Bildschirm aus der Ferne." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Fehler beim Anzeigen der Benachrichtigung: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Sind Sie sicher, dass der entfernte Benutzer »%s« getrennt werden soll?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Meine Bildschirminformationen freigeben" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "»%s« hat die Einladung zur Bildschirmfreigabe zurückgewiesen." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "»%s« hat sich getrennt" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "»%s« steuert Ihren Bildschirm aus der Ferne." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Es wird darauf gewartet, dass sich »%s« mit dem Bildschirm verbindet." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Erlauben" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Abweisen" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Ein Fehler ist aufgetreten:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Abgebrochen" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"FEHLER: Die maximale Länge des Passworts beträgt %d Zeichen. Bitte geben Sie " +"das Passwort erneut ein." +msgstr[1] "" +"FEHLER: Die maximale Länge des Passworts beträgt %d Zeichen. Bitte geben Sie " +"das Passwort erneut ein." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Passwort für Vino wird geändert.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Geben Sie das neue Vino-Passwort ein:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Geben Sie das neue Vino-Passwort erneut ein:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: Passwort wurde erfolgreich aktualisiert.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Die Passwörter stimmen nicht überein.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: Passwort wurde nicht geändert.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Version von Vino anzeigen" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Aktualisiert das Vino-Passwort" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Rufen Sie »vino-passwd --help« auf, um eine Liste der verfügbaren Optionen " +"für die Befehlszeile zu erhalten." + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO Version %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "FEHLER: Sie haben keine Berechtigung, um das Vino-Passwort zu ändern.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Wenn dieser Schlüssel wahr ist, wird das UPNP-Protokoll verwendet, um von " +#~ "Vino benutzte Ports automatisch im Router weiterzuleiten." + +#~ msgid "Question" +#~ msgstr "Frage" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Ein Benutzer oder ein anderer Rechner versucht, Ihren Bildschirm aus der " +#~ "Ferne anzuzeigen oder zu steuern." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Wollen Sie ihm dies gestatten?" diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 0000000..de288e2 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,481 @@ +# Dzongkha translation of vino +# Copyright @ 2006 Free Software Foundation, Inc. +# Mindu Dorji. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD.dz\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-04-11 03:34+0100\n" +"PO-Revision-Date: 2007-05-21 21:53+0530\n" +"Last-Translator: Tshewang Norbu <bumthap2006@hotmail.com>\n" +"Language-Team: DZONGKHA <pgeyleg@dit.gov.bt>\n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1);\n" +"X-Poedit-Language: Dzongkha\n" +"X-Poedit-Country: BHUTAN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../capplet/vino-preferences.c:635 +#: ../capplet/vino-preferences.c:670 +#: ../server/vino-dbus-listener.c:324 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "བརྡ་རྟགས་འགྲུལ་ལམ་ལུ་ མཐུད་ལམ་ཁ་ཕྱེ་ནི་འཐུས་ཤོར་འབྱུང་ཡོད་: %s\n" + +#: ../capplet/vino-preferences.c:880 +msgid "Send this command by email" +msgstr "བརྡ་བཀོད་འདི་ གློག་འཕྲིན་ཐོག་ལས་གཏང་།" + +#: ../capplet/vino-preferences.c:915 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"གྲོགས་རམ་བཀྲམ་སྟོན་འབད་ནི་ལུ་ འཛོལ་བ་ཅིག་འདུག\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ།" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "ཁྱོད་རའི་ཐག་རིང་ཌེཀསི་ཊོཔ་གི་ འཛུལ་སྤྱོད་དགའ་གདམ་ཚུ་ གཞི་སྒྲིག་འབད།" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Security</b>" +msgstr "<b>སྲུང་སྐྱོབ་</b>" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Sharing</b>" +msgstr "<b>རུབ་སྤྱོད་</b>" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "A_sk you for confirmation" +msgstr "ངེས་དཔྱད་ཀྱི་དོན་ལུ་ ཁྱོད་ལུ་དྲིས།(_s)" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "Allow other users to _view your desktop" +msgstr "ལག་ལེན་པ་གཞན་ཚུ་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་མཐོང་བཅུག(_v)" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "Remote Desktop Preferences" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་གི་དགའ་གདམ་ཚུ།" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Some of these preferences are locked down" +msgstr "དགའ་གདམ་དེ་ཚུ་ ལ་ལོ་ཅིག་ ལྡེ་མིག་བརྐྱབས་ནུག" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Users can view your desktop using this command:" +msgstr "ལག་ལེན་པ་ཚུ་གིས་ བརྡ་བཀོད་འདི་ ལག་ལེན་འཐབ་ཐོག་ལས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་མཐོང་ཚུགས།" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "When a user tries to view or control your desktop:" +msgstr "ལག་ལེན་པ་ཅིག་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་བལྟ་ནི་ ཡང་ན་ ཚད་འཛིན་འབད་ནིའི་ འབད་རྩོལ་བསྐྱེད་པའི་སྐབས་:" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "_Allow other users to control your desktop" +msgstr "ལག་ལེན་པ་གཞན་ཚུ་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ ཚད་འཛིན་འབད་བཅུག(_A)" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "_Password:" +msgstr "ཆོག་ཡིག:(_P)" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "_Require the user to enter this password:" +msgstr "ཆོག་ཡིག་འདི་བཙུགས་ནི་ལུ་ ལག་ལེན་པ་དགོ(_R)" + +#: ../server/vino-dbus-listener.c:180 +#: ../server/vino-dbus-listener.c:210 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr " '%s' འཕྲིན་དོན་ ལེགས་སྐྱོང་འཐབ་ད་ དྲན་ཚད་ལས་ཕྱི་ཁར་" + +#: ../server/vino-dbus-listener.c:284 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "དངོས་པོའི་འགྲུ་ལམ་ '%s' ཐོ་བཀོད་འབདཝ་ད་ དྲན་ཚད་ཀྱི་ཕྱི་ཁར་" + +#: ../server/vino-dbus-listener.c:357 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "ཌི་-བཱསི་མིང་ '%s' འཐོབ་ནི་ལུ་འཐུས་ཤོར་འབྱུང་ཡོད་\n" + +#: ../server/vino-main.c:83 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "ཁྱོད་ཀྱི་ཨེགསི་སར་བར་དེ་གིས་ ཨེགསི་ཞིབ་དཔྱད་རྒྱ་བསྐྱེད་ལུ་ རྒྱབ་སྐྱོར་མི་འབད་བས་- ཐག་རིང་ཌོཀསི་ཊོཔ་གི་ འཛུལ་སྤྱོད་རྐྱངམ་གཅིག་མཐོང་ཚུགས་\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "ཝི་ནོ་-ཨེམ་ཌི་ཨེན་ཨེསི་:ལག་ལེན་པའི་མིང་སྟོན།" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop" +msgstr "%sགི་ཐག་རིང་ཌེཀསི་ཊོཔ།" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "གསལ་གཞི།" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "ནུས་སྤེལ་བཀྲམ་སྟོན་འབད་སའི་གསལ་གཞི།" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "གློག་རིག་ '%s' ལག་ལེན་འཐབ་མི་ཅིག་གིས་ ཐག་རིང་ལས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ལུ་ བལྟ་ནིའམ་ཚད་འཛིན་འབད་ནིའི་ འབད་རྩོལ་བསྐྱེད་དོ།" + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b> ལག་ལེན་པ་གཞན་ཅིག་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ བལྟ་ནིའི་འབད་རྩོལ་བསྐྱེད་དོ་</b></big་>" + +#: ../server/vino-prompt.glade.h:2 +msgid "A user on another computer is trying to remotely view or control your desktop." +msgstr "གློག་རིག་གཞན་ ལག་ལེན་འཐབ་མི་ཅིག་གིས་ ཐག་རིང་ལས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ལུ་ བལྟ་ནིའམ་ཚད་འཛིན་འབད་ནིའི་ འབད་རྩོལ་བསྐྱེད་དོ།" + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "ཁྱོད་ཀྱིས་ཁོང་ལུ་ དེ་སྦེ་འབད་བཅུག་ནི་ཨིན་ན?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "དྲི་བ།" + +#: ../server/vino-prompt.glade.h:5 +#: ../server/vino-util.c:63 +msgid "_Allow" +msgstr "འབད་བཅུག(_A)" + +#: ../server/vino-prompt.glade.h:6 +#: ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "འབད་མ་བཅུག(_R)" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "ཆོག་པའི་བདེན་བཤད་ཐབས་ལམ་ཚུ།" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "ཐབས་གཞན་འགྲུལ་ལམ་ཨང་" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་གི་ ཡུ་ཨར་ཨེལ་གཏང་དགོ་པའི་ གློག་འཕྲིན་ཁ་བྱང་།" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་གི་འཛུལ་སྤྱོད་ ལྕོགས་ཅན་བཟོ།" + +#: ../server/vino-server.schemas.in.h:5 +msgid "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a vncviewer." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ ཨར་ཨེཕ་བི་ གནད་སྤེལ་ལམ་ལུགས་བརྒྱུད་དེ་ ཌེཀསི་ཊོཔ་ལུ་ ཐག་རིང་འཛུལ་སྤྱོད་འབད་བཅུགཔ་ཨིན། ཐག་རིང་གློག་འཕྲུལ་ཚུ་ལུ་ ལག་ལེན་འཐབ་མི་ཚུ་གིས་ ཝི་ཨེན་སི་མཐོང་བྱེད་ ལག་ལེན་འཐབ་ཐོག་ལས་ ཌེཀསི་ཊོཔ་ལུ་མཐུད་བཏུབ།" + +#: ../server/vino-server.schemas.in.h:6 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ ཌེཀསི་ཊོཔ་ལུ་ འཛུལ་སྤྱོད་འབད་མི་ ཐག་རིང་ལག་ལེན་པ་ཚུ་ ཧོསིཊི་གློག་འཕྲུལ་དེ་གིས་ གནང་བ་མ་བྱིན་ཚུན་ཚོད་ འཛུལ་སྤྱོད་འབད་མི་བཅུགཔ་ཨིན། དེ་ཡང་གཙོ་བོར་ འཛུལ་སྤྱོད་འབད་ནི་ལུ་ ཆོག་ཡིག་ཐོག་གིས་ ཉེན་སྐྱོབ་མེད་པའི་སྐབས་ ལག་ལེན་འཐབ་དགོ" + +#: ../server/vino-server.schemas.in.h:7 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ ཐག་རིང་ལག་ལེན་པ་ཌེཀསི་ཊོཔ་ལུ་ འཛུལ་སྤྱོད་འབད་མི་ཚུ་ ཌེཀསི་ཊོཔ་ལུ་ བལྟ་ནི་ཙམ་ཅིག་ཆོགཔ་ཨིན། ཐག་རིང་ལག་ལེན་པ་ཚུ་གིས་ མཱའུསི་དང་ ལྡེ་སྒྲོམ་ཚུ་ ལག་ལེན་འཐབ་མི་ཚུགས།" + +#: ../server/vino-server.schemas.in.h:8 +msgid "If true, remote users accessing the desktop are required to be able support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ ཌེཀསི་ཊོཔ་ལུ་ འཛུལ་སྤྱོད་འབད་མི་ ཐག་རིང་ལག་ལེན་པ་ཚུ་གིས་ གསང་བཟོ་ལུ་རྒྱབ་སྐྱོར་འབད་ཚུགས་དགོ དེ་གིས་སྦེ་ བར་དཀྲོགས་ཡོངས་འབྲེལ་དེ་ བློ་གཏད་ཅན་ཅིག་ཨིན་ན་མ་གཏོགས་ དེ་མིན་གསང་བཟོ་ལུ་ རྒྱབ་སྐྱོར་ཡོད་པའི་ ཞབས་ཏོག་སྤྱོད་མི་ཅིག་ ལག་ལེན་འཐབ་དགོ" + +#: ../server/vino-server.schemas.in.h:9 +msgid "If true, the server will listen another port, instead of default (5900). The port must be specified in 'alternative_port' key." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ སྔོན་སྒྲིག་ (༥༩༠༠)གི་ཚབ་ལུ་ སར་བར་གྱིས་འགྲུལ་ལམ་གཞན་མི་ཅིག་ལུ་ཉན་འོང་། འགྲུལ་ལམ་འདི་ 'ཐབས་གཞན་འགྲུལ་ལམ་' ལྡེ་མིག་ནང་གསལ་བཀོད་འབད་དགོ (_p)" + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, the server will only accept connections from localhost and network connections will be rejected. Set this option to true if you wish to exclusively use a tunneling mechanism to access the server, such as ssh." +msgstr "བདེན་པ་ཨིན་པ་ཅིན་ སར་བར་འདི་གིས་ ཉེ་གནས་ཧོསིཊི་ལས་རྐྱངམ་ཅིག་ མཐུད་ལམ་ཚུ་དང་ལེན་འབད་འོང་ དེ་ལས་ ཡོངས་འབྲེལ་མཐུད་ལམ་ཚུ་ དང་ལེན་སྤང་འོང་། འ་ནི་གདམ་ཁ་འདི་ ཁྱོད་ཀྱིས་ ཊ་ན་ལིང་ཐབས་རིག་ཅིག་ གྲངས་སུ་མ་བརྩི་བར་ སར་བར་འདི་འཛུལ་སྤྱོད་འབད་ནིའི་དོན་ལས་ རེ་འདོད་བསྐྱེདཔ་ཨིན་པ་ཅིན་ བདེན་པ་ལུ་གཞི་སྒྲིག་འབད་ དཔེར་ན་ ཨེསི་ཨེསི་ཨེཆ་བཟུམ།" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Listen an alternative port" +msgstr "ཐབས་གཞན་འགྲུལ་ལམ་ཅིག་ཉན་" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Lists the authentication methods with which remote users may access the desktop. There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc_password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "ཐག་རིང་ལག་ལེན་པ་ཚུ་གིས་ ཌེཀསི་ཊོཔ་ལུ་ འཛུལ་སྤྱོད་འབད་ཚུགས་པའི་ བདེན་བཤད་ཐབས་ལམ་ཚུ་ ཐོ་བཀོད་འབད། འོས་ལྡན་གྱི་བདེན་བཤད་ཐབས་ལམ་གཉིས་ཡོད། \"vnc\" དེ་གིས་ཐག་རིང་ལག་ལེན་པ་ལུ་ ཆོག་ཡིག་ཅིག་གི་དོན་ལུ་ ནུས་སྤེལ་འབདཝ་ཨིན། (ཆོག་ཡིག་དེ་ཡང་ ཝི་ཨེན་སི་ཆོག་ཡིག་ལྡེ་མིག་) དེ་གིས་ མ་མཐུད་པའི་ཧེ་མར་ གསལ་བཀོད་འབདཝ་ཨིནམ་དང་ \"none\" དེ་གིས་ ཐག་རིང་ལག་ལེན་པ་ཚུ་ མཐུད་བཅུགཔ་ཨིན།(_p)" + +#: ../server/vino-server.schemas.in.h:13 +msgid "Only allow local connections" +msgstr "ཉེ་གནས་མཐུད་ལམ་ཚུ་རྐྱངམ་ཅིག་འབད་བཅུག་" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Only allow remote users to view the desktop" +msgstr "ཐག་རིང་ལག་ལེན་པ་ཚུ་ ཌེཀསི་ཊོཔ་ལུ་ བལྟ་ནི་ཙམ་ཅིག་ཆོགཔ་བཟོ།" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" བདེན་བཤད་ཀྱི་དོན་ལུ་ ཆོག་ཡིག་དགོ" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Prompt the user before completing a connection" +msgstr "མཐུད་ལམ་མ་ཚར་བའི་གོང་ལས་ ལག་ལེན་པ་ལུ་ ནུས་སྤེལ་འབད།" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Require encryption" +msgstr "གསང་བཟོ་འབད་དགོ" + +#: ../server/vino-server.schemas.in.h:18 +msgid "The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded." +msgstr "\"vnc\" བདེན་བཤད་ཐབས་ལམ་དེ་ ལག་ལེན་འཐབ་པ་ཅིན་ ཐག་རིང་ལག་ལེན་པ་དེ་ལུ་ ནུས་སྤེལ་འབད་ནིའི་ཆོག་ཡིག ལྡེ་མིག་གིས་ གསལ་བཀོད་འབད་མི་ ཆོག་ཡིག་དེ་ གཞི་རྟེན་ ༦༤ ཨིན་ཀོ་ཌེཌི་ཨིན།" + +#: ../server/vino-server.schemas.in.h:19 +msgid "The port which the server will listen to if the 'use_alternative_port' key is set to true. Valid values are in the range from 5000 to 50000." +msgstr "'use_alternative_port' ལྡེ་མིག་འདི་ བདེན་པ་ལུ་གཞི་སྒྲིག་འབད་ཡོདཔ་ཨིན་པ་ཅིན་ སར་བར་འདི་གིས་ཉན་ནི་ཨིན་མི་འགྲུལ་ལམ། ནུས་ལྡན་གནས་གོང་ཚུ་ ༥༠༠༠ ལས་༥༠༠༠༠ གི་ཁྱབ་ཚད་འདི་ནང་ཨིན།" + +#: ../server/vino-server.schemas.in.h:20 +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Remote Desktop preferences dialog." +msgstr "ལག་ལེན་པ་དེ་གིས་ ཐག་རིང་ཌེཀསི་ཊོཔ་གི་ དགའ་གདམ་གྱི་ཌའི་ལོག་ནང་གི་ ཡུ་ཨར་ཨེལ་གུ་ ཨེབ་གཏང་འབད་བ་ཅིན་ ལྡེ་མིག་འདི་གིས་ ཐག་རིང་ཌེཀསི་ཊོཔ་གི་ ཡུ་ཨར་ཨེལ་གཏང་སའི་ གློག་འཕྲིན་ཁ་བྱང་དེ་ གསལ་བཀོད་འབདཝ་ཨིན། " + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་དེ་ ཧེ་མ་ལས་ གཡོག་བཀོལ་བཞིན་ཡོདཔ་ལས་ ཕྱིར་འཐོན་འབད་དོ་...\n" + +#: ../server/vino-shell.c:79 +msgid "Problem registering the remote desktop server with bonobo-activation; exiting ...\n" +msgstr "བོ་ནོ་བོ་ཤུགས་བཟོ་བའི་ཐོག་ལས་ ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་ ཐོ་བཀོད་འབད་ནི་ལུ་དཀའ་ངལ་ཡོདཔ་ལས་ ཕྱིར་འཐོན་འབད་དོ།\n" + +#: ../server/vino-status-icon.c:204 +#, c-format +msgid "" +"There was an error displaying preferences:\n" +" %s" +msgstr "" +"དགའ་གདམ་བཀྲམ་སྟོན་འབད་བའི་སྐབས་ འཛོལ་བ་ཅིག་འདུག\n" +"%s" + +#: ../server/vino-status-icon.c:212 +#, c-format +msgid "" +"There was an error displaying help:\n" +" %s" +msgstr "" +"གྲོགས་རམ་བཀྲམ་སྟོན་འབད་བའི་སྐབས་ འཛོལ་བ་ཅིག་འདུག\n" +"%s" + +#: ../server/vino-status-icon.c:235 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"ཇི་ཨེན་ཡུ་ཡོངས་ཁྱབ་མི་མང་ཆོག་ཐམ་གྱི་ཐོན་རིམ་ ༢ ཀྱི་འོག་ལུ་ ཆོག་ཐམ་བཟོ་ཡོད་\n" +"\n" +"ཝི་ནོ་འདི་རང་དབང་མཉེན་ཆས་ཅིག་ཨིན་ ཁྱོད་ཀྱིས་འདི་ལོག་བགོ་བཀྲམ་འབད་ཚུགས་ དེ་ལས་/ཡང་ན་\n" +"ཇི་ཨེན་ཡུ་ཡོངས་ཁྱབ་མི་མང་ཆོག་ཐམ་གི་ཐ་སྙད་འོག་ལུ་\n" +"རང་དབང་མཉེན་ཆས་གཞི་ཚོགས་ཀྱིས་དཔེ་བསྐྲུན་འབད་དོ་བཟུམ་སྦེ་ ཡང་ན་ཐོན་རིམ་༢\n" +"ཆོག་ཐམ་གི་ ཡང་ན་(ཁྱོད་རའི་གདམ་ཁ་ཐོག་) ཤུལ་ལས་ཀྱི་ཐོན་རིམ་ག་འབད་རུང་ ལེགས་བཅོས་འབད་བཏུབ།\n" +"\n" +"ཝི་ནོ་འདི་ཕན་ཐོག་ཅན་ཅིག་གི་རེ་བ་ལུ་དམིགས་ཏེ་ བགོ་བཀྲམ་འབད་འབདཝ་ཨིན་\n" +"དེ་འབདཝ་ད་ཉེན་ལེན་ག་ནི་ཡང་མེད་པ་ ཡང་ན་\n" +"ཚོང་འབྲེལ་ཡང་ན་ དམིགས་བསལ་དགོས་དོན་ཅིག་གི་དོན་ལུ་ཚུད་སྒྲིག་གི་ བསྟར་སྤྱོད་འབད་འབད་བའུ་ཉེན་ལེན་ག་ནི་ཡང་མེད་པ།\n" +"རྒྱས་བཤད་ཐེབས་ཀྱི་དོན་ལུ་ ཇི་ཨེན་ཡུ་ཡོངས་ཁྱབ་མི་མང་ཆོག་ཐམ་འདི་བལྟ།\n" +"\n" +"ཁྱོད་ཀྱིས་ཇི་ཨེན་ཡུ་ཡོངས་ཁྱབ་མི་མང་ཆོག་ཐམ་གྱི་འདྲ་བཤུས་ཅིག་\n" +"འ་ནི་ལས་རིམ་འདི་དང་གཅིག་ཁར་འཐོབ་འཐོབ་འོང་་ མ་ཐོབ་པ་ཅིན་ རང་དབང་མཉེན་ཆས་\n" +"གཞི་ཚོགས་ Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA ལུ་འབྲི།\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:250 +msgid "translator-credits" +msgstr "ཨའི་ཌི་ཨར་སི་གི་མ་དངུལ་རྒྱབ་སྐྱོར་ཐོག་ལས་ བརྡ་དོན་འཕྲུལ་རིག་ལས་ཁུངས་ནང་ སྐད་བསྒྱུར་འབད་ཡི། ཁ་གསལ་གྱི་དོན་ལུ་ འབྲེལ་བ་འཐབ་ས: <pema_geyleg@druknet.bt>/ <pgeyleg@dit.gov.bt>" + +#: ../server/vino-status-icon.c:256 +#: ../server/vino-status-icon.c:566 +msgid "GNOME Remote Desktop" +msgstr "ཇི་ནོམ་ཐག་རིང་གི་ཌེཀསི་ཊོཔ་" + +#: ../server/vino-status-icon.c:257 +msgid "Share your desktop with other users" +msgstr "ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་འདི་ གཞན་མི་ལག་ལེན་པ་ཚུ་དང་གཅིག་ཁར་ རུབ་སྤྱོད་འབད་" + +#: ../server/vino-status-icon.c:320 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "ཁྱོད་ཀྱིས་ '%s' མཐུད་ལམ་བཏོག་གཏང་ནི་ངེས་ཏིག་ཨིན་ན?" + +#: ../server/vino-status-icon.c:322 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr " '%s' ལས་ཐག་རིང་གི་ལག་ལེན་པ་འདི་ མཐུད་ལམ་བཏོག་གཏང་འོང་། ཁྱོད་ངེས་གཏན་ཨིན་ན?" + +#: ../server/vino-status-icon.c:327 +msgid "Are you sure you want to disconnect all clients?" +msgstr "ཁྱོད་ཀྱིས་ཞབས་ཏོག་སྤྱོད་མི་ཚུ་ཆ་མཉམ་ མཐུད་ལམ་བཏོག་གཏང་ནི་ ངེས་གཏན་ཨིན་ན?" + +#: ../server/vino-status-icon.c:328 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "ཐག་རིང་གི་ལག་ལེན་པ་ཚུ་ཆ་མཉམ་མཐུད་ལམ་བཏོག་གཏང་འོང་། ཁྱོད་ངེས་གཏན་ཨིན་ན?" + +#: ../server/vino-status-icon.c:340 +msgid "Disconnect" +msgstr "མཐུད་ལམ་བཏོག་གཏང་" + +#: ../server/vino-status-icon.c:365 +msgid "_Preferences" +msgstr "དགའ་གདམ་ཚུ་(_P)" + +#: ../server/vino-status-icon.c:377 +msgid "Disconnect all" +msgstr "ཆ་མཉམ་མཐུད་ལམ་བཏོག་གཏང་" + +#: ../server/vino-status-icon.c:399 +#, c-format +msgid "Disconnect %s" +msgstr "%s མཐུད་ལམ་བཏོག་གཏང་" + +#: ../server/vino-status-icon.c:416 +msgid "_Help" +msgstr "གྲོགས་རམ་(_H)" + +#: ../server/vino-status-icon.c:424 +msgid "_About" +msgstr "སྐོར་ལས་(_A)" + +#: ../server/vino-status-icon.c:458 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "གང་ཟག་གཅིག་མཐུད་ཡོད་" +msgstr[1] "%d མི་ཚུ་མཐུད་ཡོད་" + +#: ../server/vino-status-icon.c:568 +msgid "Error initializing libnotify\n" +msgstr "ལིབ་བརྡ་བསྐུལ་འགོ་འབྱེད་འབདཝ་ད་འཛོལ་བ་\n" + +#: ../server/vino-status-icon.c:582 +msgid "Another user is viewing your desktop" +msgstr "ལག་ལེན་པ་གཞན་ཅིག་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་བལྟ་དེས་" + +#: ../server/vino-status-icon.c:583 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "གློག་རིག་ '%s' གུའི་ལག་ལེན་པ་ཅིག་གིས་ ཐག་རིང་ལས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ལུ་ བལྟ་དེས།" + +#: ../server/vino-status-icon.c:588 +msgid "Another user is controlling your desktop" +msgstr "ལག་ལེན་པ་གཞན་མི་ཅིག་གིས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ ཚད་འཛིན་འབད་དེས་" + +#: ../server/vino-status-icon.c:589 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "གློག་རིག་ '%s' གུའི་ལག་ལེན་པ་ཅིག་གིས་ ཐག་རིང་ལས་ ཁྱོད་ཀྱི་ཌེཀསི་ཊོཔ་ཚད་འཛིན་འབད་དེས།" + +#: ../server/vino-status-icon.c:611 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "བརྡ་བསྐུལ་བབ་བཱལ་བཀྲམ་སྟོན་འབདཝ་ད་འཛོལ་བ་: %s\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་ མེདཔ་ཐལ་སོངམ་ལས་ ལོག་འགོ་བཙུགས་དོ། \n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "%s ཤུགས་ལྡན་བཟོ་མ་ཤུགས། %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "%s ཤུགས་ལྡན་བཟོ་མ་ཚུགས་: མ་ཤེས་པའི་འཛོལ་བ། \n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་ ཤུགས་ལྡན་བཟོ་མ་ཚུགས་: ལན་ཐེངས་མང་རབས་ཅིག་ འབད་རྩོལ་བསྐྱེད་ཅི། \n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་ འགོ་བཙུགས་དོ།" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "ཐག་རིང་ཌེཀསི་ཊོཔ་སར་བར་ འགོ་མི་བཙུགས་པས།" + +#~ msgid " " +#~ msgstr " " +#~ msgid " " +#~ msgstr " " +#~ msgid "*" +#~ msgstr "*" +#~ msgid "Address" +#~ msgstr "ཁ་བྱང་།" +#~ msgid "The address pointed to by the widget" +#~ msgstr "ཝི་གེཊི་གིས་ རྩེ་དཔག་མི་ ཁ་བྱང་དེ" +#~ msgid "Tooltip" +#~ msgstr "ལག་ཆས་ཕན་བསླབ།" +#~ msgid "A tooltip for this URL" +#~ msgstr "ཡུ་ཨར་ཨེལ་འདི་གི་དོན་ལུ་ ལག་ཆས་ཕན་བསླབ་ཅིག" +#~ msgid "URL color" +#~ msgstr "ཡུ་ཨར་ཨེལ་གྱི་ཚོས་གཞི།" +#~ msgid "The color of the URL's label" +#~ msgstr "ཡུ་ཨར་ཨེལ་གྱི་ ཁ་ཡིག་གི་ཚོས་གཞི།" +#~ msgid "The screen to be monitored" +#~ msgstr "ལྟ་རྟོག་འབད་དགོ་པའི་གསལ་གཞི།" +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "ཝི་ཨེན་སི་ སར་བར་ གསར་བསྐྲུན་འབད་སའི་གསལ་གཞི།" +#~ msgid "On Hold" +#~ msgstr "འཛིན་བཞག་གུ" +#~ msgid "Place all clients on hold" +#~ msgstr "ཞབས་ཏོག་སྤྱོད་མི་ཆ་མཉམ་ འཛིན་བཞག་གུ་བཀལ།" +#~ msgid "Prompt enabled" +#~ msgstr "ནུས་སྤེལ་ ལྕོགས་ཅན་བཟོ་ཡི།" +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "ལག་ལེན་པ་དེ་ལུ་ མཐུད་ནིའི་དཔའ་བཅམ་པའི་སྐོར་ལས་ ནུས་སྤེལ་འབད།" +#~ msgid "View Only" +#~ msgstr "བལྟ་ནི་ཙམ།" +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "ཞབས་ཏོག་སྤྱོད་མི་ཚུ་ནང་ལས་ ལྡེ་སྒྲོམ་/དཔག་བྱེད་ཨིན་པུཊི་ མ་ཆོགཔ་བཟོ།" +#~ msgid "Require Encryption" +#~ msgstr "གསང་བ་བཟོ་དགོ" +#~ msgid "Require clients to use encryption" +#~ msgstr "ཡོངས་འབྲེལ་ཡན་ཡག་ཚུ་གིས་ གསང་བཟོ་ལག་ལེན་འཐབ་དགོ" +#~ msgid "Authentication methods" +#~ msgstr "བདེན་བཤད་ཀྱི་ ཐབས་ལམ་ཚུ།" +#~ msgid "The authentication methods this server should allow" +#~ msgstr "སར་བར་འདི་གིས་ འབད་ཆོག་དགོ་པའི་ བདེན་བཤད་ཐམས་ལམ་ཚུ།" +#~ msgid "VNC Password" +#~ msgstr "ཝི་ཨེན་སི་ ཆོག་ཡིག" +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "ཝི་ཨེན་སི་བདེན་བཤད་ཐབས་ལམ་ ལག་ལེན་འཐབ་ཐོག་ལས་ དབྱེ་བ་བདེན་བཤད་འབད་ནི་ལུ་ ལག་ལེན་པའི་ཆོག་" +#~ "ཡིག་ (གཞི་རྟེན་༦༤ ཨིན་ཀོ་ཌེཌི་)" + diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..2cd7e18 --- /dev/null +++ b/po/el.po @@ -0,0 +1,863 @@ +# Greel translation of Vino +# This file is distributed under the same license as the Vino package. +# Copyright (C) 2005 - 2009 Free Software Foundation +# Kostas Papadimas <pkst@gnome.org>, 2004, 2008, 2012. +# Nikos Charonitakis <charosn@her.forthnet.gr>, 2004. +# Athanasios Lefteris <alefteris@gmail.com>, 2007. +# Jennie Petoumenou <epetoumenou@gmail.com>, 2009. +# Μάριος Ζηντίλης <m.zindilis@dmajor.org>, 2009. +# Γιώργος Στεφανάκης <george.stefanakis@gmail.com>, 2011. +# Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-08-15 15:50+0000\n" +"PO-Revision-Date: 2014-08-28 23:03+0200\n" +"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n" +"Language-Team: team@gnome.gr\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.5\n" +"X-Project-Style: gnome\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Προτροπή του χρήστη πριν την ολοκλήρωση μιας σύνδεσης" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Αν είναι αληθές, δεν επιτρέπεται στους απομακρυσμένους χρήστες η πρόσβαση " +"στην επιφάνεια εργασίας μέχρι η κεντρική μονάδα να επιτρέψει τη σύνδεση. " +"Συνιστάται ιδιαίτερα όταν η πρόσβαση δεν προστατεύεται με κωδικό πρόσβασης." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "" +"Να επιτρέπεται στους απομακρυσμένους χρήστες να βλέπουν μόνο την επιφάνεια " +"εργασίας" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Αν είναι αληθές, οι απομακρυσμένοι χρήστες που έχουν πρόσβαση στην επιφάνεια " +"εργασίας επιτρέπεται μόνο για να βλέπουν την επιφάνεια εργασίας. Οι " +"απομακρυσμένοι χρήστες δεν θα μπορούν να χρησιμοποιήσουν το πληκτρολόγιο ή " +"το ποντίκι." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Παρακολουθούμενη διεπαφή δικτύου" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Αν δεν οριστεί, ο διακομιστής θα παρακολουθεί όλες τις διεπαφές δικτύου.\n" +"\n" +"Ορίστε το, αν επιθυμείτε να δέχεστε συνδέσεις μόνο από συγκεκριμένη διεπαφή " +"δικτύου. Π.χ. eth0, wifi0, lo, κ.ο.κ." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Αναμονή σύνδεσης σε εναλλακτική θύρα" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Αν είναι αληθές, ο διακομιστής θα αναμένει συνδέσεις σε μια άλλη θύρα, αντί " +"της προεπιλεγμένης (5900). Η θύρα πρέπει να καθοριστεί με το κλειδί " +"'alternative-port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Εναλλακτικός αριθμός θύρας" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Η θύρα που θα παρακολουθεί ο διακομιστής εάν το κλειδί 'use-alternative-" +"port' είναι καθορισμένο σε αληθές. Έγκυρες τιμές κυμαίνονται από 5000 μέχρι " +"50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Απαιτείται κρυπτογράφηση" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Αν είναι αληθές, οι απομακρυσμένοι χρήστες που θα έχουν πρόσβαση στην " +"επιφάνεια εργασίας θα πρέπει να υποστηρίζουν κρυπτογράφηση. Συνιστάται να " +"χρησιμοποιήσετε ένα πελάτη που θα υποστηρίζει κρυπτογράφηση, εκτός και αν το " +"ενδιάμεσο δίκτυο είναι έμπιστο." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Να επιτρέπονται μέθοδοι πιστοποίησης" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Παρουσιάζει τις μεθόδους πιστοποίησης των απομακρυσμένων χρηστών για την " +"πρόσβαση στην επιφάνεια εργασίας.\n" +"\n" +"Υπάρχουν δύο πιθανές μέθοδοι πιστοποίησης, το \"vnc\" όπου και θα ζητείται " +"από το χρήστη κωδικός πρόσβασης (ο κωδικός καθορίζεται από το κλειδί vnc-" +"password), και \"none\" όπου και επιτρέπεται η ελεύθερη σύνδεση του χρήστη." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Απαιτείται κωδικός πρόσβασης για την πιστοποίηση \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Ο κωδικός πρόσβασης που θα ζητηθεί από το χρήστη αν χρησιμοποιείται η " +"μέθοδος πιστοποίησης \"vnc\". Ο κωδικός πρόσβασης που καθορίζεται από το " +"κλειδί είναι κωδικοποιημένος σε base64.\n" +"\n" +" Η ειδική τιμή του \"keyring\" (το οποίο δεν είναι έγκυρο base64) σημαίνει " +"ότι ο κωδικός είναι αποθηκευμένος στην κλειδοθήκη του GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Η διεύθυνση ηλεκτρονικού ταχυδρομείου στην οποία θα σταλεί η διεύθυνση της " +"απομακρυσμένης επιφάνειας εργασίας " + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Αυτό το κλειδί καθορίζει τη διεύθυνση ηλεκτρονικού ταχυδρομείου στην οποία " +"θα σταλεί η διεύθυνση της απομακρυσμένης επιφάνειας εργασίας αν ο χρήστης " +"πατήσει στη διεύθυνση του διαλόγου προτιμήσεων της απομακρυσμένης επιφάνειας " +"εργασίας." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Κλείδωμα της οθόνης όταν αποσυνδέεται ο τελευταίος χρήστης" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Αν είναι αληθές, η οθόνη θα κλειδώνει μετά την αποσύνδεση του τελευταίου " +"απομακρυσμένου πελάτη." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Πότε θα πρέπει να εμφανίζεται το εικονίδιο κατάστασης" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Αυτό το κλειδί ελέγχει τη συμπεριφορά του εικονιδίου κατάστασης. Υπάρχουν " +"τρεις επιλογές: \"πάντα\" - το εικονίδιο θα είναι πάντα παρόν· \"πελάτης\" - " +"Θα βλέπετε το εικονίδιο μόνο όταν είναι κάποιος συνδεδεμένος (αυτή είναι η " +"προεπιλεγμένη συμπεριφορά)· και \"ποτέ\" - το εικονίδιο δεν θα εμφανίζεται " +"ποτέ." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Εάν θα απενεργοποιείται το παρασκήνιο της επιφάνειας εργασίας κατά τη " +"σύνδεση χρήστη" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Όταν είναι αληθές, απενεργοποιεί το παρασκήνιο της επιφάνειας εργασίας και " +"το αντικαθιστά με με ένα ενιαίο μπλοκ χρώματος όταν ο χρήστης συνδέεται με " +"επιτυχία." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Εάν ένας δρομολογητής UPnP πρέπει να χρησιμοποιηθεί για προώθηση και άνοιγμα " +"θυρών" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Εάν είναι αληθές, ζητήστε έναν κατάλληλο δρομολογητή UPnP να προωθεί και να " +"ανοίγει τη θύρα που χρησιμοποιείται από το Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Αν πρέπει να απενεργοποιηθεί η επέκταση XDamage του X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Εάν είναι αληθές, δε θα χρησιμοποιείται η επέκταση XDamage του X.org. Αυτή η " +"επέκταση δε λειτουργεί σωστά με μερικούς οδηγούς βίντεο όταν " +"χρησιμοποιούνται εφέ 3Δ. Η απενεργοποίησή της θα κάνει το vino να δουλεύει " +"σε αυτά τα περιβάλλοντα, με παρενέργεια την αργή απόδοση." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Ειδοποίηση κατά τη σύνδεση" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Αν είναι αληθές, να εμφανίζεται μια ειδοποίηση, όταν ο χρήστης συνδέεται στο " +"σύστημα." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Το αρχείο δεν είναι ένα έγκυρο αρχείο .desktop " + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Μη αναγνωρίσιμο αρχείο desktop Version '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Γίνεται εκκίνηση του %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Η εφαρμογή δε δέχεται έγγραφα από τη γραμμή εντολών" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Μη αναγνωρίσιμη επιλογή εκκίνησης: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Αδύνατο το πέρασμα των URI εγγράφων στην καταχώρηση 'Type=Link' του desktop" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Μη εκκινήσιμο αντικείμενο" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Απενεργοποίηση σύνδεσης προς το διαχειριστή συνεδρίας" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Καθορισμός αρχείου που περιλαμβάνει τις αποθηκευμένες ρυθμίσεις" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ΑΡΧΕΙΟ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Καθορισμός ταυτότητας διαχείρισης συνεδριών" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ΤΑΥΤΟΤΗΤΑ" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Επιλογές διαχείρισης συνεδρίας:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Προβολή επιλογών διαχείρισης συνεδρίας" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Ο XServer δεν υποστηρίζει την επέκταση XTest - η πρόσβαση απομακρυσμένης " +"επιφάνειας εργασίας θα είναι μόνο για προβολή\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Εκκίνηση σε λειτουργία σωλήνα, για τη λειτουργία ‘Κοινή χρήση της επιφάνειας " +"εργασίας μου’" + +#: ../server/vino-main.c:255 +msgid "- VNC Server for GNOME" +msgstr "- Διακομιστής VNC για το GNOME" + +#: ../server/vino-main.c:263 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Εκτελέστε 'vino-server --help' για να εμφανιστεί η πλήρης λίστα των " +"διαθέσιμων επιλογών της γραμμής εντολών" + +#: ../server/vino-main.c:275 +msgid "GNOME Desktop Sharing" +msgstr "Κοινή χρήση επιφάνειας εργασίας του GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Απομακρυσμένη επιφάνεια εργασίας του %s σε %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Ελήφθη σήμα %d, έξοδος." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Οθόνη" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Η οθόνη στην οποία θα εμφανίζεται η προτροπή" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Σφάλμα αρχικοποίησης του libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Ένας χρήστης στον υπολογιστή '%s' προσπαθεί να δει ή να ελέγξει " +"απομακρυσμένα την επιφάνεια εργασίας σας." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Ένας άλλος χρήστης προσπαθεί να δει την επιφάνεια εργασίας σας." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Άρνηση" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Αποδοχή" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Αποτυχία ανοίγματος σύνδεσης με το δίαυλο: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Κοινή χρήση επιφάνειας εργασίας" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Διακομιστής απομακρυσμένης επιφάνειας εργασίας του GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;κοινόχρηστο;απομακρυσμένο;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Η κοινή χρήση επιφάνειας εργασίας είναι ενεργοποιημένη" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Ένας χρήστης βλέπει την επιφάνεια εργασίας σας" +msgstr[1] "%d χρήστες βλέπουν την επιφάνεια εργασίας σας" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Σφάλμα εμφάνισης των προτιμήσεων" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Σφάλμα εμφάνισης της βοήθειας" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Αδειοδοτήθηκε υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU έκδοση " +"2\n" +"\n" +"Το Vino είναι ελεύθερο λογισμικό· επιτρέπεται η αναδιανομή ή/και\n" +"τροποποίησή του υπό τους όρους της Γενικής Άδειας Δημόσιας Χρήσης GNU\n" +"όπως αυτή δημοσιεύεται από το Ίδρυμα Ελεύθερου Λογισμικού· ή έκδοση 2\n" +"της άδειας, ή (κατ' επιλογήν) οποιασδήποτε μεταγενέστερης έκδοσης.\n" +"\n" +"Το Vino διανέμεται με την ελπίδα ότι θα είναι χρήσιμο,\n" +"αλλά ΧΩΡΙΣ ΚΑΜΜΙΑ ΑΠΟΛΥΤΩΣ ΕΓΓΥΗΣΗ· χωρίς ακόμη και την έμμεση εγγύηση\n" +"ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ. Δείτε για\n" +"περισσότερες λεπτομέρειες την Γενική Άδεια Δημόσιας Χρήσης GNU\n" +"\n" +"Θα πρέπει να έχετε λάβει ένα αντίγραφο της GNU General Public License\n" +"μαζί με αυτό το πρόγραμμα· αν όχι, γράψτε στο Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Ελληνική μεταφραστική ομάδα GNOME\n" +" Δημήτρης Σπίγgος <dmtrs32@gmail.com>\n" +" Κώστας Παπαδήμας <pkst@gnome.org>\n" +" Νίκος Χαρωνιτάκης <charosn@her.forthnet.gr>\n" +" Αθανάσιος Λευτέρης <alefteris@gmail.com>\n" +" Νίκος Αγιαννιώτης <nickagian@gmail.com>\n" +" Τζένη Πετούμενου <epetoumenou@gmail.com>\n" +" Μαρία Μαυρίδου <mavridou@gmail.com>\n" +"\n" +"Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n" +"http://gnome.gr/" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Κοινή χρήση της επιφάνειας εργασίας με άλλους χρήστες" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Είστε βέβαιος πως θέλετε να αποσυνδέσετε τον '%s';" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Ο απομακρυσμένος χρήστης από το '%s' θα αποσυνδεθεί. Είστε βέβαιος;" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Είστε βέβαιος πως θέλετε να αποσυνδέσετε όλους τους πελάτες;" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Όλοι οι απομακρυσμένοι χρήστες θα αποσυνδεθούν. Είστε βέβαιος;" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Αποσύνδεση" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Προτιμήσεις" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Αποσύνδεση όλων" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Αποσύνδεση %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Βοήθεια" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Περί" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Ένας άλλος χρήστης βλέπει την επιφάνεια εργασίας σας" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Ένας χρήστης από τον υπολογιστή '%s' βλέπει απομακρυσμένα την επιφάνεια " +"εργασίας σας." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Ένας άλλος χρήστης ελέγχει την επιφάνεια εργασίας σας" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Ένας χρήστης από τον υπολογιστή '%s' ελέγχει απομακρυσμένα την επιφάνεια " +"εργασίας σας." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Σφάλμα κατά την εμφάνιση της ειδοποίησης: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Ο απομακρυσμένος χρήστης '%s' θα αποσυνδεθεί. Είστε βέβαιος;" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Πληροφορίες για τη κοινή χρήση της επιφάνειας εργασίας" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "Ο '%s' απέρριψε την πρόσκληση κοινής χρήσης της επιφάνειας εργασίας." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Ο '%s' αποσυνδέθηκε" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Ο '%s' ελέγχει απομακρυσμένα την επιφάνεια εργασίας σας." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Αναμονή του '%s' για σύνδεση στην οθόνη." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "Να επ_ιτρέπεται" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "Ά_ρνηση" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Υπήρξε σφάλμα:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Υπήρξε σφάλμα κατά την εμφάνιση του URL \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Υπήρξε σφάλμα κατά την εμφάνιση της βοήθειας:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Έλεγχος των δυνατοτήτων σύνδεσης του συστήματος..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "" +#~ "Η πρόσβαση στην επιφάνεια εργασίας σας είναι δυνατή μόνο μέσω του τοπικού " +#~ "δικτύου." + +#~ msgid " or " +#~ msgstr " ή " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "" +#~ "Άλλοι χρήστες μπορούν να έχουν πρόσβαση στον υπολογιστή σας " +#~ "χρησιμοποιώντας τη διεύθυνση %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Δεν επιτρέπεται σε κανέναν η πρόσβαση στην επιφάνεια εργασίας σας." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "" +#~ "Επιλογή του τρόπου με τον οποίο άλλοι χρήστες θα βλέπουν απομακρυσμένα " +#~ "την επιφάνεια εργασίας σας" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Προτιμήσεις κοινής χρήσης επιφάνειας εργασίας" + +#~ msgid "Sharing" +#~ msgstr "Κοινή χρήση" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Μερικές από τις προτιμήσεις είναι κλειδωμένες" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "" +#~ "Να επιτρέπεται σε άλλους χρήστες να _βλέπουν την επιφάνεια εργασίας σας" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Θα υπάρχει κοινή χρήση της επιφάνειας εργασίας" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "" +#~ "Να επι_τρέπεται σε άλλους χρήστες να ελέγχουν την επιφάνεια εργασίας σας" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "" +#~ "Οι απομακρυσμένοι χρήστες μπορούν να ελέγχουν το ποντίκι και το " +#~ "πληκτρολόγιο σας" + +#~ msgid "Security" +#~ msgstr "Ασφάλεια" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "Απαι_τείται επιβεβαίωση κάθε φορά που υπάρχει πρόσβαση στο σύστημα" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "" +#~ "Να _απαιτείται η εισαγωγή αυτού του κωδικού πρόσβασης από το χρήστη:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "Αυτόματη _ρύθμιση του UPnP στον δρομολογητή για το άνοιγμα και την " +#~ "προώθηση πορτών" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "Το UPnP πρέπει να είναι ενεργοποιημένο στο δρομολογητή" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Εμφάνιση εικονιδίου περιοχής ειδοποίησης" + +#~ msgid "Al_ways" +#~ msgstr "_Πάντα" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Μόνο αν κάποιος είναι συνδεδεμένος" + +#~ msgid "_Never" +#~ msgstr "Πο_τέ" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Να επιτρέπεται στους απομακρυσμένη πρόσβαση στην επιφάνεια εργασίας" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Αν είναι αληθές, επιτρέπει απομακρυσμένη πρόσβαση στην επιφάνεια εργασίας " +#~ "μέσω του πρωτοκόλλου RFB. Οι χρήστες σε απομακρυσμένα τερματικά μπορούν " +#~ "να συνδεθούν στην επιφάνεια εργασίας σας μέσω vncviewer." + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Κωδικός πρόσβασης απομακρυσμένης επιφάνειας εργασίας" + +#~ msgid "Cancelled" +#~ msgstr "Ακυρώθηκε" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "ΣΦΑΛΜΑ: Το μέγιστο μήκος του συνθηματικού είναι %d χαρακτήρας. Παρακαλώ, " +#~ "επαναπληκτρολογήστε τον κωδικό." +#~ msgstr[1] "" +#~ "ΣΦΑΛΜΑ: Το μέγιστο μήκος του συνθηματικού είναι %d χαρακτήρες. Παρακαλώ, " +#~ "επαναπληκτρολογήστε τον κωδικό." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Αλλαγή του κωδικού πρόσβασης της εφαρμογής.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Εισαγωγή νέου κωδικού πρόσβασης της εφαρμογής: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Επαναπληκτρολόγηση νέου κωδικού πρόσβασης της εφαρμογής: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: ο κωδικός πρόσβασης ενημερώθηκε επιτυχώς.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Συγγνώμη, οι κωδικοί δεν ταιριάζουν.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: ο κωδικός πρόσβασης δεν άλλαξε.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Προβολή έκδοσης της εφαρμογής" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Ενημερώνει τον κωδικό πρόσβασης" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Εκτέλεση 'vino-passwd --help' για να εμφανιστεί η πλήρης λίστα των " +#~ "διαθέσιμων επιλογών της γραμμής εντολών" + +#~ msgid "VINO Version %s\n" +#~ msgstr "Έκδοση εφαρμογής %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "" +#~ "ΣΦΑΛΜΑ: Δεν διαθέτετε επαρκή δικαιώματα για να αλλάξετε τον κωδικό " +#~ "πρόσβασης του Vino.\n" + +#~ msgid "Question" +#~ msgstr "Ερώτηση" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Ένας χρήστης σε ένα άλλο υπολογιστή προσπαθεί να δει ή να ελέγξει την " +#~ "επιφάνεια εργασίας σας." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Θέλετε να τους επιτρέψετε να το κάνουν αυτό;" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Αν είναι αληθές, θα χρησιμοποιείται το πρωτόκολλο UPNP για την αυτόματη " +#~ "προώθηση της θύρας που χρησιμοποιεί το vino στον εξυπηρετητή." + +#~ msgid "Remote Desktop" +#~ msgstr "Απομακρυσμένη επιφάνεια εργασίας" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Ενεργοποίηση πρόσβασης απομακρυσμένης επιφάνειας εργασίας" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Να ε_μφανίζεται πάντα ένα εικονίδιο" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "" +#~ "_Ρύθμιση του δικτύου έτσι ώστε να συνδέεται αυτόματα από το Διαδίκτυο" + +#~ msgid "_Never display an icon" +#~ msgstr "Να μην εμφανί_ζεται ποτέ εικονίδιο" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Να εμφανίζεται εικονίδιο μόνο όταν υπάρχει κάποιος συνδεδεμένος" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Απομακρυσμένη επιφάνεια εργασίας GNOME" + +#~ msgid "_Send address by email" +#~ msgstr "Απο_στολή της διεύθυνσης μέσω email" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Αντιγραφή διεύθυνσης στο πρόχειρο" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Μέγιστο μέγεθος: 8 χαρακτήρες" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Θα σας ζητηθεί να επιτρέψετε ή να απορρίψετε όλες τις εισερχόμενες " +#~ "συνδέσεις" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "Ο εξυπηρετητής απομακρυσμένης επιφάνειας εργασίας εκτελείται ήδη, γίνεται " +#~ "έξοδος...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Σφάλμα κατά την επικοινωνία με το GConf. Είστε συνδεδεμένοι σε μια " +#~ "συνέδρια GNOME;" + +#~ msgid "Error message:" +#~ msgstr "Μήνυμα σφάλματος:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Η μνήμη εξαντλήθηκε κατά το χειρισμό του μηνύματος '%s'" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "" +#~ "Η μνήμη εξαντλήθηκε κατά τη καταχώρηση του μονοπατιού αντικειμένου '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Αποτυχία στην προσπάθεια απόκτησης ονόματος D-Bus '%s'\n" diff --git a/po/en@shaw.po b/po/en@shaw.po new file mode 100644 index 0000000..989cf44 --- /dev/null +++ b/po/en@shaw.po @@ -0,0 +1,756 @@ +# Shavian translation for vino. +# Copyright (C) 2009 The Gnome Foundation. +# Thomas Thurman <tthurman@gnome.org>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&component=Preferences Dialog\n" +"POT-Creation-Date: 2010-05-12 22:45+0000\n" +"PO-Revision-Date: 2010-05-18 10:04 -0400\n" +"Last-Translator: Thomas Thurman <tthurman@gnome.org>\n" +"Language-Team: Shavian <ubuntu-l10n-en-shaw@launchpad.net>\n" +"Language: en@shaw\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "_𐑕𐑧𐑯𐑛 𐑩𐑛𐑮𐑧𐑕 𐑚𐑲 𐑰𐑥𐑱𐑤" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "_𐑒𐑪𐑐𐑦 𐑩𐑛𐑮𐑧𐑕 𐑑 𐑒𐑤𐑦𐑐𐑚𐑹𐑛" + +#, c-format +#: ../capplet/vino-message-box.c:103 +msgid "There was an error showing the URL \"%s\"" +msgstr "𐑞𐑺 𐑢𐑪𐑟 𐑩𐑯 𐑻𐑼 𐑖𐑴𐑦𐑙 𐑞 URL \"%s\"" + +#: ../capplet/vino-preferences.c:197 ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "𐑗𐑧𐑒𐑦𐑙 𐑞 𐑒𐑩𐑯𐑧𐑒𐑑𐑦𐑝𐑦𐑑𐑰 𐑝 𐑞𐑦𐑕 𐑥𐑩𐑖𐑰𐑯..." + +#, c-format +#: ../capplet/vino-preferences.c:804 +msgid "There was an error displaying help:\n%s" +msgstr "𐑞𐑺 𐑢𐑪𐑟 𐑩𐑯 𐑻𐑼 𐑛𐑦𐑕𐑐𐑤𐑱𐑦𐑙 𐑣𐑧𐑤𐑐:\n%s" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑦𐑟 𐑴𐑯𐑤𐑦 𐑮𐑰𐑗𐑩𐑚𐑩𐑤 𐑴𐑝𐑼 𐑞 𐑤𐑴𐑒𐑩𐑤 𐑯𐑧𐑑𐑢𐑻𐑒." + +#: ../capplet/vino-preferences.c:854 ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " 𐑹 " + +#, c-format +#: ../capplet/vino-preferences.c:859 ../capplet/vino-preferences.c:933 +msgid "Others can access your computer using the address %s." +msgstr "𐑳𐑞𐑼𐑟 𐑒𐑨𐑯 𐑨𐑒𐑕𐑧𐑕 𐑿𐑼 𐑒𐑩𐑥𐑐𐑿𐑑𐑼 𐑿𐑟𐑦𐑙 𐑞 𐑩𐑛𐑮𐑧𐑕 %s." + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "𐑯𐑴𐑚𐑪𐑛𐑦 𐑒𐑨𐑯 𐑨𐑒𐑕𐑧𐑕 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#, c-format +#: ../capplet/vino-preferences.c:1130 ../server/vino-server.c:164 +#: ../server/vino-server.c:194 +msgid "Failed to open connection to bus: %s\n" +msgstr "𐑓𐑱𐑤𐑛 𐑑 𐑴𐑐𐑩𐑯 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯 𐑑 𐑚𐑳𐑕: %s\n" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "𐑗𐑵𐑟 𐑣𐑬 𐑳𐑞𐑼 𐑿𐑟𐑼𐑟 𐑒𐑨𐑯 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑝𐑿 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "_𐑷𐑤𐑢𐑱𐑟 𐑛𐑩𐑕𐑐𐑤𐑱 𐑩𐑯 𐑲𐑒𐑪𐑯" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "𐑩𐑤𐑬 𐑳𐑞𐑼 𐑿𐑟𐑼𐑟 𐑑 _𐑝𐑿 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "𐑥𐑨𐑒𐑕𐑦𐑥𐑩𐑥 𐑕𐑲𐑟: 8 𐑒𐑸𐑩𐑒𐑑𐑼𐑟" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Notification Area" +msgstr "𐑯𐑴𐑑𐑦𐑓𐑦𐑒𐑱𐑖𐑩𐑯 𐑺𐑦𐑩" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑸 𐑱𐑚𐑩𐑤 𐑑 𐑒𐑩𐑯𐑑𐑮𐑴𐑤 𐑿𐑼 𐑥𐑬𐑕 𐑯 𐑒𐑰𐑚𐑪𐑮𐑛" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Security" +msgstr "𐑕𐑦𐑒𐑘𐑫𐑼𐑦𐑑𐑦" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Sharing" +msgstr "𐑖𐑺𐑦𐑙" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "𐑕𐑳𐑥 𐑝 𐑞𐑰𐑟 𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟 𐑸 𐑤𐑪𐑒𐑑 𐑛𐑬𐑯" + +#, fuzzy +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "𐑞 𐑮𐑵𐑑𐑼 𐑥𐑳𐑕𐑑 𐑣𐑨𐑝 𐑞 UPnP 𐑓𐑰𐑗𐑼 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "𐑿 𐑢𐑦𐑤 𐑚𐑰 𐑒𐑢𐑽𐑦𐑛 𐑑 𐑩𐑤𐑬 𐑹 𐑑 𐑮𐑧𐑓𐑿𐑕 𐑧𐑝𐑮𐑦 𐑦𐑯𐑒𐑳𐑥𐑦𐑙 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "Your desktop will be shared" +msgstr "𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑢𐑦𐑤 𐑚𐑰 𐑖𐑺𐑛" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "_𐑩𐑤𐑬 𐑳𐑞𐑼 𐑿𐑟𐑼𐑟 𐑑 𐑒𐑩𐑯𐑑𐑮𐑴𐑤 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "_𐑒𐑩𐑯𐑓𐑦𐑜𐑘𐑼 𐑯𐑧𐑑𐑢𐑻𐑒 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑑 𐑨𐑒𐑕𐑧𐑐𐑑 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯𐑟" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "_𐑯𐑧𐑝𐑼 𐑛𐑩𐑕𐑐𐑤𐑱 𐑩𐑯 𐑲𐑒𐑪𐑯" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "_𐑴𐑯𐑤𐑦 𐑛𐑩𐑕𐑐𐑤𐑱 𐑩𐑯 𐑲𐑒𐑪𐑯 𐑢𐑧𐑯 𐑞𐑺 𐑦𐑟 𐑕𐑳𐑥𐑢𐑳𐑯 𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "_𐑮𐑦𐑒𐑢𐑲𐑼 𐑞 𐑿𐑟𐑼 𐑑 𐑧𐑯𐑑𐑼 𐑞𐑦𐑕 𐑐𐑭𐑕𐑢𐑼𐑛:" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "_𐑿 𐑥𐑳𐑕𐑑 𐑒𐑪𐑯𐑓𐑻𐑥 𐑰𐑗 𐑨𐑒𐑕𐑧𐑕 𐑑 𐑞𐑦𐑕 𐑥𐑩𐑖𐑰𐑯" + +#, c-format +#: ../server/smclient/eggdesktopfile.c:165 +msgid "File is not a valid .desktop file" +msgstr "𐑓𐑲𐑤 𐑦𐑟 𐑯𐑪𐑑 𐑩 𐑝𐑨𐑤𐑦𐑛 .desktop 𐑓𐑲𐑤" + +#, c-format +#: ../server/smclient/eggdesktopfile.c:188 +msgid "Unrecognized desktop file Version '%s'" +msgstr "𐑩𐑯𐑮𐑧𐑒𐑩𐑜𐑯𐑲𐑟𐑛 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑓𐑲𐑤 𐑝𐑻𐑠𐑩𐑯 '%s'" + +#, c-format +#: ../server/smclient/eggdesktopfile.c:958 +msgid "Starting %s" +msgstr "𐑕𐑑𐑸𐑑𐑦𐑙 %s" + +#, c-format +#: ../server/smclient/eggdesktopfile.c:1100 +msgid "Application does not accept documents on command line" +msgstr "𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑨𐑒𐑕𐑧𐑐𐑑 𐑛𐑪𐑒𐑿𐑥𐑩𐑯𐑑𐑕 𐑪𐑯 𐑒𐑩𐑥𐑭𐑯𐑛 𐑤𐑲𐑯" + +#, c-format +#: ../server/smclient/eggdesktopfile.c:1168 +msgid "Unrecognized launch option: %d" +msgstr "𐑩𐑯𐑮𐑧𐑒𐑩𐑜𐑯𐑲𐑟𐑛 𐑤𐑷𐑯𐑗 𐑪𐑐𐑖𐑩𐑯: %d" + +#, c-format +#, fuzzy +#: ../server/smclient/eggdesktopfile.c:1373 +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "𐑒𐑭𐑯𐑑 𐑐𐑭𐑕 𐑛𐑪𐑒𐑿𐑥𐑩𐑯𐑑 URIs 𐑑 𐑩 '𐑑𐑲𐑐=𐑤𐑦𐑙𐑒' 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑧𐑯𐑑𐑮𐑦" + +#, c-format +#, fuzzy +#: ../server/smclient/eggdesktopfile.c:1392 +msgid "Not a launchable item" +msgstr "𐑯𐑪𐑑 𐑩 launchable 𐑲𐑑𐑩𐑥" + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "𐑛𐑦𐑕𐑱𐑚𐑩𐑤 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯 𐑑 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑼" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "𐑕𐑐𐑧𐑕𐑦𐑓𐑲 𐑓𐑲𐑤 𐑒𐑩𐑯𐑑𐑱𐑯𐑦𐑙 𐑕𐑱𐑝𐑛 𐑒𐑩𐑯𐑓𐑦𐑜𐑘𐑼𐑱𐑖𐑩𐑯" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "𐑓𐑲𐑤" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "𐑕𐑐𐑧𐑕𐑦𐑓𐑲 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 ID" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 𐑪𐑐𐑖𐑩𐑯𐑟:" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "𐑖𐑴 𐑕𐑧𐑖𐑩𐑯 𐑥𐑨𐑯𐑩𐑡𐑥𐑩𐑯𐑑 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../server/vino-dbus-listener.c:461 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑕𐑻𐑝𐑼 𐑷𐑤𐑮𐑧𐑛𐑦 𐑮𐑳𐑯𐑦𐑙; 𐑧𐑜𐑟𐑦𐑑𐑦𐑙 ...\n" + +#, fuzzy +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "- VNC 𐑕𐑻𐑝𐑼 𐑓𐑹 ·𐑜𐑯𐑴𐑥" + +#, fuzzy +#: ../server/vino-main.c:75 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "𐑮𐑳𐑯 'vino-𐑕𐑻𐑝𐑼 --𐑣𐑧𐑤𐑐' 𐑑 𐑕𐑰 𐑩 𐑓𐑫𐑤 𐑤𐑦𐑕𐑑 𐑝 𐑩𐑝𐑱𐑤𐑩𐑚𐑩𐑤 𐑒𐑩𐑥𐑭𐑯𐑛 𐑤𐑲𐑯 𐑪𐑐𐑖𐑩𐑯𐑟" + +#: ../server/vino-main.c:98 +msgid "GNOME Remote Desktop" +msgstr "·𐑜𐑯𐑴𐑥 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#, fuzzy +#: ../server/vino-main.c:108 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"𐑿𐑼 XServer 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑕𐑩𐑐𐑹𐑑 𐑞 XTest 𐑩𐑒𐑕𐑑𐑧𐑯𐑖𐑩𐑯 - 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑨𐑒𐑕𐑧𐑕 𐑢𐑦𐑤 𐑚𐑰 " +"𐑝𐑿-𐑴𐑯𐑤𐑦\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#, fuzzy +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#, c-format +#: ../server/vino-mdns.c:74 +msgid "%s's remote desktop on %s" +msgstr "%s'𐑕 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑪𐑯 %s" + +#, c-format +#: ../server/vino-prefs.c:607 +msgid "Received signal %d, exiting...\n" +msgstr "𐑮𐑦𐑕𐑰𐑝𐑛 𐑕𐑦𐑜𐑯𐑩𐑤 %d, 𐑧𐑜𐑟𐑦𐑑𐑦𐑙...\n" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "𐑕𐑒𐑮𐑰𐑯" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "𐑞 𐑕𐑒𐑮𐑰𐑯 𐑪𐑯 𐑢𐑦𐑗 𐑑 𐑛𐑦𐑕𐑐𐑤𐑱 𐑞 𐑐𐑮𐑪𐑥𐑐𐑑" + +#, c-format +#: ../server/vino-prompt.c:345 +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "𐑩 𐑿𐑟𐑼 𐑪𐑯 𐑞 𐑒𐑩𐑥𐑐𐑿𐑑𐑼 '%s' 𐑦𐑟 𐑑𐑮𐑲𐑦𐑙 𐑑 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑝𐑿 𐑹 𐑒𐑩𐑯𐑑𐑮𐑴𐑤 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your desktop." +msgstr "𐑩 𐑿𐑟𐑼 𐑪𐑯 𐑩𐑯𐑳𐑞𐑼 𐑒𐑩𐑥𐑐𐑿𐑑𐑼 𐑦𐑟 𐑑𐑮𐑲𐑦𐑙 𐑑 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑝𐑿 𐑹 𐑒𐑩𐑯𐑑𐑮𐑴𐑤 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "𐑩𐑯𐑳𐑞𐑼 𐑿𐑟𐑼 𐑦𐑟 𐑑𐑮𐑲𐑦𐑙 𐑑 𐑝𐑿 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "𐑛𐑵 𐑿 𐑢𐑪𐑯𐑑 𐑑 𐑩𐑤𐑬 𐑞𐑧𐑥 𐑑 𐑛𐑵 𐑕𐑴?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "𐑒𐑢𐑧𐑕𐑑𐑦𐑩𐑯" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:65 +msgid "_Allow" +msgstr "_𐑩𐑤𐑬" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:66 +msgid "_Refuse" +msgstr "_𐑮𐑩𐑓𐑿𐑟" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "·𐑜𐑯𐑴𐑥 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑕𐑻𐑝𐑼" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "𐑩𐑤𐑬𐑛 𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯 𐑥𐑧𐑔𐑩𐑛𐑟" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "𐑷𐑤𐑑𐑻𐑯𐑩𐑑𐑦𐑝 𐑐𐑹𐑑 𐑯𐑳𐑥𐑚𐑼" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "𐑰𐑥𐑱𐑤 𐑩𐑛𐑮𐑧𐑕 𐑑 𐑢𐑦𐑗 𐑞 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 URL 𐑖𐑫𐑛 𐑚𐑰 𐑕𐑧𐑯𐑑" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "𐑦𐑯𐑱𐑚𐑩𐑤 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑨𐑒𐑕𐑧𐑕" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if you " +"want that accept connections only from some specific network interface. eg: " +"eth0, wifi0, lo, ..." +msgstr "" +"𐑦𐑓 𐑯𐑪𐑑 𐑕𐑧𐑑, 𐑞 𐑕𐑻𐑝𐑼 𐑢𐑦𐑤 𐑤𐑦𐑕𐑩𐑯 𐑪𐑯 𐑷𐑤 𐑯𐑧𐑑𐑢𐑻𐑒 𐑦𐑯𐑑𐑼𐑓𐑱𐑕𐑩𐑟. 𐑕𐑧𐑑 𐑞𐑦𐑕 𐑦𐑓 𐑿 𐑢𐑪𐑯𐑑 𐑞𐑨𐑑 " +"𐑨𐑒𐑕𐑧𐑐𐑑 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯𐑟 𐑴𐑯𐑤𐑦 𐑓𐑮𐑪𐑥 𐑕𐑳𐑥 𐑕𐑐𐑩𐑕𐑦𐑓𐑦𐑒 𐑯𐑧𐑑𐑢𐑻𐑒 𐑦𐑯𐑑𐑼𐑓𐑱𐑕. eg: eth0, wifi0, 𐑤𐑴, " +"..." + +#, fuzzy +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑩𐑤𐑬𐑟 𐑮𐑦𐑥𐑴𐑑 𐑨𐑒𐑕𐑧𐑕 𐑑 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑝𐑲𐑩 𐑞 RFB 𐑐𐑮𐑴𐑑𐑩𐑒𐑪𐑤. 𐑿𐑟𐑼𐑟 𐑪𐑯 𐑮𐑦𐑥𐑴𐑑 𐑥𐑩𐑖𐑰𐑯𐑟 " +"𐑥𐑱 𐑞𐑧𐑯 𐑒𐑩𐑯𐑧𐑒𐑑 𐑑 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑿𐑟𐑦𐑙 𐑩 vncviewer." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially when " +"access is not password protected." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑨𐑒𐑕𐑧𐑕𐑦𐑙 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑸 𐑯𐑪𐑑 𐑩𐑤𐑬𐑛 𐑨𐑒𐑕𐑧𐑕 𐑳𐑯𐑑𐑦𐑤 𐑞 𐑿𐑟𐑼 𐑪𐑯 𐑞 𐑣𐑴𐑕𐑑 " +"𐑥𐑩𐑖𐑰𐑯 𐑩𐑐𐑮𐑵𐑝𐑟 𐑞 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯. 𐑮𐑧𐑒𐑩𐑥𐑧𐑯𐑛𐑩𐑛 𐑦𐑕𐑐𐑧𐑖𐑩𐑤𐑦 𐑢𐑧𐑯 𐑨𐑒𐑕𐑧𐑕 𐑦𐑟 𐑯𐑪𐑑 𐑐𐑭𐑕𐑢𐑼𐑛 " +"𐑐𐑮𐑩𐑑𐑧𐑒𐑑𐑩𐑛." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑨𐑒𐑕𐑧𐑕𐑦𐑙 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑸 𐑴𐑯𐑤𐑦 𐑩𐑤𐑬𐑛 𐑑 𐑝𐑿 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐. 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 " +"𐑢𐑦𐑤 𐑯𐑪𐑑 𐑚𐑰 𐑱𐑚𐑩𐑤 𐑑 𐑿𐑕 𐑞 𐑥𐑬𐑕 𐑹 𐑒𐑰𐑚𐑪𐑮𐑛." + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑨𐑒𐑕𐑧𐑕𐑦𐑙 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑸 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑑 𐑕𐑩𐑐𐑹𐑑 𐑦𐑯𐑒𐑮𐑦𐑐𐑖𐑩𐑯. 𐑦𐑑 𐑦𐑟 𐑣𐑲𐑤𐑦 " +"𐑮𐑧𐑒𐑩𐑥𐑧𐑯𐑛𐑩𐑛 𐑞𐑨𐑑 𐑿 𐑿𐑟 𐑩 𐑒𐑤𐑲𐑩𐑯𐑑 𐑢𐑦𐑗 𐑕𐑩𐑐𐑹𐑑𐑕 𐑦𐑯𐑒𐑮𐑦𐑐𐑖𐑩𐑯 𐑳𐑯𐑤𐑧𐑕 𐑞 𐑦𐑯𐑑𐑻𐑝𐑰𐑯𐑦𐑙 𐑯𐑧𐑑𐑢𐑻𐑒 𐑦𐑟 " +"𐑑𐑮𐑳𐑕𐑑𐑩𐑛." + +#: ../server/vino-server.schemas.in.h:10 +msgid "" +"If true, screen will be locked after the last remote client disconnect." +msgstr "𐑦𐑓 𐑑𐑮𐑵, 𐑕𐑒𐑮𐑰𐑯 𐑢𐑦𐑤 𐑚𐑰 𐑤𐑪𐑒𐑑 𐑭𐑓𐑑𐑼 𐑞 𐑤𐑭𐑕𐑑 𐑮𐑦𐑥𐑴𐑑 𐑒𐑤𐑲𐑩𐑯𐑑 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑." + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑞 𐑕𐑻𐑝𐑼 𐑢𐑦𐑤 𐑤𐑦𐑕𐑩𐑯 𐑑 𐑩𐑯𐑳𐑞𐑼 𐑐𐑹𐑑, 𐑦𐑯𐑕𐑑𐑧𐑛 𐑝 𐑞 𐑛𐑦𐑓𐑷𐑤𐑑 (5900). 𐑞 𐑐𐑹𐑑 𐑥𐑳𐑕𐑑 𐑚𐑰 " +"𐑕𐑐𐑧𐑕𐑦𐑓𐑲𐑛 𐑦𐑯 𐑞 'alternative_port' 𐑒𐑰." + +#, fuzzy +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑢𐑰 𐑢𐑦𐑤 𐑯𐑪𐑑 𐑿𐑟 𐑞 XDamage 𐑩𐑒𐑕𐑑𐑧𐑯𐑖𐑩𐑯 𐑝 𐑧𐑒𐑕.𐑹𐑜. 𐑞𐑦𐑕 𐑩𐑒𐑕𐑑𐑧𐑯𐑖𐑩𐑯 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑢𐑻𐑒 " +"𐑐𐑮𐑪𐑐𐑼𐑤𐑦 𐑪𐑯 𐑕𐑳𐑥 𐑝𐑦𐑛𐑦𐑴 𐑛𐑮𐑲𐑝𐑻𐑟 𐑢𐑧𐑯 𐑿𐑟𐑦𐑙 3D 𐑦𐑓𐑧𐑒𐑑𐑕. 𐑛𐑦𐑕𐑱𐑚𐑤𐑦𐑙 𐑦𐑑 𐑢𐑦𐑤 𐑥𐑱𐑒 vino 𐑢𐑻𐑒 " +"𐑪𐑯 𐑞𐑰𐑟 𐑦𐑯𐑝𐑲𐑮𐑩𐑯𐑥𐑩𐑯𐑑𐑕 𐑢𐑦𐑞 𐑩 𐑕𐑤𐑴𐑼 𐑮𐑧𐑯𐑛𐑻𐑦𐑙 𐑨𐑟 𐑕𐑲𐑛 𐑦𐑓𐑧𐑒𐑑." + +#, fuzzy +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" +"𐑦𐑓 𐑑𐑮𐑵, 𐑢𐑰 𐑢𐑦𐑤 𐑿𐑕 UPNP 𐑐𐑮𐑴𐑑𐑩𐑒𐑪𐑤 𐑑 𐑷𐑑𐑩𐑥𐑨𐑑𐑦𐑒𐑤𐑦 𐑓𐑹𐑢𐑼𐑛 𐑞 𐑐𐑹𐑑 𐑿𐑕𐑑 𐑚𐑲 vino 𐑦𐑯 𐑞 " +"𐑮𐑵𐑑𐑼." + +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "𐑤𐑦𐑕𐑩𐑯 𐑩𐑯 𐑷𐑤𐑑𐑻𐑯𐑩𐑑𐑦𐑝 𐑐𐑹𐑑" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:15 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote user " +"to connect." +msgstr "" +"𐑤𐑦𐑕𐑑𐑕 𐑞 𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯 𐑥𐑧𐑔𐑩𐑛𐑟 𐑢𐑦𐑞 𐑢𐑦𐑗 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑥𐑱 𐑨𐑒𐑕𐑧𐑕 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐. 𐑞𐑺 𐑸 𐑑𐑵 " +"𐑐𐑪𐑕𐑩𐑚𐑩𐑤 𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯 𐑥𐑧𐑔𐑩𐑛𐑟; \"vnc\" 𐑒𐑷𐑟𐑩𐑟 𐑞 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼 𐑑 𐑚𐑰 𐑐𐑮𐑪𐑥𐑐𐑑𐑩𐑛 𐑓𐑹 𐑩 " +"𐑐𐑭𐑕𐑢𐑼𐑛 (𐑞 𐑐𐑭𐑕𐑢𐑼𐑛 𐑦𐑟 𐑕𐑐𐑧𐑕𐑦𐑓𐑲𐑛 𐑚𐑲 𐑞 _vncpassword 𐑒𐑰) 𐑚𐑦𐑓𐑹 𐑒𐑩𐑯𐑧𐑒𐑑𐑦𐑙 𐑯 \"𐑯𐑳𐑯\" " +"𐑢𐑦𐑗 𐑩𐑤𐑬𐑟 𐑧𐑯𐑦 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼 𐑑 𐑒𐑩𐑯𐑧𐑒𐑑." + +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "𐑤𐑪𐑒 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑢𐑧𐑯 𐑤𐑭𐑕𐑑 𐑿𐑟𐑼 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "𐑯𐑧𐑑𐑢𐑻𐑒 𐑦𐑯𐑑𐑼𐑓𐑱𐑕 𐑓𐑹 𐑤𐑦𐑕𐑩𐑯𐑦𐑙" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "𐑴𐑯𐑤𐑦 𐑩𐑤𐑬 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑑 𐑝𐑿 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "𐑐𐑭𐑕𐑢𐑼𐑛 𐑮𐑦𐑒𐑢𐑲𐑼𐑛 𐑓𐑹 \"vnc\" 𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "𐑐𐑮𐑪𐑥𐑐𐑑 𐑞 𐑿𐑟𐑼 𐑚𐑦𐑓𐑹 𐑒𐑩𐑥𐑐𐑤𐑰𐑑𐑦𐑙 𐑩 𐑒𐑩𐑯𐑧𐑒𐑖𐑩𐑯" + +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "𐑮𐑦𐑒𐑢𐑲𐑼 𐑦𐑯𐑒𐑮𐑦𐑐𐑖𐑩𐑯" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"𐑞 𐑐𐑭𐑕𐑢𐑼𐑛 𐑢𐑦𐑗 𐑞 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼 𐑢𐑦𐑤 𐑚𐑰 𐑐𐑮𐑪𐑥𐑐𐑑𐑩𐑛 𐑓𐑹 𐑦𐑓 𐑞 \"vnc\" 𐑷𐑔𐑧𐑯𐑑𐑦𐑒𐑱𐑖𐑩𐑯 𐑥𐑧𐑔𐑩𐑛 𐑦𐑟 " +"𐑿𐑟𐑛. 𐑞 𐑐𐑭𐑕𐑢𐑼𐑛 𐑕𐑐𐑧𐑕𐑦𐑓𐑲𐑛 𐑚𐑲 𐑞 𐑒𐑰 𐑦𐑟 base64 𐑧𐑯𐑒𐑴𐑛𐑩𐑛." + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key is " +"set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"𐑞 𐑐𐑹𐑑 𐑢𐑦𐑗 𐑞 𐑕𐑻𐑝𐑼 𐑢𐑦𐑤 𐑤𐑦𐑕𐑩𐑯 𐑑 𐑦𐑓 𐑞 'use_alternative_port' 𐑒𐑰 𐑦𐑟 𐑕𐑧𐑑 𐑑 𐑑𐑮𐑵. " +"𐑝𐑨𐑤𐑦𐑛 𐑝𐑨𐑤𐑿𐑟 𐑸 𐑦𐑯 𐑞 𐑮𐑱𐑯𐑡 𐑓𐑮𐑪𐑥 5000 𐑑 50000." + +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"𐑞𐑦𐑕 𐑒𐑰 𐑒𐑩𐑯𐑑𐑮𐑴𐑤𐑟 𐑞 𐑚𐑦𐑣𐑱𐑝𐑘𐑼 𐑝 𐑞 𐑕𐑑𐑱𐑑𐑫𐑕 𐑲𐑒𐑪𐑯. 𐑞𐑺 𐑸 𐑔𐑮𐑰 𐑪𐑐𐑖𐑩𐑯𐑟: \"always\" - 𐑞 " +"𐑲𐑒𐑪𐑯 𐑢𐑦𐑤 𐑚𐑰 𐑷𐑤𐑢𐑱𐑟 𐑞𐑺; \"client\" - 𐑿 𐑢𐑦𐑤 𐑕𐑰 𐑞 𐑲𐑒𐑪𐑯 𐑴𐑯𐑤𐑦 𐑢𐑧𐑯 𐑞𐑺 𐑦𐑟 𐑕𐑳𐑥𐑢𐑳𐑯 " +"𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛, 𐑞𐑦𐑕 𐑦𐑟 𐑞 𐑛𐑦𐑓𐑷𐑤𐑑 𐑚𐑦𐑣𐑱𐑝𐑘𐑼; \"never\" - 𐑯𐑧𐑝𐑼 𐑖𐑴𐑟 𐑞 𐑲𐑒𐑪𐑯." + +#: ../server/vino-server.schemas.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"𐑞𐑦𐑕 𐑒𐑰 𐑕𐑐𐑧𐑕𐑦𐑓𐑲𐑟 𐑞 𐑧-𐑥𐑱𐑤 𐑩𐑛𐑮𐑧𐑕 𐑑 𐑢𐑦𐑗 𐑞 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 URL 𐑖𐑫𐑛 𐑚𐑰 𐑕𐑧𐑯𐑑 𐑦𐑓 𐑞 𐑿𐑟𐑼 " +"𐑒𐑤𐑦𐑒𐑕 𐑪𐑯 𐑞 URL 𐑦𐑯 𐑞 𐑮𐑦𐑥𐑴𐑑 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟 𐑛𐑲𐑩𐑤𐑪𐑜." + +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "𐑢𐑧𐑯 𐑞 𐑕𐑑𐑱𐑑𐑫𐑕 𐑲𐑒𐑪𐑯 𐑖𐑫𐑛 𐑚𐑰 𐑖𐑴𐑯" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "𐑢𐑧𐑯 𐑑𐑮𐑵, 𐑛𐑦𐑕𐑱𐑚𐑩𐑤 𐑞 𐑚𐑨𐑒𐑜𐑮𐑬𐑯𐑛 𐑪𐑯 𐑮𐑦𐑕𐑰𐑝 𐑝𐑨𐑤𐑦𐑛 𐑕𐑧𐑖𐑩𐑯" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "𐑢𐑧𐑞𐑼 𐑢𐑰 𐑖𐑫𐑛 𐑛𐑦𐑕𐑱𐑚𐑩𐑤 𐑞 XDamage 𐑩𐑒𐑕𐑑𐑧𐑯𐑖𐑩𐑯 𐑝 𐑧𐑒𐑕.𐑹𐑜" + +#, fuzzy +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "𐑢𐑧𐑞𐑼 𐑢𐑰 𐑖𐑫𐑛 𐑿𐑕 UPNP 𐑑 𐑓𐑹𐑢𐑼𐑛 𐑞 𐑐𐑹𐑑 𐑦𐑯 𐑮𐑵𐑑𐑼𐑟" + +#: ../server/vino-status-icon.c:102 ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑖𐑺𐑦𐑙 𐑦𐑟 𐑦𐑯𐑱𐑚𐑩𐑤𐑛" + +#, c-format +#: ../server/vino-status-icon.c:110 +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "𐑢𐑳𐑯 𐑐𐑻𐑕𐑩𐑯 𐑦𐑟 𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛" +msgstr[1] "%d 𐑐𐑰𐑐𐑩𐑤 𐑦𐑟 𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-tube-icon.c:175 +msgid "Error displaying preferences" +msgstr "𐑻𐑼 𐑛𐑦𐑕𐑐𐑤𐑱𐑦𐑙 𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟" + +#: ../server/vino-status-icon.c:226 ../server/vino-status-tube-icon.c:191 +msgid "Error displaying help" +msgstr "𐑻𐑼 𐑛𐑦𐑕𐑐𐑤𐑱𐑦𐑙 𐑣𐑧𐑤𐑐" + +#, fuzzy +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n\nVino is free " +"software; you can redistribute it and/or\nmodify it under the terms of the " +"GNU General Public License\nas published by the Free Software Foundation; " +"either version 2\nof the License, or (at your option) any later " +"version.\n\nVino is distributed in the hope that it will be useful,\nbut " +"WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY " +"or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for " +"more details.\n\nYou should have received a copy of the GNU General Public " +"License\nalong with this program; if not, write to the Free " +"Software\nFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " +"MA\n02110-1301, USA.\n" +msgstr "" +"𐑤𐑲𐑕𐑩𐑯𐑕𐑑 𐑳𐑯𐑛𐑼 𐑞 ·𐑜𐑯𐑿 𐑡𐑧𐑯𐑼𐑩𐑤 𐑐𐑳𐑚𐑤𐑦𐑒 𐑤𐑲𐑕𐑩𐑯𐑕 𐑝𐑻𐑠𐑩𐑯 2\n\nVino 𐑦𐑟 𐑓𐑮𐑰 𐑕𐑪𐑓𐑑𐑢𐑺; 𐑿 𐑒𐑨𐑯 " +"𐑮𐑰𐑛𐑦𐑕𐑑𐑮𐑦𐑚𐑿𐑑 𐑦𐑑 𐑯/𐑹\n𐑥𐑪𐑛𐑦𐑓𐑲 𐑦𐑑 𐑳𐑯𐑛𐑼 𐑞 𐑑𐑻𐑥𐑟 𐑝 𐑞 ·𐑜𐑯𐑿 𐑡𐑧𐑯𐑼𐑩𐑤 𐑐𐑳𐑚𐑤𐑦𐑒 𐑤𐑲𐑕𐑩𐑯𐑕\n𐑨𐑟 " +"𐑐𐑳𐑚𐑤𐑦𐑖𐑑 𐑚𐑲 𐑞 𐑓𐑮𐑰 𐑕𐑪𐑓𐑑𐑢𐑺 𐑓𐑬𐑯𐑛𐑱𐑖𐑩𐑯; 𐑲𐑞𐑼 𐑝𐑻𐑠𐑩𐑯 2\n𐑝 𐑞 𐑤𐑲𐑕𐑩𐑯𐑕, 𐑹 (𐑨𐑑 𐑿𐑼 𐑪𐑐𐑖𐑩𐑯) " +"𐑧𐑯𐑦 𐑤𐑱𐑑𐑼 𐑝𐑻𐑠𐑩𐑯.\n\nVino 𐑦𐑟 𐑛𐑦𐑕𐑑𐑮𐑦𐑚𐑿𐑑𐑩𐑛 𐑦𐑯 𐑞 𐑣𐑴𐑐 𐑞𐑨𐑑 𐑦𐑑 𐑢𐑦𐑤 𐑚𐑰 𐑿𐑕𐑓𐑩𐑤,\n𐑚𐑳𐑑 " +"𐑢𐑦𐑞𐑬𐑑 𐑧𐑯𐑦 𐑢𐑪𐑮𐑩𐑯𐑑𐑰; 𐑢𐑦𐑞𐑬𐑑 𐑰𐑝𐑩𐑯 𐑞 𐑦𐑥𐑐𐑤𐑲𐑛 𐑢𐑪𐑮𐑩𐑯𐑑𐑰 𐑝\nMERCHANTABILITY 𐑹 𐑓𐑦𐑑𐑯𐑩𐑕 𐑓𐑹 " +"𐑩 𐑐𐑼𐑑𐑦𐑒𐑿𐑤𐑼 𐑐𐑻𐑐𐑩𐑕. 𐑕𐑰 𐑞\n·𐑜𐑯𐑿 𐑡𐑧𐑯𐑼𐑩𐑤 𐑐𐑳𐑚𐑤𐑦𐑒 𐑤𐑲𐑕𐑩𐑯𐑕 𐑓𐑹 𐑥𐑹 𐑛𐑰𐑑𐑱𐑤𐑟.\n\n𐑿 𐑖𐑫𐑛 𐑣𐑨𐑝 " +"𐑮𐑦𐑕𐑰𐑝𐑛 𐑩 𐑒𐑪𐑐𐑦 𐑝 𐑞 ·𐑜𐑯𐑿 𐑡𐑧𐑯𐑼𐑩𐑤 𐑐𐑳𐑚𐑤𐑦𐑒 𐑤𐑲𐑕𐑩𐑯𐑕\n𐑩𐑤𐑪𐑙 𐑢𐑦𐑞 𐑞𐑦𐑕 𐑐𐑮𐑴𐑜𐑮𐑨𐑥; 𐑦𐑓 𐑯𐑪𐑑, " +"𐑮𐑲𐑑 𐑑 𐑞 𐑓𐑮𐑰 𐑕𐑪𐑓𐑑𐑢𐑺\n𐑓𐑬𐑯𐑛𐑱𐑖𐑩𐑯, 𐑦𐑙𐑒., 51 𐑓𐑮𐑨𐑙𐑒𐑤𐑦𐑯 𐑕𐑑𐑮𐑰𐑑, 𐑓𐑦𐑓𐑔 𐑓𐑤𐑹, ·𐑚𐑪𐑕𐑑𐑩𐑯, " +"𐑥𐑶\n02110-1301, 𐑘𐑵𐑧𐑕𐑱.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "·𐑑𐑪𐑥𐑩𐑕 ·𐑔𐑻𐑥𐑩𐑯" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "𐑖𐑺 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑢𐑦𐑞 𐑳𐑞𐑼 𐑿𐑟𐑼𐑟" + +#, c-format +#: ../server/vino-status-icon.c:339 ../server/vino-status-tube-icon.c:223 +msgid "Are you sure you want to disconnect '%s'?" +msgstr "𐑸 𐑿 𐑖𐑫𐑼 𐑿 𐑢𐑪𐑯𐑑 𐑑 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑 '%s'?" + +#, c-format +#: ../server/vino-status-icon.c:342 +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "𐑞 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼 𐑓𐑮𐑪𐑥 '%s' 𐑢𐑦𐑤 𐑚𐑰 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛. 𐑸 𐑿 𐑖𐑫𐑼?" + +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "𐑸 𐑿 𐑖𐑫𐑼 𐑿 𐑢𐑪𐑯𐑑 𐑑 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑 𐑷𐑤 𐑒𐑤𐑲𐑩𐑯𐑑𐑕?" + +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "𐑷𐑤 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼𐑟 𐑢𐑦𐑤 𐑚𐑰 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛. 𐑸 𐑿 𐑖𐑫𐑼?" + +#: ../server/vino-status-icon.c:362 ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑" + +#: ../server/vino-status-icon.c:388 ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "_𐑐𐑮𐑧𐑓𐑼𐑩𐑯𐑕𐑩𐑟" + +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑 𐑷𐑤" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#, c-format +#: ../server/vino-status-icon.c:427 ../server/vino-status-tube-icon.c:275 +msgid "Disconnect %s" +msgstr "𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑 %s" + +#: ../server/vino-status-icon.c:448 ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "_𐑣𐑧𐑤𐑐" + +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "_𐑩𐑚𐑬𐑑" + +#, c-format +#, fuzzy +#: ../server/vino-status-icon.c:589 ../server/vino-status-tube-icon.c:391 +msgid "Error initializing libnotify\n" +msgstr "𐑻𐑼 initializing libnotify\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "𐑩𐑯𐑳𐑞𐑼 𐑿𐑟𐑼 𐑦𐑟 𐑝𐑿𐑦𐑙 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#, c-format +#: ../server/vino-status-icon.c:612 +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "𐑩 𐑿𐑟𐑼 𐑪𐑯 𐑞 𐑒𐑩𐑥𐑐𐑿𐑑𐑼 '%s' 𐑦𐑟 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑝𐑿𐑦𐑙 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "𐑩𐑯𐑳𐑞𐑼 𐑿𐑟𐑼 𐑦𐑟 𐑒𐑩𐑯𐑑𐑮𐑴𐑤𐑦𐑙 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#, c-format +#: ../server/vino-status-icon.c:620 +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "𐑩 𐑿𐑟𐑼 𐑪𐑯 𐑞 𐑒𐑩𐑥𐑐𐑿𐑑𐑼 '%s' 𐑦𐑟 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑒𐑩𐑯𐑑𐑮𐑴𐑤𐑦𐑙 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#, c-format +#: ../server/vino-status-icon.c:642 ../server/vino-status-tube-icon.c:422 +msgid "Error while displaying notification bubble: %s\n" +msgstr "𐑻𐑼 𐑢𐑲𐑤 𐑛𐑦𐑕𐑐𐑤𐑱𐑦𐑙 𐑯𐑴𐑑𐑦𐑓𐑦𐑒𐑱𐑖𐑩𐑯 𐑚𐑳𐑚𐑩𐑤: %s\n" + +#, c-format +#: ../server/vino-status-tube-icon.c:226 +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "𐑞 𐑮𐑦𐑥𐑴𐑑 𐑿𐑟𐑼 '%s' 𐑢𐑦𐑤 𐑚𐑰 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛. 𐑸 𐑿 𐑖𐑫𐑼?" + +#: ../server/vino-tube-server.c:311 ../server/vino-tube-server.c:340 +msgid "Share my desktop information" +msgstr "𐑖𐑺 𐑥𐑲 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑦𐑯𐑓𐑼𐑥𐑱𐑖𐑩𐑯" + +#, c-format +#: ../server/vino-tube-server.c:315 +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' 𐑮𐑦𐑡𐑧𐑒𐑑𐑧𐑛 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐 𐑖𐑺𐑦𐑙 𐑦𐑯𐑝𐑦𐑑𐑱𐑖𐑩𐑯." + +#, c-format +#: ../server/vino-tube-server.c:319 +msgid "'%s' disconnected" +msgstr "'%s' 𐑛𐑦𐑕𐑒𐑩𐑯𐑧𐑒𐑑𐑩𐑛" + +#, c-format +#: ../server/vino-tube-server.c:346 +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' 𐑦𐑟 𐑮𐑦𐑥𐑴𐑑𐑤𐑦 𐑒𐑩𐑯𐑑𐑮𐑴𐑤𐑦𐑙 𐑿𐑼 𐑛𐑧𐑕𐑒𐑑𐑪𐑐." + +#, c-format +#: ../server/vino-tube-server.c:355 +msgid "Waiting for '%s' to connect to the screen." +msgstr "𐑢𐑱𐑑𐑦𐑙 𐑓𐑹 '%s' 𐑑 𐑒𐑩𐑯𐑧𐑒𐑑 𐑑 𐑞 𐑕𐑒𐑮𐑰𐑯." + +#: ../server/vino-util.c:116 +msgid "An error has occurred:" +msgstr "𐑩𐑯 𐑻𐑼 𐑣𐑨𐑟 𐑪𐑒𐑻𐑛:" + +#, c-format +#: ../tools/vino-passwd.c:115 +msgid "Cancelled" +msgstr "𐑒𐑨𐑯𐑕𐑩𐑤𐑛" + +#, c-format +#: ../tools/vino-passwd.c:122 +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "𐑻𐑼: 𐑥𐑨𐑒𐑕𐑦𐑥𐑩𐑥 𐑤𐑧𐑙𐑔 𐑝 𐑐𐑭𐑕𐑢𐑼𐑛 𐑦𐑟 %d 𐑒𐑸𐑩𐑒𐑑𐑼. 𐑐𐑤𐑰𐑟, 𐑮𐑰-𐑧𐑯𐑑𐑼 𐑞 𐑐𐑭𐑕𐑢𐑼𐑛." +msgstr[1] "𐑻𐑼: 𐑥𐑨𐑒𐑕𐑦𐑥𐑩𐑥 𐑤𐑧𐑙𐑔 𐑝 𐑐𐑭𐑕𐑢𐑼𐑛 𐑦𐑟 %d 𐑒𐑸𐑩𐑒𐑑𐑼𐑟. 𐑐𐑤𐑰𐑟, 𐑮𐑰-𐑧𐑯𐑑𐑼 𐑞 𐑐𐑭𐑕𐑢𐑼𐑛." + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:156 +msgid "Changing Vino password.\n" +msgstr "𐑗𐑱𐑯𐑡𐑦𐑙 Vino 𐑐𐑭𐑕𐑢𐑼𐑛.\n" + +#, fuzzy +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "𐑧𐑯𐑑𐑼 𐑯𐑿 Vino 𐑐𐑭𐑕𐑢𐑼𐑛: " + +#, fuzzy +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Retype 𐑯𐑿 Vino 𐑐𐑭𐑕𐑢𐑼𐑛: " + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:167 +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: 𐑐𐑭𐑕𐑢𐑼𐑛 𐑳𐑐𐑛𐑱𐑑𐑩𐑛 𐑕𐑩𐑒𐑕𐑧𐑕𐑓𐑩𐑤𐑦.\n" + +#, c-format +#: ../tools/vino-passwd.c:172 +msgid "Sorry, passwords do not match.\n" +msgstr "𐑕𐑪𐑮𐑦, 𐑐𐑭𐑕𐑢𐑼𐑛𐑟 𐑛𐑵 𐑯𐑪𐑑 𐑥𐑨𐑗.\n" + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:173 +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: 𐑐𐑭𐑕𐑢𐑼𐑛 𐑩𐑯𐑗𐑱𐑯𐑡𐑛.\n" + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:181 +msgid "" +"Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "𐑻𐑼 𐑢𐑲𐑤 𐑒𐑩𐑥𐑿𐑯𐑦𐑒𐑱𐑑𐑦𐑙 𐑢𐑦𐑞 GConf. 𐑸 𐑿 𐑤𐑪𐑜𐑛 𐑦𐑯𐑑𐑫 𐑩 ·𐑜𐑯𐑴𐑥 𐑕𐑧𐑖𐑩𐑯?" + +#, c-format +#: ../tools/vino-passwd.c:183 +msgid "Error message:" +msgstr "𐑻𐑼 𐑥𐑧𐑕𐑦𐑡:" + +#, fuzzy +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "𐑖𐑴 Vino 𐑝𐑻𐑠𐑩𐑯" + +#, fuzzy +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "- 𐑳𐑐𐑛𐑱𐑑𐑕 Vino 𐑐𐑭𐑕𐑢𐑼𐑛" + +#, fuzzy +#: ../tools/vino-passwd.c:219 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "𐑮𐑳𐑯 'vino-passwd --𐑣𐑧𐑤𐑐' 𐑑 𐑕𐑰 𐑩 𐑓𐑫𐑤 𐑤𐑦𐑕𐑑 𐑝 𐑩𐑝𐑱𐑤𐑩𐑚𐑩𐑤 𐑒𐑩𐑥𐑭𐑯𐑛 𐑤𐑲𐑯 𐑪𐑐𐑖𐑩𐑯𐑟" + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:226 +msgid "VINO Version %s\n" +msgstr "VINO 𐑝𐑻𐑠𐑩𐑯 %s\n" + +#, c-format +#, fuzzy +#: ../tools/vino-passwd.c:238 +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "𐑻𐑼: 𐑿 𐑛𐑵 𐑯𐑪𐑑 𐑣𐑨𐑝 𐑦𐑯𐑳𐑓 𐑐𐑻𐑥𐑦𐑖𐑪𐑯𐑟 𐑑 𐑗𐑱𐑯𐑡 Vino 𐑐𐑭𐑕𐑢𐑼𐑛.\n" + diff --git a/po/en_CA.po b/po/en_CA.po new file mode 100644 index 0000000..43e49aa --- /dev/null +++ b/po/en_CA.po @@ -0,0 +1,387 @@ +# English/Canada translation of vino. +# Copyright (C) 2004-2006 Adam Weinberger and the GNOME Foundation +# This file is distributed under the same licence as the vino package. +# Adam Weinberger <adamw@gnome.org>, 2004, 2005, 2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-01-15 23:35-0500\n" +"PO-Revision-Date: 2004-05-23 14:24-0400\n" +"Last-Translator: Adam Weinberger <adamw@gnome.org>\n" +"Language-Team: Canadian English <adamw@gnome.org>\n" +"Language: en_CA\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Send this command by email" + +#: ../capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"There was an error displaying help:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Remote Desktop" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Set your remote desktop access preferences" + +#: ../capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Security</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Sharing</b>" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "A_sk you for confirmation" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Allow other users to _view your desktop" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Remote Desktop Preferences" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Some of these preferences are locked down" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "Users can view your desktop using this command:" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "When a user tries to view or control your desktop:" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Allow other users to control your desktop" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "_Password:" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "_Require the user to enter this password:" + +#: ../capplet/vino-url.c:158 +msgid "Address" +msgstr "Address" + +#: ../capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "The address pointed to by the widget" + +#: ../capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Tooltip" + +#: ../capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "A tooltip for this URL" + +#: ../capplet/vino-url.c:173 +msgid "URL color" +msgstr "URL colour" + +#: ../capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "The colour of the URL's label" + +#: ../server/vino-fb.c:954 ../server/vino-prompt.c:144 +#: ../server/vino-server.c:853 +msgid "Screen" +msgstr "Screen" + +#: ../server/vino-fb.c:955 +msgid "The screen to be monitored" +msgstr "The screen to be monitored" + +#: ../server/vino-main.c:80 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to "1" +#. +#: ../server/vino-mdns.c:70 +#, c-format +msgid "%s's remote desktop" +msgstr "%s's remote desktop" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "The screen on which to display the prompt" + +#: ../server/vino-prompt.c:390 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Another user is trying to view your desktop.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"A user on another computer is trying to remotely view or control your " +"desktop." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Do you want to allow them to do so?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Question" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "_Allow" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "_Refuse" + +#: ../server/vino-server.c:854 +msgid "The screen for which to create a VNC server" +msgstr "The screen for which to create a VNC server" + +#: ../server/vino-server.c:861 +msgid "On Hold" +msgstr "On Hold" + +#: ../server/vino-server.c:862 +msgid "Place all clients on hold" +msgstr "Place all clients on hold" + +#: ../server/vino-server.c:869 +msgid "Prompt enabled" +msgstr "Prompt enabled" + +#: ../server/vino-server.c:870 +msgid "Prompt the user about connection attempts" +msgstr "Prompt the user about connection attempts" + +#: ../server/vino-server.c:877 +msgid "View Only" +msgstr "View Only" + +#: ../server/vino-server.c:878 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Disallow keyboard/pointer input from clients" + +#: ../server/vino-server.c:885 +msgid "Require Encryption" +msgstr "Require Encryption" + +#: ../server/vino-server.c:886 +msgid "Require clients to use encryption" +msgstr "Require clients to use encryption" + +#: ../server/vino-server.c:893 +msgid "Authentication methods" +msgstr "Authentication methods" + +#: ../server/vino-server.c:894 +msgid "The authentication methods this server should allow" +msgstr "The authentication methods this server should allow" + +#: ../server/vino-server.c:902 +msgid "VNC Password" +msgstr "VNC Password" + +#: ../server/vino-server.c:903 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Allowed authentication methods" + +#: ../server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail address to which the remote desktop URL should be sent" + +#: ../server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Enable remote desktop access" + +#: ../server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." + +#: ../server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Only allow remote users to view the desktop" + +#: ../server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "Password required for \"vnc\" authentication" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Prompt the user before completing a connection" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Require encryption" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." + +#: ../server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialogue." + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Remote Desktop server already running; exiting ...\n" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Remote desktop server died, restarting\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Activation of %s failed: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "Activation of %s failed: Unknown Error\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "Failed to activate remote desktop server: tried too many times\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Starting remote desktop server" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Not starting remote desktop server" diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..cfa9035 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,1011 @@ +# English (British) translation. +# Copyright (C) 2004 vino's COPYRIGHT HOLDER +# This file is distributed under the same licence as the vino package. +# Gareth Owen <gowen72@yahoo.com>, 2004. +# Bruce Cowan <bruce@bcowan.me.uk>, 2009, 2011, 2012. +# Chris Leonard <cjl@laptop.org>, 2012. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2016-08-19 16:23+0000\n" +"PO-Revision-Date: 2016-09-04 15:18+0200\n" +"Last-Translator: David King <amigadave@amigadave.com>\n" +"Language-Team: British English <en@li.org>\n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Prompt the user before completing a connection" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Only allow remote users to view the desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Network interface for listening" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. e.g.: eth0, wifi0, lo and so on" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Listen on an alternative port" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternative port number" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Require encryption" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Allowed authentication methods" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Password required for \"vnc\" authentication" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail address to which the remote desktop URL should be sent" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialogue." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Lock the screen when last user disconnect" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"If true, the screen will be locked after the last remote client disconnects." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "When the status icon should be shown" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"This key controls the behaviour of the status icon. There are three options: " +"\"always\" — The icon will always be present; \"client\" — the icon will " +"only be present when someone is connected (this is the default behaviour); " +"\"never\" — the icon will not be present." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Whether to disable the desktop background when a user is connected" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"When true, disable the desktop background and replace it with a single block " +"of colour when a user successfully connects." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Whether a UPnP router should be used to forward and open ports" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Whether we should disable the XDamage extension of X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Notify on connect" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "If true, show a notification when a user connects to the system." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "File is not a valid .desktop file" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Unrecognised desktop file Version '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Starting %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Application does not accept documents on command line" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Unrecognised launch option: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Can't pass document URIs to a 'Type=Link' desktop entry" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Not a launchable item" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Disable connection to session manager" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specify file containing saved configuration" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specify session management ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Session management options:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Show session management options" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Your XServer does not support the XTest extension — remote desktop access " +"will be view-only\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Start in tube mode, for the ‘Share my Desktop’ feature" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- VNC Server for GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Run 'vino-server --help' to see a full list of available command line options" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "GNOME Desktop Sharing" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s's remote desktop on %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Received signal %d, exiting." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Screen" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "The screen on which to display the prompt" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:604 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Error initialising libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Another user is trying to view your desktop." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Refuse" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Accept" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Failed to open connection to bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Desktop Sharing" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME Desktop Sharing Server" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;" + +#: ../server/vino-status-icon.c:103 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "One person is viewing your desktop" +msgstr[1] "%d people are viewing your desktop" + +#: ../server/vino-status-icon.c:112 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Desktop sharing is enabled" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-icon.c:214 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Error displaying preferences" + +#: ../server/vino-status-icon.c:236 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Error displaying help" + +#: ../server/vino-status-icon.c:269 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public Licence Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public Licence\n" +"as published by the Free Software Foundation; either version 2\n" +"of the Licence, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public Licence for more details.\n" +"\n" +"You should have received a copy of the GNU General Public Licence\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:284 +msgid "translator-credits" +msgstr "" +"Gareth Owen <gowen72@yahoo.com>\n" +"David Lodge <dave@cirt.net>\n" +"Philip Withnall <philip@tecnocode.co.uk>\n" +"Bruce Cowan <bruce@bcowan.me.uk>\n" +"Chris Leonard <cjl@laptop.org>\n" +"David King <amigadave@amigadave.com>" + +#: ../server/vino-status-icon.c:290 +msgid "Share your desktop with other users" +msgstr "Share your desktop with other users" + +#: ../server/vino-status-icon.c:357 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Are you sure you want to disconnect '%s'?" + +#: ../server/vino-status-icon.c:360 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "The remote user from '%s' will be disconnected. Are you sure?" + +#: ../server/vino-status-icon.c:366 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Are you sure you want to disconnect all clients?" + +#: ../server/vino-status-icon.c:368 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "All remote users will be disconnected. Are you sure?" + +#: ../server/vino-status-icon.c:380 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Disconnect" + +#: ../server/vino-status-icon.c:406 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferences" + +#: ../server/vino-status-icon.c:421 +msgid "Disconnect all" +msgstr "Disconnect all" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:445 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Disconnect %s" + +#: ../server/vino-status-icon.c:466 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "_Help" + +#: ../server/vino-status-icon.c:474 +msgid "_About" +msgstr "_About" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:625 +msgid "Another user is viewing your desktop" +msgstr "Another user is viewing your desktop" + +#: ../server/vino-status-icon.c:627 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "A user on the computer '%s' is remotely viewing your desktop." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:633 +msgid "Another user is controlling your desktop" +msgstr "Another user is controlling your desktop" + +#: ../server/vino-status-icon.c:635 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "A user on the computer '%s' is remotely controlling your desktop." + +#: ../server/vino-status-icon.c:657 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Error while displaying notification bubble: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "The remote user '%s' will be disconnected. Are you sure?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Share my desktop information" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' rejected the desktop sharing invitation." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' disconnected" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' is remotely controlling your desktop." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Waiting for '%s' to connect to the screen." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Allow" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Refuse" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "An error has occurred:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "There was an error showing the URL \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "There was an error displaying help:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Checking the connectivity of this machine…" + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Your desktop is only reachable over the local network." + +#~ msgid " or " +#~ msgstr " or " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Others can access your computer using the address %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Nobody can access your desktop." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "Choose how other users can remotely view your desktop" + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Remote desktop sharing password" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Enable remote access to the desktop" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "If true, we will use the UPnP protocol to automatically forward the port " +#~ "used by Vino in the router." + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Desktop Sharing Preferences" + +#~ msgid "Sharing" +#~ msgstr "Sharing" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Some of these preferences are locked down" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Allow other users to _view your desktop" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Your desktop will be shared" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Allow other users to control your desktop" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Remote users are able to control your mouse and keyboard" + +#~ msgid "Security" +#~ msgstr "Security" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_You must confirm each access to this machine" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Require the user to enter this password:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "Automatically _configure UPnP router to open and forward ports" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "The router must have the UPnP feature enabled" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Show Notification Area Icon" + +#~ msgid "Al_ways" +#~ msgstr "Al_ways" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Only when someone is connected" + +#~ msgid "_Never" +#~ msgstr "_Never" + +#~ msgid "Question" +#~ msgstr "Question" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Do you want to allow them to do so?" + +#~ msgid "Cancelled" +#~ msgstr "Cancelled" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "Error: Maximum length of password is %d character. Please re-enter the " +#~ "password." +#~ msgstr[1] "" +#~ "Error: Maximum length of password is %d characters. Please re-enter the " +#~ "password." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Changing Vino password.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Enter new Vino password: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Retype new Vino password: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: password updated successfully.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Sorry, passwords do not match.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: password unchanged.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Show Vino version" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Updates Vino password" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" + +#~ msgid "VINO Version %s\n" +#~ msgstr "Vino Version %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "" +#~ "Error: You do not have enough permissions to change the Vino password.\n" + +#~ msgid "Remote Desktop" +#~ msgstr "Remote Desktop" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Enable remote desktop access" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Al_ways display an icon" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configure network automatically to accept connections" + +#~ msgid "_Never display an icon" +#~ msgstr "_Never display an icon" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Only display an icon when there is someone connected" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME Remote Desktop" + +#~ msgid "_Send address by email" +#~ msgstr "_Send address by e-mail" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copy address to clipboard" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Maximum size: 8 characters" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "You will be queried to allow or to refuse every incoming connection" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Remote Desktop server already running; exiting…\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" + +#~ msgid "Error message:" +#~ msgstr "Error message:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Out of memory handling '%s' message" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Out of memory registering object path '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Failed to acquire D-Bus name '%s'\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Set your remote desktop access preferences" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Network</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "A_sk you for confirmation" + +#~ msgid "Advanced" +#~ msgstr "Advanced" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Disable the _wallpaper when connected" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Disable the wallpaper when successfully connected" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "Screen will be locked after the last remote client disconnects" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "The server will only accept connections from localhost" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "The server will use another port, instead of the default (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Users can view your desktop using this command:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "When a user tries to view or control your desktop:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Lock screen on disconnect" + +#~ msgid "_Only allow local connections" +#~ msgstr "_Only allow local connections" + +#~ msgid "_Password:" +#~ msgstr "_Password:" + +#~ msgid "_Require encryption" +#~ msgstr "_Require encryption" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Use an alternative port:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Only allow local connections" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "If checked, screen will be locked after the last remote client disconnect" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting…\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Remote desktop server died, restarting\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Activation of %s failed: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Activation of %s failed: Unknown Error\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "Failed to activate remote desktop server: tried too many times\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Starting remote desktop server" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Not starting remote desktop server" + +#~ msgid "failed to register with the message bus" +#~ msgstr "failed to register with the message bus" + +#~ msgid "not connected to the message bus" +#~ msgstr "not connected to the message bus" + +#~ msgid "Error in dbus" +#~ msgstr "Error in dbus" + +#~ msgid "The screen to be monitored" +#~ msgstr "The screen to be monitored" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "The screen for which to create a VNC server" + +#~ msgid "On Hold" +#~ msgstr "On Hold" + +#~ msgid "Place all clients on hold" +#~ msgstr "Place all clients on hold" + +#~ msgid "Prompt enabled" +#~ msgstr "Prompt enabled" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Prompt the user about connection attempts" + +#~ msgid "View Only" +#~ msgstr "View Only" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Disallow keyboard/pointer input from clients" + +#~ msgid "Local Only" +#~ msgstr "Local Only" + +#~ msgid "Require Encryption" +#~ msgstr "Require Encryption" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Require clients to use encryption" + +#~ msgid "Authentication methods" +#~ msgstr "Authentication methods" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "The authentication methods this server should allow" + +#~ msgid "VNC Password" +#~ msgstr "VNC Password" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" + +#~ msgid "Listen on the port specified by the 'alternative-port' property" +#~ msgstr "Listen on the port specified by the 'alternative-port' property" + +#~ msgid "" +#~ "Listen on the specified port number if the 'use-alternative-port' " +#~ "property is TRUE" +#~ msgstr "" +#~ "Listen on the specified port number if the 'use-alternative-port' " +#~ "property is TRUE" + +#~ msgid "Port server number" +#~ msgstr "Port server number" + +#~ msgid "The port used by this server" +#~ msgstr "The port used by this server" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Address" +#~ msgstr "Address" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "The address pointed to by the widget" + +#~ msgid "Tooltip" +#~ msgstr "Tooltip" + +#~ msgid "A tooltip for this URL" +#~ msgstr "A tooltip for this URL" + +#~ msgid "URL color" +#~ msgstr "URL colour" + +#~ msgid "The color of the URL's label" +#~ msgstr "The colour of the URL's label" + +#~ msgid "_Ensure the user is using encryption" +#~ msgstr "_Ensure the user is using encryption" diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..5ffbab2 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,720 @@ +# Esperanto translation for vino. +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010. +# This file is distributed under the same license as the vino package. +# Aisano <>, 2010. +# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2010, 2011, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2011-11-22 16:48+0000\n" +"PO-Revision-Date: 2012-02-19 17:34+0100\n" +"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" +"Language-Team: Esperanto <gnome-l10n-eo@lists.launchpad.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Launchpad-Export-Date: 2011-05-27 15:52+0000\n" +"X-Generator: Launchpad (build 13117)\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Okazis eraro dum montrado de URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Eraro okazis montrante helpon:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Kontrolado de la konektiteco de tiu ĉi maŝino…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Via labortablo estas nur lok-rete atingebla." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " aŭ " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Aliaj povas atingi vian komputilon per la adreso %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Neniu povas atingi vian labortablon." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "Elektu, kielmaniere aliaj uzantoj povas de fore vidi vian labortablon" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Labortablo-komunigo" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:1 +msgid "Allowed authentication methods" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:2 +msgid "Alternative port number" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:4 +msgid "Enable remote access to the desktop" +msgstr "Enŝalti foran aliron al la labortablo" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:13 +msgid "If true, we will notify, when the user connects to the system." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:14 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:15 +msgid "Listen on an alternative port" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc-password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:17 +msgid "Lock the screen when last user disconnect" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:18 +msgid "Network interface for listening" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:19 +msgid "Notify on connect" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:20 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:22 +msgid "Prompt the user before completing a connection" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:23 +msgid "Require encryption" +msgstr "Bezonas ĉifradon" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:24 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded. The special value of 'keyring' (which is not valid base64) means " +"that the password is stored in the GNOME keyring." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:25 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:26 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:27 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:28 +msgid "When the status icon should be shown" +msgstr "Kiam montri la statopiktogramon" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:29 +msgid "When true, disable the background on receive valid session" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:30 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:31 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways" +msgstr "Ĉ_iam" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "Permesi al aliaj uzantoj _vidi vian labortablon" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Desktop Sharing Preferences" +msgstr "Agordoj de la labortablo-komunigo" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Foraj uzantoj povas regi viajn muson kaj klavaron." + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Security" +msgstr "Sekureco" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Sharing" +msgstr "Kunhavigo" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Show Notification Area Icon" +msgstr "Montri piktogramon de la atentigoareo" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "Kelkaj de tiuj agordoj estas finŝlositaj" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Your desktop will be shared" +msgstr "Via labortablo estos komunigata" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Permesi al aliaj uzantoj regi vian labortablon" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Never" +msgstr "_Neniam" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Only when someone is connected" +msgstr "_Nur se iu estas konektate" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Require the user to enter this password:" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_You must confirm each access to this machine" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "La dosiero ne estas valida .desktop-dosiero" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nerekonata versio '%s' de labortabla dosiero" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Lanĉante %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikaĵo ne akceptas dokumentojn per komandlinio" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nerekonata lanĉparametro: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ne eblas transdoni dokument-URIojn al labortabla elemento 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nelanĉebla elemento" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Elŝalti la konekton al la seancoadministrilo" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specifi dosieron kiu enhavas konservitan agordon" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DOSIERO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specifi identigilon de la seancoadministrilo" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Agordoj de la seancoadministrilo:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Montri la agordojn de la seancoadministrilo" + +#: ../server/vino-main.c:108 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" + +#: ../server/vino-main.c:200 +msgid "- VNC Server for GNOME" +msgstr "- VNC-servilo por GNOME" + +#: ../server/vino-main.c:206 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" + +#: ../server/vino-main.c:226 +msgid "GNOME Desktop Sharing" +msgstr "GNOMEa Labortablo-komunigo" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "Ekrano" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "Demando" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permesi" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "" + +#: ../server/vino-server.c:158 ../server/vino-server.c:181 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Fiaskis malfermi konekton al buso: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "" + +#: ../server/vino-status-icon.c:103 ../server/vino-status-tube-icon.c:96 +msgid "Desktop sharing is enabled" +msgstr "" + +#: ../server/vino-status-icon.c:111 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Alia uzanto rigardas vian labortablon" +msgstr[1] "%d uzantoj rigardas vian labortablon" + +#: ../server/vino-status-icon.c:212 ../server/vino-status-tube-icon.c:180 +msgid "Error displaying preferences" +msgstr "Eraro montrante agordojn" + +#: ../server/vino-status-icon.c:234 ../server/vino-status-tube-icon.c:200 +msgid "Error displaying help" +msgstr "Eraro montrante helpdokumenton" + +#: ../server/vino-status-icon.c:267 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Permesite per la 2a Versio de la Ĝenerala Publika Permesilo de GNU.\n" +"\n" +"Vino estas libera programaro; vi povas distribui kaj/aŭ modifi ĝin sub la " +"kondiĉoj de la Ĝenerala Publika Permesilo de GNU eldonite de la 'Free " +"Software Foundation'; aŭ en la 2a versio de la permesilo aŭ (laŭ via volo) " +"en iu sekva versio.\n" +"\n" +"Vino estas distribuite kun la espero ke ĝi estos utila, sed SEN IA AJN " +"GARANTIO; eĉ sen la implica garantio de NEGOCEBLO aŭ ADAPTADO AL IU APARTA " +"CELO. Vidu la Ĝeneralan Publikan Permesilon de GNU por pli da detaloj.\n" +"\n" +"Vi devintus ricevi kopion de la Ĝenerala Publika Permesilo de GNU kune kun " +"Vino; se ne, skribu al Free Software Foundation, Inc., 51 Franklin Street, " +"Fifth Floor, Boston, MA 02110-1301 Usono.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:282 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Aisano https://launchpad.net/~info-ais-sanmarino\n" +" Kristjan SCHMIDT https://launchpad.net/~kristjan-eo" + +#: ../server/vino-status-icon.c:288 +msgid "Share your desktop with other users" +msgstr "Kunhavigi vian labortablon kun aliaj uzantoj" + +#: ../server/vino-status-icon.c:355 ../server/vino-status-tube-icon.c:232 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ĉu vi certe volas malkonektigi '%s'?" + +#: ../server/vino-status-icon.c:358 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:364 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ĉu vi certe volas malkonektigi ĉiujn klientojn?" + +#: ../server/vino-status-icon.c:366 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:378 ../server/vino-status-tube-icon.c:246 +msgid "Disconnect" +msgstr "Malkonekti" + +#: ../server/vino-status-icon.c:404 ../server/vino-status-tube-icon.c:271 +msgid "_Preferences" +msgstr "_Agordoj" + +#: ../server/vino-status-icon.c:419 +msgid "Disconnect all" +msgstr "Malkonekti ĉiujn" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:443 ../server/vino-status-tube-icon.c:284 +#, c-format +msgid "Disconnect %s" +msgstr "Malkonekti %s" + +#: ../server/vino-status-icon.c:464 ../server/vino-status-tube-icon.c:303 +msgid "_Help" +msgstr "_Helpo" + +#: ../server/vino-status-icon.c:472 +msgid "_About" +msgstr "_Pri" + +#: ../server/vino-status-icon.c:605 ../server/vino-status-tube-icon.c:400 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:626 +msgid "Another user is viewing your desktop" +msgstr "Alia uzanto rigardas vian labortablon" + +#: ../server/vino-status-icon.c:628 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Uzanto de la komputilo \"%s\" rigardas vian labortablon defore." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:634 +msgid "Another user is controlling your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:636 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-status-icon.c:664 ../server/vino-status-tube-icon.c:435 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" + +#: ../server/vino-status-tube-icon.c:235 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-tube-server.c:269 ../server/vino-tube-server.c:298 +msgid "Share my desktop information" +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:273 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:277 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' malkonektiĝis" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:304 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:313 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Eraro okazis:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Rezignis" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +msgstr[1] "" + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Ŝanĝi Vino-pasvorton.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Entajpi novan Vino-pasvorton: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Retajpu novan Vino-pasvorton: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: sukcese ĝisdatigis la pasvorton.\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Pardonu, la pasvortoj ne kongruas.\n" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: la pasvorto estas neŝanĝite.\n" + +#: ../tools/vino-passwd.c:189 +msgid "Show Vino version" +msgstr "Montri Vino-version" + +#: ../tools/vino-passwd.c:198 +msgid "- Updates Vino password" +msgstr "- Ĝisdatigas la pasvorton de Vino" + +#: ../tools/vino-passwd.c:208 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" + +#: ../tools/vino-passwd.c:215 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO-Versio %s\n" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"ERARO: Vi ne havas sufiĉe da permesoj por ŝanĝi la pasvorton de Vino.\n" + +#~ msgid "Remote Desktop" +#~ msgstr "Fora labortablo" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Ĉi_am montri piktogramon" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Maksimuma grando: 8 signoj" + +#~ msgid "_Never display an icon" +#~ msgstr "_Neniam montri piktogramon" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Eraro dum komunikado kun \"GConf\". Ĉu vi estas ensalutinte en GNOME-" +#~ "seanco?" + +#~ msgid "Error message:" +#~ msgstr "Erarmesaĝo:" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..d0bc3ae --- /dev/null +++ b/po/es.po @@ -0,0 +1,959 @@ +# translation of vino.HEAD.po to Español +# traducción de Vino al Español +# This file is distributed under the same license as the Vino package. +# Copyright (C) 2006 The Free Software Foundation. +# +# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2006. +# maria <maria.majadas@hispalinux.es>, 2007. +# Claudio Saavedra <csaavedra@alumnos.utalca.cl>, (QA) 2007. +# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009. +# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2016-07-25 21:27+0000\n" +"PO-Revision-Date: 2013-01-30 14:12+0100\n" +"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" +"Language-Team: Español <gnome-es-list@gnome.org>\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Preguntar al usuario antes de completar una conexión" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si es verdadero, los usuarios remotos que accedan al escritorio, no se les " +"concede el acceso hasta que el usuario en la máquina anfitriona aprueba la " +"conexión. Recomendado especialmente cuando el acceso no está protegido por " +"contraseña." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir sólo a los usuarios remotos ver el escritorio" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Si es verdadero, a los usuarios remotos que accedan al escritorio sólo se " +"les permite ver el escritorio. Los usuarios remotos no podrán usar el ratón " +"o el teclado." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Interfaz de red en la que escuchar" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Si no está establecida, el servidor escuchará en todas las interfaces de " +"red.\n" +"\n" +"Establezca esta opción si quiere aceptar conexiones sólo desde una interfaz " +"de red específica. Ej: eth0, wifi0, lo, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Escuchar en un puerto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Si es cierto, el servidor escuchará en otro puerto, en lugar de en el " +"predeterminado (5900). El puerto debe especificarse en «alternative_port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Número de puerto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"El puerto en el que el servidor escuchará si se activa " +"«use_alternative_port». Los valores válidos están en el rango de 5000 a " +"50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Requerir cifrado" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si es cierto, se requerirá que los usuarios remotos que accedan al " +"escritorio soporten cifrado. Se recomienda encarecidamente usar un cliente " +"que soporte cifrado a no ser que la red interviniente sea de confianza." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Métodos de autenticación permitidos" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista los métodos de autenticación con los que los usuarios remotos pueden " +"acceder al escritorio.\n" +"\n" +"Hay dos métodos de autenticación posibles: «vnc» hace que se le pregunte una " +"contraseña al usuario remoto (la contraseña se especifica en la clave " +"vnc_password-key) antes de conectarse y «none», que permite conectarse a " +"cualquier usuario remoto." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Se requiere una contraseña para la autenticación «vnc»" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"La contraseña por la que se le preguntará al usuario remoto si se usa el " +"método de autenticación «vnc».La contraseña especificada por la clave está " +"codificada en base64.\n" +"\n" +"El valor especial de «keyring» (que no es válido para base64) significa que " +"la contraseña se guarda en el depósito de claves de GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Dirección de correo-e a la cual debería enviarse el URL del escritorio remoto" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Esta clave especifica la dirección de correo-e a la cual se envía el URL del " +"escritorio remoto si el usuario pulsa en el URL en el diálogo de " +"preferencias de la Compartición de escritorio." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Bloquear la pantalla cuando se desconecte el último usuario" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Si es cierto, la pantalla se bloqueará después de que el último cliente se " +"desconecte." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Cuándo se debe mostrar el icono de estado" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Esta clave controla el comportamiento del icono de estado. Existen tres " +"opciones: «always» (siempre): el icono se mostrará siempre; " +"«client» (cliente): sólo se mostrará el icono cuando haya alguien conectado, " +"este es el comportamiento predeterminado; «never» (nunca): nunca se mostrará " +"el icono." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indica cuándo desactivar el fondo de pantalla cuando un usuario está " +"conectado" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Cuando sea cierto, desactivar el fondo de escritorio y sustituirlo con un " +"color cuando se conecte un usuario." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Indica si se debe usar UPNP para redireccionar el puerto." + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Si es cierto, solicitar que un enrutador con capacidad UPnP redireccione el " +"tráfico y abra el puerto que usa Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica si se debe desactivar la extensión XDamage de X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Si está activado, no se usará la extensión XDamage de X.org. Esta extensión " +"no funciona correctamente el algunos controladores de vídeo al usar efectos " +"3D. Desactivarla causará que Vino se ejecute con un renderizado lento en " +"esos entornos como efecto colateral." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Notificar al conectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Si está activado, se mostrará una notificación cuando un usuario se conecte " +"al sistema." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "El archivo no es un archivo .desktop válido" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "La versión «%s» del archivo desktop no se reconoce" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "La aplicación no acepta documentos en la línea de comandos" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opción de lanzamiento no reconocida: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"No se pueden pasar los URI de documentos a entradas de escritorio «Type=Link»" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "No es un elemento lanzable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desactivar la conexión al administrador de sesiones" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especificar el archivo que contiene la configuración guardada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ARCHIVO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especificar el ID se gestión de sesión" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Id" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opciones de gestión de la sesión:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostrar opciones de gestión de sesión" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Su servidor XServer no soporta la extensión XTest - el acceso al escritorio " +"remoto se realizará en modo sólo lectura\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Iniciar en modo tubo, para la característica «Compartir mi escritorio»" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr " - Cliente VNC para GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Ejecute «vino-server --help» para ver una lista completa de las opciones de " +"la línea de comandos disponibles" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Compartición de escritorio de GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Escritorio remoto de %s en %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Se recibió la señal %d, saliendo." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "La pantalla en la que se mostrará el indicador de órdenes" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Error al iniciar libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un usuario en el equipo «%s» está intentando ver o controlar remotamente su " +"escritorio." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Otro usuario está intentando ver su escritorio." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Rechazar" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Aceptar" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Falló al abrir conexión con bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartición del escritorio" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartición de escritorio de GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;compartir;remoto;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "La compartición del escritorio está activada" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Una persona está viendo su escritorio" +msgstr[1] "%d personas están viendo su escritorio" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Error al mostrar las preferencias" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Error al mostrar la ayuda" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Este programa es software libre; puede redistribuirlo y/o modificarlo \n" +"bajo los términos de la Licencia Pública General de GNU tal como \n" +"se publica por la Free Software Foundation; ya sea la versión 2 de la\n" +" Licencia, o (a su elección) cualquier versión posterior.\n" +"\n" +"Este programa se distribuye con la esperanza de que le sea útil, pero \n" +"SIN NINGUNA GARANTÍA; sin incluso la garantía implícita de MERCANTILIDAD \n" +"o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública General \n" +"GNU para más detalles.\n" +"\n" +"Debería haber recibido una copia de la Licencia Pública General de GNU \n" +"junto con este programa, si no es así, escriba a la Free Software \n" +"Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA \n" +"02110-1301 EE.UU.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "" +"Jorge González <jorgegonz@svn.gnome.org>, 2007-2009\n" +"Francisco Javier F. Serrador <serrador@openshine.com>, 2004-2006" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Comparta su escritorio con otros usuarios" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "¿Seguro que quiere desconectar a «%s»?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "El usuario remoto de «%s» será desconectado. ¿Está seguro?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "¿Seguro que quiere desconectar todos los clientes?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Todos los usuarios remotos serán desconectados. ¿Está seguro?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Desconectar" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferencias" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Desconectar todos" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Desconectar %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "Ay_uda" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "Acerca _de" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "Otro usuario está viendo su escritorio" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Un usuario en el equipo «%s» está viendo su escritorio remotamente." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "Otro usuario está controlando su escritorio" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un usuario en el equipo «%s» está controlando su escritorio remotamente." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Error al mostrar la burbuja de notificación: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Se desconectará al usuario remoto «%s». ¿Está seguro?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartir la información de mi escritorio" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» rechazó la invitación para compartir." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» desconectado" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» está controlando su escritorio remotamente." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Esperando a que «%s» se conecte a la pantalla." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Rechazar" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Ocurrió un error:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Hubo un error al mostrar el URL «%s»" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Hubo un error al mostrar la ayuda:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Comprobando la conectividad de este equipo…" + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Su escritorio sólo es accesible a través de la red local." + +#~ msgid " or " +#~ msgstr " o " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Otros podrán acceder a su equipo usando la dirección %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Nadie puede acceder a su escritorio." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "Elegir cómo otros usuarios ven remotamente mi escritorio" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Preferencias de compartición de escritorio" + +#~ msgid "Sharing" +#~ msgstr "Compartir" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Algunas de estas preferencias están bloqueadas" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Permitir a otros usuarios _ver mi escritorio" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Se compartirá su escritorio" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Permitir a otros usuarios controlar tu escritorio" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Los usuarios remotos pueden controlar el teclado y el ratón" + +#~ msgid "Security" +#~ msgstr "Seguridad" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_Debe confirmar cada acceso a este equipo" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Requerir que el usuario introduzca una contraseña:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "_Configurar router UPnP automáticamente para abrir y redirigir puertos" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "El router debe tener la característica UPnP activada" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Mostrar icono en el área de notificación" + +#~ msgid "Al_ways" +#~ msgstr "_Siempre" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Sólo cuando hay alguien conectado" + +#~ msgid "_Never" +#~ msgstr "_Nunca" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Activar acceso remoto al escritorio" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Si es verdadero, permite el acceso al escritorio por medio del protocolo " +#~ "RFB. Los usuarios en las máquinas remotas podrán entonces conectarse al " +#~ "escritorio usando un visor VNC." + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Contraseña compartida del escritorio remoto" + +#~ msgid "Cancelled" +#~ msgstr "Cancelado" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "ERROR: La longitud máxima de la contraseña es de %d carácter. Vuelva a " +#~ "introducir la contraseña." +#~ msgstr[1] "" +#~ "ERROR: La longitud máxima de la contraseña es de %d caracteres. Vuelva a " +#~ "introducir la contraseña." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Cambiando la contraseña de Vino.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Introduzca la nueva contraseña de Vino: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Reescriba la nueva contraseña de Vino: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: la contraseña se actualizó satisfactoriamente.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Las contraseñas no coinciden.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: no se cambió la contraseña.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Mostrar la versión de Vino" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Actualiza la contraseña de Vino" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Ejecute «vino-passwd --help» para ver una lista completa de las opciones " +#~ "de la línea de comandos disponibles" + +#~ msgid "VINO Version %s\n" +#~ msgstr "Versión %s de Vino\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "" +#~ "ERROR: No tiene suficientes permisos para cambiar la contraseña de Vino.\n" + +#~ msgid "Question" +#~ msgstr "Pregunta" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un usuario en otra computadora está intentando ver o controlar " +#~ "remotamente su escritorio." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "¿Quiere permitirle hacer eso?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Si está activado, se usará el protocolo UPNP para reenviar " +#~ "automáticamente el puerto usado por vino en el router." + +#~ msgid "Remote Desktop" +#~ msgstr "Escritorio remoto" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Activar acceso remoto al escritorio" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Escritorio remoto de GNOME" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Mostrar _siempre un icono" + +#~ msgid "_Never display an icon" +#~ msgstr "No mostrar un icono _nunca" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Mostrar s_olo un icono cuando hay alguien conectado" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configurar la red automáticamente para aceptar conexiones" + +#~ msgid "_Send address by email" +#~ msgstr "_Enviar dirección por correo-e" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copiar la dirección al portapapeles" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Tamaño máximo: 8 caracteres" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Se le preguntará para que permita o deniegue cualquier conexión entrante" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "El servidor de Escritorio Remoto ya está en ejecución; saliendo …\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Error durante la comunicación con GConf. ¿Ha iniciado una sesión en GNOME?" + +#~ msgid "Error message:" +#~ msgstr "Mensaje de error:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Se agotó la memoria manejando el mensaje «%s»" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Se agotó la memoria registrando la ruta al objeto «%s»" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Falló al adquirir el nombre D-Bus «%s»\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Establezca las preferencias de su escritorio remoto" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "gtk-close" +#~ msgstr "gtk-close" + +#~ msgid "gtk-help" +#~ msgstr "gtk-help" + +#~ msgid "_Talk to the router and try to open the doors there" +#~ msgstr "_Hablar con el router e intentar abrir las puertas allí" + +#~ msgid "All" +#~ msgstr "Todas" + +#~ msgid "The service is not running" +#~ msgstr "El servicio no se está ejecutando" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Red</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "_Pedir confirmación" + +#~ msgid "Advanced" +#~ msgstr "Avanzado" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Desactivar el _fondo de pantalla al conectarse" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Desactivar el fondo de pantalla en conexiones satisfactorias" + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Los clientes VNC de los usuarios accediendo al escritorio deberán " +#~ "soportar cifrado" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "La pantalla se bloqueará después de que el último cliente remoto se " +#~ "desconecte" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "El servidor usará otro puerto, en lugar del predeterminado (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Los usuarios pueden ver tu escritorio usando este comando:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "Cuando un usuario intenta ver o controlar tu escritorio:" + +#~ msgid "Which network interface we should listen to." +#~ msgstr "En qué interfaz de red se debe escuchar." + +#~ msgid "_Listen this interface:" +#~ msgstr "_Escuchar en esta interfaz:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "B_loquear la pantalla al desconectar" + +#~ msgid "_Password:" +#~ msgstr "_Contraseña:" + +#~ msgid "_Require encryption" +#~ msgstr "_Requerir cifrado" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Usar un puerto alternativo:" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "El servidor sólo aceptará conexiones desde el equipo local" + +#~ msgid "_Only allow local connections" +#~ msgstr "Permitir sólo conexiones _locales" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Si es «true» el servidor sólo aceptará conexiones desde localhost y las " +#~ "conexiones de red se rechazarán. Establezca esta opción a «true» si " +#~ "quiere usar exclusivamente un mecanismo de túnel para acceder al " +#~ "servidor, como ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Permitir sólo conexiones locales" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ " %s" +#~ msgstr "" +#~ "Ocurrió un error al mostrar la ayuda:\n" +#~ " %s" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problema registrando el servidor de escritorio remoto con bonobo-" +#~ "activation; saliendo ...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "El servidor de escritorio remoto ha muerto, reiniciando\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "La activación de %s falló: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "La activación de %s falló: Error desconocido\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Falló al activar el servidor de escritorio remoto: se intentó demasiadas " +#~ "veces\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Iniciando el servidor de escritorio remoto" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "No iniciando el servidor de escritorio remoto" diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..68f1fe3 --- /dev/null +++ b/po/et.po @@ -0,0 +1,661 @@ +# Vino eesti keele tõlge. +# Estonian translation of Vino. +# +# Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2007, 2008 The GNOME Project. +# This file is distributed under the same license as the Vino package. +# +# Priit Laes <plaes plaes org>, 2005-2006, 2010 +# Ain Vagula <avagula gmail com>, 2005. +# Ivar Smolin <okul linux ee>, 2006-2008. +# Mattias Põldaru <mahfiaz@gmail.com>, 2008, 2009, 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: Vino HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-10 22:52+0000\n" +"PO-Revision-Date: 2013-03-12 16:46+0300\n" +"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n" +"Language-Team: Estonian <gnome-et@linux.ee>\n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URLi \"%s\" kuvamisel esines viga" + +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Abiteabe kuvamisel tekkis viga:\n" +"%s" + +msgid "Checking the connectivity of this machine..." +msgstr "Selle masinaga ühendumise kontrollimine..." + +msgid "Your desktop is only reachable over the local network." +msgstr "Sinu töölauda on võimalik vaadata ainult kohtvõrgust." + +msgid " or " +msgstr " või " + +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Teised pääsevad Sinu arvutile ligi kasutades aadressi %s." + +msgid "Nobody can access your desktop." +msgstr "Keegi ei pääse su töölauale ligi." + +msgid "Desktop Sharing" +msgstr "Töölaua jagamine" + +msgid "Choose how other users can remotely view your desktop" +msgstr "Määrab kuidas teised kasutajad sinu töölauda vaadata tohivad" + +msgid "Desktop Sharing Preferences" +msgstr "Töölaua jagamise eelistused" + +msgid "Sharing" +msgstr "Ühiskasutus" + +msgid "Some of these preferences are locked down" +msgstr "Mõned nendest eelistustest on lukustatud" + +msgid "Allow other users to _view your desktop" +msgstr "Teistel kasutajatel on lubatud _vaadata Sinu töölauda" + +msgid "Your desktop will be shared" +msgstr "Sinu töölaud jagatakse ühiskasutuseks välja" + +msgid "_Allow other users to control your desktop" +msgstr "_Teistel kasutajatel lubatakse juhtida Sinu töölauda" + +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Kaugkasutajatel on lubatud sinu hiirt ja klaviatuuri juhtida" + +msgid "Security" +msgstr "Turvalisus" + +msgid "_You must confirm each access to this machine" +msgstr "_Iga pöördumist sellesse masinasse peab kasutaja kinnitama" + +msgid "_Require the user to enter this password:" +msgstr "Nõutakse kasutajalt pa_rooli sisestamist:" + +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "UPnP ruuteris portite automaatne avamine ja suunamine" + +msgid "The router must have the UPnP feature enabled" +msgstr "Ruuteris peab UPnP võimalus olema lubatud" + +msgid "Show Notification Area Icon" +msgstr "Teateala ikooni näitamine" + +msgid "Al_ways" +msgstr "_Alati" + +msgid "_Only when someone is connected" +msgstr "_Ainult, kui keegi on ühendatud" + +msgid "_Never" +msgstr "_Mitte kunagi" + +msgid "Enable remote access to the desktop" +msgstr "Kaugkasutajatel lubatakse töölauda ainult vaadata" + +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Kui märgitud, siis töölauale on lubatud väline juurdepääs RFB protokolli " +"abil. Eemalasuvate masinate kasutajad saavad seejärel töölauaga ühenduda VNC " +"vaaturi abil." + +msgid "Prompt the user before completing a connection" +msgstr "Kasutajalt kinnituse küsimine enne ühendamise lõpuleviimist" + +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Kui märgitud, siis peab peremeesmasina kasutaja andma loa enne enne kui " +"kaugjuurdepääsu kasutaja saab töölauda kasutada. See on soovitatav eelkõige " +"parooliga kaitsmata ligipääsu korral." + +msgid "Only allow remote users to view the desktop" +msgstr "Kaugkasutajatel lubatakse töölauda ainult vaadata" + +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Kui märgitud, siis kaugjuurdepääsu kasutajatel lubatakse töölauda ainult " +"vaadata, neil pole võimalik kasutada ei hiirt ega klaviatuuri." + +msgid "Network interface for listening" +msgstr "Võrguliides, mida kuulatakse" + +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Kui pole määratud, kuulab server kõiki võrguliideseid.\n" +"\n" +"Märgi see, et nõustuda ühendustega ainult määratud võrguliidestelt. Näiteks " +"eth0, wifi0, lo ja teised." + +msgid "Listen on an alternative port" +msgstr "Alternatiivse pordi kuulamine" + +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Kui märgitud, siis kuulab server vaikimisi pordi (5900) asemel võtmega " +"'alternative_port' määratud alternatiivset porti." + +msgid "Alternative port number" +msgstr "Alternatiivse pordi number" + +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Port, mida kuulatakse, kui võti \"use_alternative_port\" on märgitud. " +"Võimalikud väärtused on vahemikus 5000 kuni 50000." + +msgid "Require encryption" +msgstr "Krüptimise nõudmine" + +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Kui märgitud, siis kaugtöölaua kasutajatelt nõutakse krüptimise tuge. Kuni " +"kaugtöölauda ei kasutata usaldusväärses võrgus, on tungivalt soovitatav " +"pruukida krüptimise toega klienti." + +msgid "Allowed authentication methods" +msgstr "Lubatud autentimismeetodid" + +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Nimekiri autentimismeetoditest, mille abil kasutajad saavad töölauale " +"kaugligipääsu.\n" +"\n" +"On kaks võimalikku autentimismeetodit: \"vnc\" puhul küsitakse kasutajalt " +"enne ühenduse loomist parooli (saab määrata võtmega \"vnc_password\") ja " +"\"none\", mis lubab igaühel ühenduse luua." + +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" autentimiseks on vaja salasõna" + +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" autentimismeetodi korral kaugtöölaua kasutajailt küsitav salasõna. " +"Võtme poolt määratud salasõna on kodeeritud base64 algoritmiga.\n" +"\n" +"Eriväärtus 'keyring' (mis ei ole ka korrektne base64) tähendab, et parool on " +"salvestatud GNOME võtmerõngasse." + +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-posti aadress, millele võrgutöölaua URL tuleks saata" + +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"See võti määrab e-posti aadressi, millele kaugtöölaua juurdepääsuaadress " +"saadetakse, juhul kui kasutaja klõpsab töölaua jagamise eelistuste dialoogis " +"oleval URL-il." + +msgid "Lock the screen when last user disconnect" +msgstr "Ekraani lukustamine pärast viimase kasutaja lahtiühendamist" + +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Kui märgitud, siis pärast viimase kaugkliendi lahtiühendamist ekraan " +"lukustatakse." + +msgid "When the status icon should be shown" +msgstr "Kas olekuikooni tuleb näidata" + +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Selle võtmega juhitakse olekuikooni käitumist. Võimalikud on kolm väärtust: " +"\"always\" - ikooni kuvatakse alati; \"client\" - ikooni kuvatakse ainult " +"juhul, kui keegi on ühendatud, see on ka vaikimisi väärtus; \"never\" - " +"ikooni ei kuvata mitte kunagi." + +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Kui märgitud, keelatakse sissetuleva õige ühenduse korral taustapilt" + +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Kui märgitud, keelatakse kasutaja edukal ühendumisel töölaua taustapilt ja " +"asendatakse see ühtlase värviga." + +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "UPNP kasutamine ruuterist pordi edasisuunamiseks" + +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Kui märgitud, nõutakse, et UPnP võimekusega ruuter edastaks ja avaks Vino " +"kasutatava pordi." + +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Kas X.org'i XDamage laiendus on keelatud või mitte" + +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Kui märgitud, siis X.org'i XDamage laiendust ei kasutata. See laiendus ei " +"tööta mõnede videodraiveritega korrektselt, kui kasutatakse 3D efekte. " +"Laienduse keelamine lubab Vinol töötada, kuid renderdamine on mõnevõrra " +"aeglasem." + +msgid "Notify on connect" +msgstr "Teade ühendumisel" + +msgid "If true, show a notification when a user connects to the system." +msgstr "Kui märgitud, siis antakse teada kasutaja ühendumisest süsteemiga." + +msgid "Remote desktop sharing password" +msgstr "Töölaua jagamise parool" + +#, c-format +msgid "File is not a valid .desktop file" +msgstr "See pole korrektne .desktop fail" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Töölauafaili versioon '%s' on tundmatu" + +#, c-format +msgid "Starting %s" +msgstr "Käivitamine: %s" + +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Rakendus ei ava käsurealt dokumenti" + +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tundmatu käivitusvalik: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Dokumendi URI-sid pole võimalik 'Liik=Viit' tüüpi töölauakirjetele edastada" + +#, c-format +msgid "Not a launchable item" +msgstr "Element pole käivitatav" + +msgid "Disable connection to session manager" +msgstr "Ühenduse keelamine seansihalduriga" + +msgid "Specify file containing saved configuration" +msgstr "Määra salvestatud häälestust sisaldav fail" + +msgid "FILE" +msgstr "FAIL" + +msgid "Specify session management ID" +msgstr "Määra seansihalduse ID" + +msgid "ID" +msgstr "ID" + +msgid "Session management options:" +msgstr "Seansihalduse valikud:" + +msgid "Show session management options" +msgstr "Seansihalduse valikuid näidatakse" + +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Sinu XServer ei toeta XTest laiendust - võrgus asuv töölaud on ligipääsetav " +"ainult vaatamiseks\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "\"Minu töölaua jagamise\" võimaluse jaoks käivitumine toru-režiimis" + +msgid "- VNC Server for GNOME" +msgstr "- VNC server GNOME jaoks" + +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Käivita 'vino-server --help', et näha kogu nimekirja saadaolevatest käsurea " +"valikutest" + +msgid "GNOME Desktop Sharing" +msgstr "GNOME töölaua jagamine" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Kasutaja %s kaugtöölaud masinas %s" + +#, c-format +msgid "Received signal %d, exiting." +msgstr "Vastu võeti signaal %d, väljumine." + +msgid "Screen" +msgstr "Ekraan" + +msgid "The screen on which to display the prompt" +msgstr "Viiba kuvamiseks kasutatav ekraan" + +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Viga libnotify lähtestamisel\n" + +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Kasutaja arvutist '%s' proovib üle võrgu vaadata või kasutada Sinu töölauda." + +msgid "Another user is trying to view your desktop." +msgstr "Üks kasutaja proovib vaadata sinu töölauda." + +msgid "Refuse" +msgstr "Keeldu" + +msgid "Accept" +msgstr "Nõustu" + +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Tõrge siiniga ühendumisel: %s\n" + +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME töölaua jagamise server" + +msgid "vnc;share;remote;" +msgstr "vnc;jagamine;kaugtöölaud;" + +msgid "Desktop sharing is enabled" +msgstr "Töölaua jagamine on lubatud" + +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Üks kasutaja vaatab Sinu töölauda" +msgstr[1] "%d kasutajat vaatavad Sinu töölauda" + +msgid "Error displaying preferences" +msgstr "Viga eelistuste kuvamisel" + +msgid "Error displaying help" +msgstr "Viga abiteabe kuvamisel" + +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Litsentseeritud GNU Üldise Avaliku Litsentsi versiooni 2 all\n" +"Vino on vaba tarkvara. Te võite seda edasi levitada ja/või\n" +"muutavastavalt GNU Üldise Avaliku Litsentsi tingimustele,\n" +"nagu need on Vaba Tarkvara Fondi poolt avaldatud; kas Litsentsi\n" +"versioon number 2 või (vastavalt Teie valikule) ükskõik milline\n" +"hilisem versioon.\n" +"\n" +"Vino'd levitatakse lootuses, et see on kasulik, kuid ILMA\n" +"IGASUGUSE GARANTIITA; isegi KESKMISE/TAVALISE KVALITEEDI GARANTIITA\n" +"või SOBIVUSELE TEATUD KINDLAKS EESMÄRGIKS. Üksikasjade suhtes\n" +"vaata GNU Üldist Avalikku Litsentsi.\n" +"\n" +"Te peaks olema saanud GNU Üldise Avaliku Litsentsi koopia koos\n" +"Vino'ga; kui ei, siis võtke ühendust Free Software Foundation'iga,\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +msgid "translator-credits" +msgstr "" +"Ivar Smolin <okul@linux.ee>, 2006-2008.\n" +"Priit Laes <plaes@plaes.org>, 2005-2006, 2010\n" +"Ain Vagula <avagula@gmail.com>, 2005.\n" +"Mattias Põldaru <mahfiaz gmail.com>, 2008" + +msgid "Share your desktop with other users" +msgstr "Oma töölaua jagamine teistega" + +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Kas sa soovid '%s' ühenduse katkestada?" + +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"Masinast '%s' ühendatud kaugkasutajate ühendused katkestatakse. Oled sa " +"kindel? " + +msgid "Are you sure you want to disconnect all clients?" +msgstr "Kas soovid kõikide klientide ühenduse katkestada?" + +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Kõigi kaugkasutajate ühendused katkestatakse. Oled sa kindel?" + +msgid "Disconnect" +msgstr "Katkesta" + +msgid "_Preferences" +msgstr "_Eelistused" + +msgid "Disconnect all" +msgstr "Katkesta kõik" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#, c-format +msgid "Disconnect %s" +msgstr "Katkesta %s" + +msgid "_Help" +msgstr "A_bi" + +msgid "_About" +msgstr "_Programmist lähemalt" + +#. Translators: %s is a hostname +msgid "Another user is viewing your desktop" +msgstr "Teine kasutaja vaatab Sinu töölauda" + +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Kasutaja arvutist '%s' vaatab üle võrgu Sinu töölauda." + +#. Translators: %s is a hostname +msgid "Another user is controlling your desktop" +msgstr "Teine kasutaja juhib Sinu töölauda" + +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Kasutaja arvutist '%s' juhib üle võrgu Sinu töölauda." + +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Viga teavitusmulli kuvamisel: %s\n" + +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Kaugkasutaja '%s' ühendus katkestatakse. Oled sa kindel? " + +msgid "Share my desktop information" +msgstr "Oma töölaua andmete jagamine teistega" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' keeldus töölaua jagamise kutsest." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#, c-format +msgid "'%s' disconnected" +msgstr "Ühendus masinaga '%s' katkes" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' juhib üle võrgu Sinu töölauda." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Oodatakse masina '%s' järel, et see looks ühenduse ekraaniga." + +msgid "_Allow" +msgstr "_Luba" + +msgid "_Refuse" +msgstr "_Keela" + +msgid "An error has occurred:" +msgstr "Esines järgnev viga:" + +#, c-format +msgid "Cancelled" +msgstr "Tühistatud" + +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"VIGA: Parooli suurim lubatud pikkus on %d märk. Palun sisesta parool uuesti." +msgstr[1] "" +"VIGA: Parooli suurim lubatud pikkus on %d märki. Palun sisesta parool uuesti." + +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino parooli muutmine.\n" + +msgid "Enter new Vino password: " +msgstr "Sisesta uus Vino parool: " + +msgid "Retype new Vino password: " +msgstr "Sisesta uus Vino parool uuesti: " + +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: parool edukalt uuendatud.\n" + +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Kahjuks paroolid ei klapi.\n" + +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: parool muutmata.\n" + +msgid "Show Vino version" +msgstr "Näita Vino versiooni" + +msgid "- Updates Vino password" +msgstr "- Uuendab Vino parooli" + +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Käivita 'vino-passwd --help' et näha kogu nimekirja saadaval olevatest " +"käsurea valikutest" + +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO versioon %s\n" + +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "VIGA: Sul ei ole piisavalt õiguseid Vino parooli muutmiseks.\n" + +#~ msgid "Question" +#~ msgstr "Küsimus" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Kasutaja teisest arvutist proovib üle võrgu vaadata või kasutada Sinu " +#~ "töölauda." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Kas sa lubad tal seda teha?" diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..80fcede --- /dev/null +++ b/po/eu.po @@ -0,0 +1,831 @@ +# translation of eu.po to Basque +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2004, 2006, 2007, 2008, 2009, 2010, 2011. +# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-02 12:50+0100\n" +"PO-Revision-Date: 2013-02-02 12:52+0100\n" +"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n" +"Language-Team: Basque <itzulpena@euskalgnu.org>\n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Errorea gertatu da URL hau erakustean: \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Errorea gertatu da laguntza bistaratzean:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Ordenagailu honen konektibitatea egiaztatzea..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Zure mahaigaina sare lokaletik soilik atzi daiteke." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " edo " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Besteek %s helbidea erabiliz atzi dezakete zure ordenagailua." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Inork ezin du zure mahaigaina atzitu." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Mahaigaina partekatzea" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Aukeratu beste erabiltzaileek zure mahaigaina urrunetik nola ikusiko duten" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Mahaigaina partekatzeko hobespenak" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Partekatzea" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Hobespen hauetariko batzuk blokeatuta daude" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Baimendu beste erabiltzaileek zure mahaigaina _ikustea" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Zure mahaigaina partekatu egingo da" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Baimendu beste erabiltzaileek zure mahaigaina kontrolatzea" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Urruneko erabiltzaileek zure teklatua eta sagua kontrolatu dezakete" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Segurtasuna" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Ordenagailu honetarako sarbide bakoitza berretsi behar _duzu" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Behartu erabiltzaileak pasahitza sartzera:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Konfiguratu automatikoki UPnP bideratzaileko atakak ireki eta birbideratzeko" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Bideratzaileak UPnP eginbidea aktibatuta eduki behar du" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Erakutsi ikonoa jakinarazpen-arean" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Beti" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Soilik pertsona bat konektatu dagoenean" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Inoiz ere ez" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Gaitu urrunekoak mahaiganera sarbidetzea" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Egia bada, urrunekoei mahaigainera sarbidetzea baimentzen die RFB " +"protokoloaren bidez. Orduan, urruneko ordenagailuetako erabiltzaileek vnc-" +"ikustailearen bidez mahaigainera konektatu ahalko dute." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Galdetu erabiltzaileari konexio bat osatu aurretik" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Egia bada, mahaigainera sarbidetzen saiatzen diren urruneko erabiltzaileak " +"ezin izango dira konektatu ostalaria den ordenagailuko erabiltzaileak " +"konexioa baimendu bitartean. Sarbidea pasahitzik gabe babestua ez dagoen " +"kasuetan aholkatzen da bereziki." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Urruneko erabiltzaileak mahaigaina ikusteko bakarrik baimendu" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Egia bada, mahaigainera sarbidetzen diren urruneko erabiltzaileek ikusteko " +"baimena soilik edukiko dute. Urruneko erabiltzaileek ezin izango dute " +"teklatua edo sagurik erabili." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Sareko interfazea entzuteko" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ez bada ezartzen, zerbitzariak sareko interfaze guztietan entzuten arituko " +"da.\n" +"\n" +"Ezarri hau sareko interfaze zehatz batzuetatik soilik onartzeko konexioak. " +"Adib: eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Entzun bestelako ataka" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"TRUE (egia) bada, zerbitzariak beste ataka bat entzungo du, lehenetsiaren " +"(5900) ordez. Ataka 'alternative-port' gakoan zehaztu behar da." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Bestelako ataka-zenbakia" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Zerbitzariak entzungo duen ataka 'use_alternative_port' gakoa TRUE (egia) " +"gisa ezartzen bada. Balio erabilgarriak 5000 eta 50000 artekoak dira." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Behartu enkriptazioa" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Egia bada, mahaigainera sarbidetzen diren urruneko erabiltzaileek " +"enkriptazio euskarria eduki beharko dute. Oso gomendagarria da enkriptazio " +"euskarria duen bezeroa erabiltzea, sareko segurtasun maila konfiantzakoa " +"izandakoan ezik." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Onartutako autentifikazio-metodoak" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Autentifikazio-metodoen zerrenda, honekin urruneko erabiltzaileek " +"mahaigainera sarbidetzeko aukera izango dute.\n" +"\n" +"Bi autentifikazio-metodo daude: \"vnc\" bidez urruneko erabiltzaileari " +"pasahitza eskatzen zaio konektatu aurretik (pasahitza vnc-password gakoan " +"zehazten da); \"none\" (bat ere ez) ezarpenak urruneko edozein " +"erabiltzaileri konektatzea baimentzen dio." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Pasahitza behar da \"vnc\" autentifikaziorako" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Pasahitza, \"vnc\" autentifikazio-metodoa erabiltzen denean urruneko " +"erabiltzaileari galdetzeko. Giltzak zehaztutako pasahitza 64-oinarrian " +"kodetuta aurkitzen da.\n" +"\n" +"'keyring' gakoaren balio bereziak (baliozkoa ez den 64-oinarria) zera " +"adierazten du: pasahitza GNOMEren gako-sortan gordeko dela." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Helbide elektronikoa urruneko mahaigainaren URLa bidaltzeko" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Gako honek urruneko mahaigaineko URLa bidaliko den helbide elektronikoa " +"zehazten du, baldin eta erabiltzaileak \"Mahaigaina partekatzeko hobespenak" +"\" elkarrizketa-koadroan URL gainean klik egiten badu." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Blokeatu pantaila azken erabiltzailea deskonektatzean" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"true (egia) bada, pantaila blokeatu egingo da urruneko azken bezeroa " +"deskonektatzean." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Egoeraren ikonoa noiz erakutsi behar den" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Gako honek egoeraren ikonoaren portaera kontrolatzen du. Hiru aukera " +"erabilgarri daude: \"always\" (beti), ikonoa beti agertuko da; \"client" +"\" (bezeroa), norbait konektatzen denean soilik agertuko da ikonoa, eta " +"portaera lehenetsia da ; \"never\" (inoiz) ikonoa ez da inoiz erakusten." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Mahaigainaren atzeko planoa desgaitzen al den erabiltzaile bat konektatzean " +"edo ez adierazten du." + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"true (egia) bada, mahaigainaren atzeko planoa desgaitzen du, eta kolore " +"bateko bloke bakar batekin ordezten du erabiltzailea ongi konektatzean." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"UPnP erabiliko den ataka bideratzailetan birbideratzeko eta atakak " +"irekitzeko edo ez" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"true (egia) bada, UPnP onartzen duen bideratzaileari birbideratzeko eskaera " +"luzatuko dio, eta Vino-k darabilen ataka irekiko du." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org-en XDamage hedapena desgaitu behar den edo ez" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"TRUE (egia) bada, ez da X.org-ko XDamage hedapena erabiliko. Hedapen honek " +"ez du ongi funtzionatzen bideo kontrolatzaile batzuekin 3D efektuak " +"erabiltzean. Hau desgaitzean, Vino motelago errendatuko da ingurune horietan." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Jakinarazi konektatzean" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"TRUE (egia) bada, jakinarazi egingo da erabiltzailea sistemara konektatzean." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Urruneko mahaigaina partekatzeko pasahitza" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fitxategia ez da baliozko '.desktop' fitxategi bat" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Mahaigaineko (.desktop) fitxategiaren '%s' bertsioa ezezaguna" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s hasieratzen" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikazioak ez ditu dokumenturik onartzen komando-lerroan" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Abiarazteko aukera ezezaguna: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ezin zaio dokumentuaren URIrik eman mahaigaineko 'Type=Link' sarrerari" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Ez da elementu abiarazgarria" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desgaitu konexioa saio-kudeatzailearekin" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Zehaztu gordetako konfigurazioa duen fitxategia" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FITXATEGIA" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Zehaztu saio-kudeatzailearen IDa" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IDa" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Saio-kudeatzailearen aukerak:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Erakutsi saio-kudeatzailearen aukerak" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Zure XServer-ek ez du XTest hedapena onartzen - urruneko mahaigaineko " +"sarbidetza ikusteko soilik izango da\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Hasi tutu moduan, 'Partekatu nire mahaigaina' eginbidearentzako" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC zerbitzaria GNOMErako" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Exekutatu 'vino-server --help' komando-lerroko aukeren zerrenda osoa ikusteko" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOMEren mahaigaina partekatzea" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s(r)en urruneko mahaigaina %s(e)n" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d seinalea jaso da, irtetzen." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantaila" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Pantaila, gonbitea bistaratuko dena" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Errorea libnotify hasieratzean\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' ordenagailuko erabiltzaile bat zure mahaigaina urrunetik ikusten edo " +"kontrolatzen saiatzen ari da." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Beste erabiltzaile bat zure mahaigaina ikusten saiatzen ari da." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Ukatu" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Onartu" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Huts egin du bus-arekin konektatzean: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOMEren mahaigaina partekatzeko zerbitzaria" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;partekatu;urrunekoa;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Mahaigaina partekatzea gaituta dago" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Erabiltzaile bat zure mahaigaina ikusten ari da" +msgstr[1] "%d erabiltzaile zure mahaigaina ikusten ari dira" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Errorea gertatu da hobespenak bistaratzean" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Errorea gertatu da laguntza bistaratzean" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU Lizentzia Publiko Orokorraren 2. bertsioaren lizentzia pean kaleratua.\n" +"\n" +"Vino programa software librea da; birbanatu eta/edo aldaketak egin\n" +"ditzakezu bertan, Free Software Foundation-ek argitaratutako \n" +"GNU Lizentzia Publiko Orokorraren 2. bertsioan, edo \n" +"(nahiago baduzu) bertsio berriago batean jasotako \n" +"baldintzen pean.\n" +"\n" +"Programa hau erabilgarria izango delakoan banatzen da, baina, \n" +"INOLAKO BERMERIK GABE; era berean, ez da bermatzen beraren\n" +"EGOKITASUNA MERKATURATZEKO edo HELBURU PARTIKULARRETARAKO\n" +"ERABILTZEKO. Argibide gehiago nahi izanez gero, \n" +"ikus GNU Lizentzia Publiko Orokorra.\n" +"\n" +"Programa honekin batera GNU Lizentzia Publiko Orokorraren \n" +"kopia bat jasoko zenuen; hala ez bada, idatzi hona: \n" +"Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Partekatu zure mahaigaina beste erabiltzaileekin" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ziur zaude '%s' deskonektatzea nahi duzula?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s'(e)ko erabiltzailea deskonektatu egingo da. Ziur zaude?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ziur zaude bezero guztiak deskonektatzea nahi dituzula?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Urruneko bezero guztiak deskonektatu egingo dira. Ziur zaude?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Deskonektatu" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Hobespenak" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Deskonektatu denak" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Deskonektatu %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Laguntza" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "Honi _buruz" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Beste erabiltzaile bat zure mahaigaina ikusten ari da" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"'%s' ordenagailuko erabiltzaile bat zure mahaigaina urrunetik ikusten ari da." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Beste erabiltzaile batek zure mahaigaina kontrolatzen ari da" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' ordenagailuko erabiltzaile bat zure mahaigaina urrunetik kontrolatzen " +"ari da" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Errorea jakinarazpeneko burbuila bistaratzean: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Urruneko '%s'(e)ko erabiltzailea deskonektatu egingo da. Ziur zaude?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Partekatu nire mahaigaineko informazioa" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s'(e)k ukatu egin du mahaigaina partekatzeko gonbidapena." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' deskonektatuta" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' zure mahaigaina urrunetik kontrolatzen ari da." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s'(r)en zain pantailara konektatzeko." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Baimendu" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Debekatu" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Errore bat gertatu da:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Bertan behera utzita" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERROREA: pasahitzaren gehienezko luzera karaktere %d da. Idatzi pasahitza " +"berriro." +msgstr[1] "" +"ERROREA: pasahitzaren gehienezko luzera %d karaktere dira. Idatzi pasahitza " +"berriro." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino-ren pasahitza aldatzen.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Idatzi Vino-ren pasahitz berria: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Idatzi berriro Vino-ren pasahitz berria:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: pasahitza ongi eguneratua.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Pasahitzak ez datoz bat.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: pasahitza aldatu gabe.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Erakutsi Vino-ren bertsioa" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino-ren pasahitza eguneratzen du" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Exekutatu 'vino-passwd --help' aukeren zerrenda osoa ikusteko" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO %s bertsioa\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "Errorea: ez dituzu nahikoa baimen Vino-ren pasahitza aldatzeko.\n" + +#~ msgid "Question" +#~ msgstr "Galdera" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Beste ordenagailuko erabiltzaile bat zure mahaigaina ikusten edo " +#~ "kontrolatzen saiatzen ari da." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Baimentzea nahi duzu hori egiteko?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "TRUE (egia) bada, UPNP protokoloa erabiliko da vino-k bideratzailean " +#~ "darabilen ataka automatikoki birbideratzeko." + +#~ msgid "Remote Desktop" +#~ msgstr "Urruneko mahaigaina" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Gaitu urruneko mahaiganeko sarbidetza" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Beti erakutsi ikonoa" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Konfiguratu sarea automatikoki konexioak onartzeko" + +#~ msgid "_Never display an icon" +#~ msgstr "_Inoiz ez bistaratu ikonoa" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Bistaratu ikonoa norbait konektatzean _soilik" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOMEren urruneko mahaigaina" diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..f6b4211 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,956 @@ +# Persian translation of vino. +# Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org)translation team. +# Copyright (C) 2005 Sharif FarsiWeb, Inc. +# This file is distributed under the same license as the vino package. +# Elnaz Sarbar <elnaz@farsiweb.info>, 2005. +# Meelad Zakaria <meelad@farsiweb.info>, 2005. +# Arash Mousavi <mousavi.arash@gmail.com>, 2011, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-22 10:51+0330\n" +"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n" +"Language-Team: Persian\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "خطایی هنگام نمایش آدرس اینترنتی «%s» رخ داد" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"خطایی هنگام نمایش راهنما رخ داد\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "بررسی وضعیت اتصال این ماشین..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "میزکار شما تنها از طریق شبکه محلی قابل دسترسی است." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr "یا" + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "دیگران از طریق آدرس %s میتوانند به رایانه شما دسترسی داشته باشند." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "هیچکس نمیتواند به رایانه شما دسترسی داشته باشد." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "بهاشتراکگذاری رومیزی" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"انتخاب کنید که چگونه کاربران دیگر میتوانند از دوردست رومیزی شما را ببینند" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ترجیحات اشتراکگذاری رومیزی" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "اشتراکگذاری" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "بعضی از این ترجیحات قفل شدهاند" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "به کاربران دیگر اجازهی _نمایش رومیزی شما داده شود" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "رومیزی شما بهاشتراک گذاشته خواهد شد" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "به کاربران دیگر _اجازهی کنترل رومیزی شما داده شود" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "کاربران دوردست قابلیت کنترل موشی و صفحهکلید را دارند" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "امنیت" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_شما باید هر دسترسیای را به این ماشین تایید کنید" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_لازم باشد کاربر این گذرواژه را وارد کند:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"امکان UPnP مسیریاب را بطور خودکار جهت بازکردن و ارجاع درگاهها پیکربندی کن" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "مسیریاب باید از امکان UPnP پشتیبانی کند" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "نمایش شمایل در ناحیه اعلان" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_همیشه" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_تنها زمانی که یک نفر متصل است" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ه_رگز" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "فعال کردن دسترسی دوردست به رومیزی" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"اگر درست باشد، اجازهی دسترسی دوردست به رومیزی از طریق قرارداد RFB را میدهد. " +"آن وقت کاربران ماشینهای دوردست میتوانند با استفاده از نمایشگر VNC به رومیزی " +"متصل شوند." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "کسب تکلیف از کاربر قبل از تکمیل اتصال" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"اگر درست باشد، کاربران دوردست هنگام دسترسی به رومیزی، اجازهی دسترسی را " +"ندارند مگر این که کاربر ماشین میزبان اتصال را تأیید کند. برای مواقعی که " +"دسترسی با گذرواژه محافظت نشده است توصیه میشود." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "فقط کاربران دوردست مجاز با نمایش رومیزی باشند" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"اگر درست باشد، کاربران دوردست هنگام دسترسی به رومیزی تنها اجازهی دیدن رومیزی " +"را دارند. کاربران دوردست قادر به استفاده از موشی یا صفحهکلید را نخواهند داشت." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "واسط شبکه جهت گوش سپردن" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces. Set this if " +#| "you want that accept connections only from some specific network " +#| "interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"اگر تنظیم نشود، کارگزار به تمام واسطهای شبکه گوش میسپارد.\n" +"\n" +"چنانچه میخواهید تنها اتصالهای مشخصی از واسطهای شبکه را نظیر eth0، wifi0، lo " +"و... را بپذیرید، این کلید را تنظیم کنید." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "گوشسپردن به یک درگاه دیگر" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"اگر درست باشد، کارگزار به یک درگاه دیگر بجای پیشفرض (۵۹۰۰) گوش میسپارد. " +"درگاه باید در کلید «alternative-port» تعریف شده باشد." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "عدد درگاه دیگر" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"درگاهی که کارگزار به آن گوش خواهد سپرد چنانچه کلید «use-alternative-port» بر " +"روی درست تنظیم شده باشد. مقادیر معتبر در بازهی ۵۰۰۰ تا ۵۰۰۰۰ هستند." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "ملزم کردن رمزنگاری" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"اگر درست باشد، کاربران دوردست هنگام دسترسی به رومیزی ملزم به پشتیبانی " +"رمزنگاری هستند. به شدت توصیه میشود که شما از کارگیری که از رمزنگاری پشتیبانی " +"میکنند استفاده کنید مگر اینکه شبکهی متصل شونده مورد اعتماد باشد." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "روشهای تأیید هویت مجاز" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +#| msgid "" +#| "Lists the authentication methods with which remote users may access the " +#| "desktop. There are two possible authentication methods; \"vnc\" causes " +#| "the remote user to be prompted for a password (the password is specified " +#| "by the vnc-password key) before connecting and \"none\" which allows any " +#| "remote user to connect." +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"روشهای تأیید هویتی که کاربران دوردست میتوانند با آنها به رومیزی دسترسی داشته " +"باشند فهرست میکند.\n" +"\n" +"دو روش تأیید هویت وجود دارد: «vnc» که قبل از اتصال از کاربر دوردست تقاضای " +"گذرواژه میکند (گذرواژه با کلید vnc_password تعریف میشود) و «none» که به هر " +"کاربر دوردستی اجازهی اتصال میدهد." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "برای تأیید هویت «vcn» گذرواژه لازم است" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +#| msgid "" +#| "The password which the remote user will be prompted for if the \"vnc\" " +#| "authentication method is used. The password specified by the key is " +#| "base64 encoded. The special value of 'keyring' (which is not valid " +#| "base64) means that the password is stored in the GNOME keyring." +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"گذرواژهای که از کاربر دوردست تقاضا خواهد شد اگر از روش تأیید هویت «vnc» " +"استفاده شود. گذرواژه تعریف شده با کلید با base64 کدگذاری میشود.\n" +"\n" +"مقدار خاص «keyring» (که یک base64 معتبر نیست) به این معنیاست که گذرواژه در " +"جاکلیدی گنوم ذخیره شده است." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "آدرس پست الکترونیکیای که نشانی اینترنتی رومیزی باید به آن فرستاده شود" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"این کلید آدرس پست الکترونیکیای را تعریف میکند که در صورتی که کاربر روی نشانی " +"اینترنتی محاورهی ترجیحات رومیزی دوردست کلیک کند، نشانی اینترنتی رومیزی " +"دوردست به آن فرستاده میشود." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "قفل کردن صفحه زمانی که ارتباط آخرین کاربر قطع شد" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"اگر درست باشد، بعد از قطع ارتباط آخرین کارگیر دوردست، صفحه قفل خواهد شد." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "زمانی که شمایل وضعیت باید نشان داده شود" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"این کلید رفتار شمایل وضعیت را کنترل میکند. سه گزینه وجود دارد: «always» - " +"شمایل همواره همانجا خواهد بود؛ «client» - شما تنها زمانی شمایل را خواهید دید " +"که یک نفر متصل شده باشد، این گزینه پیشفرض میباشد؛ «never» - هیچوقت شمایل را " +"نشان نمیدهد." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "اینکه آیا هنگام اتصال یک کاربر پسزمینه رومیزی را غیرفعال کند یا خیر" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"اگر درست باشد، هنگامی که یک کاربر بهطور موفقیتآمیزی متصل شود، پسزمینه رومیزی " +"را غیرفعال و آن را باید یک بلوک رنگی جایگزین میکند." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"اینکه آیا باید از یک مسیریاب UPnP جهت ارجاع و بازکردن درگاهها استفاده کرد یا " +"خیر" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"اگر درست باشد، درخواست میکند تا یک روتر با قابلیت UPnP درگاه استفاده شده " +"توسط Vino را منتقل و باز کند." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "اینکه آیا باید افزونهی XDamage مربوط به X.org را غیرفعال کنیم یا خیر" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"اگر درست باشد، از افزونهی XDamage مربوط به X.org استفاده نمیشود. این افزونه " +"بر روی تعدادی از راهاندازهای ویدئویی هنگامی که از جلوههای سهبعدی استفاده " +"میکنند بدرستی کار نمیکند. غیرفعال کردن این گزینه باعث میشود تا وینو بتواند " +"در این محیطها با سرعت کمتری در رندر اجرا شود." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "اعلان هنگام اتصال" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"اگر درست باشد، در هنگام اتصال کاربر به سیستم، یک اعلان نمایش داده میشود." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +#| msgid "Retype new Vino password: " +msgid "Remote desktop sharing password" +msgstr "گذرواژهی اشتراکگذاری رومیزی دوردست" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "پرونده، یک پروندهی معتبر desktop. نمیباشد" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "پروندهی رومیزی ناشناس «%s»" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "درحال شروع %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "برنامه اسناد را از طریق خط فرمان نمیپذیرد" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "گزینه اجرا ناشناس: %Id" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ناتوان در ارجاع URIهای سند به یک ورودی رومیزی «Type=Link»" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "یک مورد قابل اجرا نیست" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "غیرفعال کردن امکان اتصال به مدیر نشست" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "پروندهی حاوی پیکربندی ذخیره شده را مشخص کنید" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "شناسه مدیریت نشست را مشخص کنید" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "گزینههای مدیریت نشست:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "نمایش گزینههای مدیریت نشست" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"کارگزار X شما از ضمیمهی XTest پشتیبانی نمیکند ـ دسترسی رومیزی دوردست فقط " +"نمایش خواهد بود\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "شروع در حالت تونلی، برای استفاده از امکان «اشتراکگذاری رومیزی من»" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- کارگذار VNC برای گنوم" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"جهت دیدن تمام گزینههای خط فرمان از «vino-mdns:showusername» را اجرا کنید" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "اشتراکگذاری رومیزی گنوم" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "رومیزی دوردست %s بر روی %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "سیگنال %Id دریافت شد، در حال خروج." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "صفحه" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "صفحهای که محاورهی کسب تکلیف در آن نمایش داده شود" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "خطا در هنگام مقدار دهی اولیه libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"کاربری از کامپیوتر «%s» تلاش میکند رومیزی شما را از دوردست نمایش دهد یا " +"کنترل کند." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "کاربر دیگری در حال تلاش برای دیدن رومیزی شما است." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "رد کردن" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "پذیرفتن" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "بازکردن اتصال به bus شکست خورد: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "کارگزار اشتراکگذاری رومیزی گنوم" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;اشتراکگذاری;دوردست;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "اشتراکگذاری رومیزی فعال است" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "یک نفر درحال دیدن رومیزی شماست" +msgstr[1] "%Id نفر درحال دیدن رومیزی شما هستند" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "خطا در هنگام نمایش ترجیحات" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "خطایی هنگام نمایش راهنما رخ داد" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"گواهیشده تحت نسخهی ۲ مجور عمومی گنو\n" +"وینو نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط اجازهنامهی\n" +"همگانی عمومی گنو که بنیاد نرمافزارهای آزاد منتشر کرده است، تغییر\n" +"دهید یا دوباره توزیع کنید. یا نسخهی 2 اجازهنامه یا (به اختیار خودتان)\n" +"هر نسخهی بالاتر دیگری.\n" +"وینو با این امید توزیع شده است که به درد بخور باشد، اما بدون هر گونه\n" +"ضمانتی؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای\n" +"یک هدف مشخص. برای جزئیات بیشتر به اجازهنامهی همگانی عمومی گنو را ببینید.\n" +"\n" +"شما باید نسخهای از اجازهنامهی همگانی عمومی گنو دریافت کرده باشد؛ اگر\n" +"این طور نیست برای شرکت بنیاد نرم افزارهای آزاد به آدرس زیر\n" +"بنویسید: Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "آرش موسوی <mousavi.arash@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "رومیزی خود را با کاربران دیگر بهاشتراک گذارید" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "آیا در خصوص قطع ارتباط «%s» مطمئن هستید؟" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "ارتباط با کاربر دوردست از «%s» قطع خواهد شد. آیا مطمئنید؟" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "آیا مطمئن هستید که میخواهید از تمام کارگیرها قطع ارتباط کنید؟" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "تمام کاربران دوردست قطع ارتباط خواهند شد. آیا مطمئنید؟" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "قطع ارتباط" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_ترجیحات" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "قطع ارتباط از همه" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "قطع ارتباط از %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_راهنما" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_درباره" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "کاربر دیگر درحال دیدن رومیزی شماست" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "کاربری از کامپیوتر «%s» درحال دیدن رومیزی شما از دوردست است." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "کاربر دیگری درحال کنترل سیستم شماست" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "کاربری از کامپیوتر «%s» درحال کنترل رومیزی شما از دوردست است." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "خطا در هنگام نمایش حباب اعلان: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "ارتباط کاربر دوردست «%s» قطع خواهد شد. آیا مطمئنید؟" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "اشتراک اطلاعات رومیزی من" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "کاربر «%s» دعوتنامه اشتراکگذاری میزکار را رد کرد." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» قطع شد" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "کاربر «%s» درحال کنترل رومیزی شما از دوردست است." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "در انتظار «%s» جهت اتصال به صفحه." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_اجازه دادن" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_رد کردن" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "یک خطا رُخ داد:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "لغو شد" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"خطا: حداکثر طول گذرواژه %Id نویسه است. لطفا گذرواژه را مجدد وارد کنید." +msgstr[1] "" +"خطا: حداکثر طول گذرواژه %Id نویسه است. لطفا گذرواژه را مجدد وارد کنید." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "درحال تغییر گذرواژه وینو.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "یک گذرواژه جدید برای وینو وارد کنید:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "گذرواژهی جدید وینو را دوباره تایپ کنید:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: گذرواژه به طور موفقیتآمیزی بروزرسانی شد.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "متاسفم، گذرواژهها مطابقت ندارند.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: گذرواژه تغییر نکرد.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "نمایش نسخهی وینو" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- بروزرسانی گذرواژه وینو" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"فرمان «vino-passwd --help» را اجرا کنید تا فهرست کامل گزینههای خط فرمان را " +"ببینید." + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "نسخه وینو %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "خطا: شما اجازه دسترسی لازم جهت تغییر گذرواژهی وینو را ندارید.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "اگر درست باشد، ما از پرتکل UPNP جهت ارجاع درگاه استفاده شده توسط وینو در " +#~ "مسیریاب بطور خودکار استفاده میکنیم." + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "کاربری از یک کامپیوتر دیگر تلاش میکند رومیزی شما را از دوردست نمایش دهد " +#~ "یا کنترل کند." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "آیا مایلید به آنها اجازهی این کار را دهید؟" + +#~ msgid "Question" +#~ msgstr "پرسش" + +#~ msgid "Send this command by email" +#~ msgstr "فرستادن این فرمان با پست الکترونیکی" + +#~ msgid "Remote Desktop" +#~ msgstr "رومیزی دوردست" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "ترجیحات دسترسی رومیزی دوردستتان را تنظیم کنید" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "برای تأیید از شما _سئوال شود" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "کاربران با استفاده از این فرمان میتوانند رومیزی شما را نمایش دهند:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "وقتی که یک کاربر تلاش میکند رومیزی شما را نمایش دهند یا کنترل کند:" + +#~ msgid "_Password:" +#~ msgstr "_گذرواژه:" + +#~ msgid "Address" +#~ msgstr "نشانی" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "نشانیای که ویجت به آن اشاره میکند" + +#~ msgid "Tooltip" +#~ msgstr "راهنمای آنی" + +#~ msgid "A tooltip for this URL" +#~ msgstr "راهنمای آنی برای این نشانی اینترنتی" + +#~ msgid "URL color" +#~ msgstr "رنگ نشانی اینترنتی" + +#~ msgid "The color of the URL's label" +#~ msgstr "رنگ برچسب نشانی اینترنتی" + +#~ msgid "The screen to be monitored" +#~ msgstr "صفحهای که پایش شود" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "صفحهای که کارگزار VNC روی آن ایجاد میشود" + +#~ msgid "On Hold" +#~ msgstr "پشت خط" + +#~ msgid "Place all clients on hold" +#~ msgstr "پشت خط نگه داشتن همهی کارگیران" + +#~ msgid "Prompt enabled" +#~ msgstr "کسب تکلیف به کار انداخته شد" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "کسب تکلیف از کاربر دربارهی تلاشهای اتصال" + +#~ msgid "View Only" +#~ msgstr "فقط نمایش" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "اجازهندادن به ورودیهای اشارهگر/صفحهکلید کارگیران" + +#~ msgid "Require Encryption" +#~ msgstr "الزامی کردن رمزنگاری" + +#~ msgid "Require clients to use encryption" +#~ msgstr "ملزم کردن کارگیران به استفاده از رمزنگاری" + +#~ msgid "Authentication methods" +#~ msgstr "روشهای تأیید هویت" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "روشهای تأیید هویت مجاز این کارگزار" + +#~ msgid "VNC Password" +#~ msgstr "گذرواژهی VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "گذرواژهی (کدگذاری شده با base64) استفاده شده برای انواعی از تأیید هویت که " +#~ "از روش VncAuth استفاده میکنند" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "کارگزار رومیزی دوردست از قبل در حال اجرا است؛ در حال خروج ...\n" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "اشکال هنگام ثبت کارگزار رومیزی دوردست با فعالسازی بونوبو؛ در حال " +#~ "خروج ...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "کارگزار رومیزی دوردست مرد، در حال راهاندازی مجدد\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "فعالسازی %s شکست خورد: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "فعالسازی %s شکست خورد: خطای نامعلوم\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "فعالسازی کارگزار رومیزی دوردست شکست خورد: دفعات بسیاری تلاش شد\n" + +#~ msgid "Svncviewertarting remote desktop server" +#~ msgstr "در حال آغاز کارگزار رومیزی دوردست" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "کارگزار رومیزی دوردست آغاز نمیشود" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..673174b --- /dev/null +++ b/po/fi.po @@ -0,0 +1,968 @@ +# Finnish translation of vino. +# Copyright (C) 2004-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# Sami Pesonen <sampeson@iki.fi>, 2004. +# Ilkka Tuohela <hile@iki.fi>, 2005-2009. +# Tommi Vainikainen <thv@iki.fi>, 2009-2011. +# Jiri Grönroos <jiri.gronroos@iki.fi>, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-05 21:05+0200\n" +"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n" +"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Virhe näytettäessä URL:ia ”%s”" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Ohjetta näytettäessä tapahtui virhe:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Tarkistetaan tietokoneen yhteys…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Työpöytääsi voi katsella vain lähiverkosta." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " tai " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Muut voivat katsella työpöytääsi osoitteessa ”%s”." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Kukaan ei voi katsella työpöytääsi etänä." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Työpöydän jako" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Valitse kuinka muut käyttäjät voivat katsella työpöytääsi" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Työpöydän jaon asetukset" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Jakaminen" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Osa näistä asetuksista on lukittu" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Salli muiden käyttäjien _katsella työpöytääsi" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Työpöytäsi jaetaan" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Salli toisten käyttäjien hallita työpöytääsi" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Etäkäyttäjät voivat ohjata hiirtä ja näppäimistöä" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Turvallisuus" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Hyväksy jokainen yhteys tietokoneeseen erikseen" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Vaadi käyttäjältä tämä salasana:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automaattisesti _ota käyttöön UPnP-reititin porttien avaamiseen ja " +"uudelleenohjaamiseen" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "UPnp-ominaisuuden täytyy olla päällä reitittimessä" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Näytä ilmoitusaluekuvake" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Aina" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Vain mikäli joku on yhteydessä" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Ei koskaan" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Salli työpöydän etäkäyttö" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Jos tosi, salli etäyhteys työpöydälle RFB-protokollaa käyttäen. Käyttäjät " +"etäkoneissa voivat sitten ottaa yhteyden VNC-katselinta käyttämällä." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Kysy käyttäjältä ennen kuin yhteys luodaan lopullisesti" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Jos tosi, työpöydälle etäyhteyttä haluavat käyttäjät eivät saa yhteyttä " +"ennenkuin työpöydän omistaja hyväksyy yhteyden. Suositeltavaa erityisesti " +"kun yhteys ei ole salasanasuojattu." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Salli etäkäyttäjiltä vain työpöydän katselu" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Jos tosi, työpöydälle etäyhteyttä haluavat käyttäjät saavat pelkästään " +"katsella työpöytää. Etäkäyttäjät eivät voi käyttää hiirtä tai näppäimistöä." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Kuunneltava verkkosovitin" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Jos ei asetettu, palvelin kuuntelee kaikki verkkosovittimia.\n" +"\n" +"Aseta tämä, jos haluat sallia yhteydet vain tietystä verkkosovittimesta, " +"esim. eth0, wifi0, lo, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Kuuntele muuta porttia" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Jos tosi, palvelin kuuntelee muuta kuin oletusporttia (5900). Portti täytyy " +"antaa avaimessa ”alternative-port”." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Vaihtoehtoinen portin numero" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Portti, jota palvelin kuuntelee, jos avain ”use-alternative-port” on tosi. " +"Kelvolliset arvot ovat väliltä 5000-50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Vaadi salausta" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Jos tosi, työpöydälle etäyhteyttä haluavien käyttäjien täytyy käyttää . On " +"erittäin suositeltavaa, että käytetään salausta tukevia ohjelmia, ellei " +"välissä oleva verkko ole luotettava." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Sallitut todentamismenetelmät" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +#| msgid "" +#| "Lists the authentication methods with which remote users may access the " +#| "desktop. There are two possible authentication methods; \"vnc\" causes " +#| "the remote user to be prompted for a password (the password is specified " +#| "by the vnc-password key) before connecting and \"none\" which allows any " +#| "remote user to connect." +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Luettelo etäkäyttäjien mahdollisista todentamismenetelmistä, mitkä " +"mahdollistavat etäyhteyden työpöydälle.\n" +"\n" +"On kaksi mahdollista todentamismenetelmää; ”vnc” kysyy etäkäyttäjältä " +"salasanaa (salasana " +"määritellään avaimeen vnc-password) ennen yhteyden muodostusta ja ”none” " +"mikä mahdollistaa minkä tahansa yhteyden." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "”vnc”-todentamiselle vaaditaan salasana" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +#| msgid "" +#| "The password which the remote user will be prompted for if the \"vnc\" " +#| "authentication method is used. The password specified by the key is " +#| "base64 encoded. The special value of 'keyring' (which is not valid " +#| "base64) means that the password is stored in the GNOME keyring." +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Etäkäyttäjän tarvitsema salasana ”vnc”-todennusmenetelmää käytettäessä. " +"Avaimen määrittelemä salasana on base64-koodattu.\n" +"\n" +"Erityinen arvo ”keyring” (joka ei ole kelvollista base64-koodausta) " +"tarkoittaa, että " +"salasana on tallennettu GNOME-avainrenkaaseen." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Sähköpostiosoite johon etäyhteyden URL lähetetään" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Avain määrittelee sähköpostiosoitteen johon etätyöpöydän URL pitäisi " +"lähettää jos käyttäjä napsauttaa URL:ia työpöydän jaon asetusikkunassa." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Lukitse näyttö viimeisen käyttäjän katkaistua yhteys" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Jos tosi, näyttö lukitaan kun viimeinen etäkäyttäjä katkaisee yhteyden." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Milloin tilakuvake tulisi näyttää" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Tämä avain ohjaa tilakuvakkeen käyttäytymistä. Sillä voi olla kolme eri " +"arvoa: " +"”always” - näytä kuvake aina; ”client” - näet kuvakkeen vain, kun " +"jollain on yhteys auki (tämä on oletustoiminto); " +"”never” - kuvaketta ei näytetä koskaan." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Poistetaanko työpöydän taustakuva käytöstä, kun käyttäjä muodostaa yhteyden" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Jos tosi, poista työpöydän tausta käytöstä ja korvaa se yhdellä " +"värillä käyttäjän muodostaessa yhteyden." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Käytetäänkö UPnP-yhteensopivaa reititintä portin avaamiseen ja " +"uudelleenohjaamiseen" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Jos tosi, pyydä UPnP-yhteensopivaa reititintä avata ja uudelleenohjata Vinon " +"käyttämä portti." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Otetaanko X.orgin XDamage-laajennus pois käytöstä" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Jos tosi, ei X.orgin XDamage-laajennusta käytetä. Tämä laajennus ei toimi " +"oikein joillakin näyttöajureilla kun käytetään 3D-tehosteita. Laajennuksen " +"ottaminen pois käytöstä mahdollistaa Vinon toiminnan tällaisissa " +"ympäristöissä tosin tavallista hitaammin." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Ilmoita yhteyden muodostuessa" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "Jos tosi, näytä ilmoitus käyttäjän yhdistäessä järjestelmään." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Työpöydän jaon salasana" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Tiedosto ei ole kelvollinen .desktop-tiedosto" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Tunnistamaton työpöytätiedosto versiolla ”%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Käynnistetään %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Sovellus ei hyväksy asiakirjoja komentoriviltä" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tunnistamaton käynnistysvalitsin: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Ei voida syöttää asiakirjan URIa työpöytäalkiolle, jonka tyyppi on ”linkki”" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Ei ole käynnistettävä kohde" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Katkaise yhteys istunnonhallintaan" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Määritä tiedosto, joka sisältää tallennetut asetukset" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "TIEDOSTO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Määritä istunnonhallintatunniste" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "TUNNISTE" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Istunnonhallinnan valitsimet:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Näytä istunnonhallinnan valitsimet" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServerisi ei tue XTest-laajennusta - etätyöpöytäyhteys sallii vain " +"katselun\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Käynnistä \"tube-tilassa\" Jaa työpöytäni -ominaisuutta varten" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC-palvelin Gnomelle" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Suorita ”vino-server --help” jos haluat nähdä kaikki mahdolliset valitsimet" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME-työpödän jako" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Käyttäjän ”%s” etätyöpöytä koneella %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Saatiin signaali %d, lopetetaan." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Näyttö" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Näyttö, jossa kehote näytetään" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Virhe alustettaessa libnotify-kirjastoa\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Käyttäjä tietokoneessa ”%s” yrittää etänä katsella tai hallita työpöytääsi." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Toinen käyttäjä yrittää katsella työpöytääsi." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Kieltäydy" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Hyväksy" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Väylään ei saatu avattua yhteyttä: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME-työpöydänjakopalvelin" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;jako;etä;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Työpöydän jako on käytössä" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Yksi käyttäjä katselee työpöytääsi" +msgstr[1] "%d käyttäjää katselee työpöytääsi" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Virhe näytettäessä asetuksia" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Virhe näytettäessä ohjetta" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Lisensoitu GPL (GNU General Public License) -lisenssin versiolla 2.\n" +"\n" +"Vino on vapaa ohjelma; sitä on sallittu levittää edelleen\n" +"ja muuttaa GNU yleisen lisenssin (GPL lisenssin) ehtojen mukaan\n" +" sellaisina kuin Free Software Foundation on ne julkaissut; joko\n" +"lisenssin version 2, tai (valinnan mukaan) minkä tahansa myöhemmän\n" +"version mukaisesti.\n" +"\n" +"Vinoa levitetään siinä toivossa, että se olisi hyödyllinen, \n" +"mutta ilman mitään takuuta; ilman edes hiljaista takuuta kaupallisesti\n" +"hyväksyttävästä laadusta tai soveltuvuudesta tiettyyn tarkoitukseen. \n" +"Katso GPL lisenssistä lisää yksityiskohtia.\n" +"\n" +"Tämän ohjelman mukana pitäisi tulla kopio GPL-lisenssistä; jos näin\n" +"ei ole, kirjoita osoitteeseen Free Software Foundation Inc., 51 Franklin\n" +"St,Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Ilkka Tuohela, 2006-2007\n" +"\n" +"https://l10n.gnome.org/teams/fi/" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Jaa työpöytä muiden käyttäjien kanssa" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Haluatko varmasti katkaista yhteyden ”%s”?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Etäkäyttäjän ”%s” yhteys katkaistaan. Oletko varma?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Haluatko varmasti katkaista yhteyden kaikkiin asiakkaisiin?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Kaikki etäkäyttäjien yhteydet katkaistaan. Oletko varma?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Katkaise" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Asetukset" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Katkaiset kaikki" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Katkaise %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "O_hje" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Tietoja" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Toinen käyttäjä katselee työpöytääsi" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Käyttäjä tietokoneella ”%s” katselee työpöytääsi." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Toinen käyttäjä ohjaa työpöytääsi" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Käyttäjä tietokoneella ”%s” ohjaa työpöytääsi." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Virhe näytettäessä huomautusikkunaa: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Etäkäyttäjän ”%s” yhteys katkaistaan. Oletko varma?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Jaa työpöytäni tiedot" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "”%s” hylkäsi työpöydänjakokutsun" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "”%s” katkaistu" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "”%s” etäohjaa työpöytääsi." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Odotetaan ”%s” yhdistämistä näyttöön." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Salli" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Kieltäydy" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Tapahtui virhe:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Peruttu" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"VIRHE: salasanan enimmmäispituus on %d merkki. Syötä uusi salasana." +msgstr[1] "" +"VIRHE: salasanan enimmmäispituus on %d merkkiä. Syötä uusi salasana." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vaihdetaan vinon salasana.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Syötä uusi vinon salasana:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Toista uusi vinon salasana:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: salasanan vaihto onnistui.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Annetut salasanat eivät täsmää.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: salasanaa ei vaihdettu.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Näytä vinon versio" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Päivittää vinon salasanan" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Suorita ”vino-passwd --help” jos haluat nähdä kaikki mahdolliset valitsimet" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO version %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "VIRHE: oikeutesi eivät riitä vinon salasanan vaihtamiseen.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Jos tosi, käytetään UPnP-protokollaa välittämään vinon käyttämä portti " +#~ "reitittimessä." + +#~ msgid "Question" +#~ msgstr "Kysymys" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Käyttäjä toisessa tietokoneessa yrittää etänä katsella tai hallita " +#~ "työpöytääsi." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Sallitko heidän tehdä niin?" + +#~ msgid "Remote Desktop" +#~ msgstr "Etätyöpöytä" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Aseta työpöydän etäyhteydet päälle" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Näytä kuvake _aina" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Määrittele verkko automaattisesti hyväksymään yhteydet" + +#~ msgid "_Never display an icon" +#~ msgstr "Älä _koskaan näytä kuvaketta" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Näytä kuvake vain silloin kun joku on yhteydessä" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Gnomen etätyöpöytä" + +#~ msgid "_Send address by email" +#~ msgstr "_Lähetä osoite sähköpostilla" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Kopioi osoite leikepöydälle" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Enimmäiskoko: 8 merkkiä" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "Sinua pyydetään hyväksymään tai hylkäämään kukin saapuva yhteys" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Virhe GConf-yhteydessä. Oletko kirjautunut sisään Gnome-istuntoon?" + +#~ msgid "Error message:" +#~ msgstr "Virheilmoitus:" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Aseta etätyöpöydän käyttöasetuksia" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Verkko</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "_Kysy varmistusta" + +#~ msgid "Advanced" +#~ msgstr "Lisäasetukset" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Poista _taustakuva yhteyden ajaksi" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Poista taustakuva, kun yhteys on avattu onnistuneesti" + +#~ msgid "General" +#~ msgstr "Yleisasetukset" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "Etäkäyttäjien VNC-asiakkaan täytyy tukea salattua yhteyttä" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "Näyttö lukitaan, kun viimeinen etäkäyttäjä katkaisee yhteyden." + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "Palvelin hyväksyy yhteyksiä vain täst tietokoneesta" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "Palvelin käyttää muuta porttia kuin oletusportti (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Käyttäjät voivat katsella työpöytääsi käyttämällä tätä komentoa:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "Kun käyttäjä yrittää katsella tai hallita työpöytääsi:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "Lukitse näyttö _katkaistaessa yhteys" + +#~ msgid "_Only allow local connections" +#~ msgstr "_Salli vain paikalliset yhteydet" + +#~ msgid "_Password:" +#~ msgstr "_Salasana:" + +#~ msgid "_Require encryption" +#~ msgstr "_Vaadi salattu yhteys" + +#~ msgid "_Use an alternative port:" +#~ msgstr "Käytä _muuta porttia:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Jos tosi, palvelin hyväksyy yhteydet ainoastaan paikalliset yhteydet ja " +#~ "verkkoyhteyksiä ei hyväksytä. Aseta tämä valitsin, jos aiot käyttää " +#~ "yhteyksiin ainoastaan tunnelointia esimerkiksi SSH:n avulla." + +#~ msgid "Only allow local connections" +#~ msgstr "Salli vain paikalliset yhteydet" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Etätyöpöydän palvelin kuoli, käynnistetään\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "%s:n aktivointi epäonnistui: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "%s:n aktivointi epäonnistui: tuntematon virhe\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Etätyöpöydän palvelimen aktivointi epäonnistui: liian monta yritystä\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Käynnistetään etätyöpöydän palvelinta" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Etätyöpöydän palvelinta ei käynnistetä" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..7ac74a2 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,818 @@ +# French translation of vino. +# Copyright (C) 2004-2013 The Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# Audrey Simons <asimons@redhat.com>, 2004. +# Christophe Merlet <redfox@redfoxcenter.org>, 2005-2006. +# Robert-André Mauchin <zebob.m@pengzone.org>, 2006-2008. +# Jonathan Ernst <jonathan@ernstfamily.ch>, 2007. +# Stéphane Raimbault <stephane.raimbault@gmail.com>, 2007-2008. +# Claude Paroz <claude@2xlibre.net>, 2008-2013. +# Bruno Brouard <annoa.b@gmail.com>, 2009-2012. +# Laurent Coudeur <laurentc@iol.ie>, 2009. +# Alexandre Franke <alexandre.franke@gmail.com#, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: vino HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-12 17:40+0100\n" +"Last-Translator: Claude Paroz <claude@2xlibre.net>\n" +"Language-Team: GNOME French Team <gnomefr@traduc.org>\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n>1;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Une erreur s'est produite en affichant l'URL « %s »" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Une erreur est survenue lors de l'affichage de l'aide :\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Vérification de la connectivité de cet ordinateur..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Votre bureau n'est accessible qu'à partir du réseau local." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ou " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"D'autres personnes peuvent accéder à votre ordinateur en utilisant l'adresse " +"%s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Personne ne peut accéder à votre bureau." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Partage de bureau" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Choisir comment d'autres utilisateurs peuvent voir votre bureau à distance" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Préférences de partage de bureau" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Partage" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Certaines de ces préférences sont verrouillées" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Autoriser d'autres utilisateurs à _voir votre bureau" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Votre bureau sera partagé" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Autoriser d'autres utilisateurs à contrôler votre bureau" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Les utilisateurs distants peuvent contrôler votre souris et votre clavier" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Sécurité" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Chaque accès à cet _ordinateur doit être confirmé" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "L'utilisateur doit saisi_r ce mot de passe :" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Configurer automatiquement le routeur UPnP pour ouvrir et rediriger des " +"ports" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "La fonctionnalité UPnP doit être activée sur le routeur" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Afficher l'icône dans la zone de notification" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Toujours" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Seulement si quelqu'un est connecté" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Jamais" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Activer l'accès distant au bureau" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Si vrai, permet l'accès à distance au bureau via le protocole RFB. Les " +"utilisateurs sur des ordinateurs à distance peuvent alors se connecter au " +"bureau à l'aide d'un visionneur VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Demander à l'utilisateur avant de procéder à une connexion" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si vrai, les utilisateurs à distance accédant au bureau se voient refuser " +"tout accès jusqu'à ce que l'utilisateur sur l'ordinateur hôte approuve la " +"connexion. Recommandé particulièrement lorsque l'accès n'est pas protégé par " +"un mot de passe." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Autoriser les utilisateurs à distance uniquement à voir le bureau" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Si vrai, les utilisateurs à distance accédant au bureau sont uniquement " +"autorisés à voir le bureau. Ils ne peuvent utiliser ni la souris ni le " +"clavier." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interface réseau à écouter" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Si non défini, le serveur écoute toutes les interfaces réseau.\n" +"\n" +"Définissez ce paramètre si vous voulez limiter les connexions à certaines " +"interfaces réseau. Par exemple : eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Écouter sur un autre port" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Si vrai, le serveur écoutera sur un autre port, au lieu du port par défaut " +"(5900). Le port doit être indiqué par la clé « alternative-port »." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Numéro de port alternatif" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Le port sur lequel le serveur écoute si la clé « use-alternative-port » est " +"définie à vrai. Les valeurs valides sont dans la plage 5000 à 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Requiert le chiffrement" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si vrai, les utilisateurs distants accédant au bureau doivent pouvoir " +"prendre en charge le chiffrement. Il est hautement recommandé que vous " +"utilisiez un client qui prenne en charge le chiffrement à moins que le " +"réseau en question soit de confiance." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Méthodes d'authentification autorisées" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Liste les méthodes d'authentification à l'aide desquelles les utilisateurs à " +"distance peuvent accéder au bureau.\n" +"\n" +"Il existe deux méthodes d'authentification possibles ; « vnc » fera en sorte " +"qu'un mot de passe soit demandé à l'utilisateur (le mot de passe est indiqué " +"par la clé vnc-password) avant la connexion et « none » permet à tout " +"utilisateur à distance de se connecter." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Mot de passe requis pour l'authentification « vnc »" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Le mot de passe qui sera demandé à l'utilisateur si la méthode " +"d'authentification « vnc » est utilisée. Le mot de passe indiqué par la clé " +"est codé en base64.\n" +"\n" +"La valeur spéciale « keyring » (qui n'est pas valide en base64) signifie que " +"le mot de passe est enregistré dans le trousseau de clé GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adresse électronique à laquelle envoyer l'URL du bureau à distance" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Cette clé indique l'adresse électronique à laquelle envoyer l'URL du bureau " +"à distance si l'utilisateur clique sur l'URL dans la boîte de dialogue de " +"préférences du partage de bureau." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Verrouiller l'écran après la déconnexion du dernier utilisateur" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Si vrai, l'écran sera verrouillé après la déconnexion du dernier utilisateur." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Indique si l'icône d'état doit être affichée" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Cette clé contrôle le comportement de l'icône d'état. Trois options sont " +"disponibles : « always » - l'icône est toujours affichée ; « client » - " +"l'icône est affichée uniquement quand quelqu'un est connecté (comportement " +"par défaut) ; « never » - l'icône n'est jamais affichée." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indique s'il faut désactiver l'arrière-plan du bureau lorsqu'un utilisateur " +"est connecté" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Si vrai, l'arrière-plan du bureau est désactivé et remplacé par un seul bloc " +"coloré lorsqu'un utilisateur se connecte." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Indique s'il faut utiliser un routeur UPnP pour propager et ouvrir les ports" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Si vrai, demander à un routeur compatible UPnP de propager et d'ouvrir le port " +"utilisé par Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indique s'il faut désactiver l'extension XDamage de X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Si vrai, l'extension XDamage de X.org n'est pas utilisée. Cette extension ne " +"fonctionne pas correctement avec certains pilotes graphiques lorsque les " +"effets 3D sont activés. Sa désactivation permet à vino de fonctionner dans " +"ces cas de figure, avec comme conséquence un ralentissement d'affichage." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notification à la connexion" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Si vrai, Vino affiche une notification lorsqu'un utilisateur se connecte au " +"système." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Mot de passe du partage de bureau à distance" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Le fichier n'est pas un fichier .desktop valide" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version « %s » du fichier desktop non reconnue" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Lancement de %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'application n'accepte pas de documents en ligne de commande" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Option de lancement non reconnue : %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossible de transmettre des URI de documents vers une entrée de bureau de " +"type « Type=Link »" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "L'élément n'est pas exécutable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Désactive la connexion au gestionnaire de sessions" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Indique un fichier contenant la configuration enregistrée" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FICHIER" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Indique l'ID de la gestion de sessions" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Options de gestion de sessions :" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Affiche les options de gestion de session" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Votre serveur XServer ne prend pas en charge l'extension XTest - l'accès au " +"bureau à distance sera en vue-seule\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Démarrer en mode tube, pour la fonctionnalité « Partager mon bureau »" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Serveur VNC pour GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Lancez « vino-server --help » pour voir la liste complète des options " +"disponibles en ligne de commande" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Partage de bureau GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "42" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Bureau à distance de %s sur %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Signal %d reçu, fin." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Écran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "L'écran sur lequel afficher l'invite" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Erreur lors de l'initialisation de libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utilisateur sur l'ordinateur « %s » essaie de voir ou contrôler à " +"distance votre bureau." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Un autre utilisateur essaie d'accéder à votre bureau." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Refuser" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Accepter" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "L'ouverture de la connexion au bus a échoué : %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Serveur de partage de bureau GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;partage;distant;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Le partage du bureau est activé" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Une personne est en train de voir votre bureau" +msgstr[1] "%d personnes sont en train de voir votre bureau" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Une erreur est survenue lors de l'affichage des préférences" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Une erreur est survenue lors de l'affichage de l'aide" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Vino est un logiciel libre ; vous pouvez le redistribuer et/ou le\n" +"modifier selon les termes de la Licence Publique Générale GNU, telle\n" +"que publiée par la Free Software Foundation ; version 2 de la licence,\n" +"ou (à votre discrétion) toute version ultérieure.\n" +"\n" +"Vino est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE " +"GARANTIE ; sans même la garantie implicite de VALEUR MARCHANDE ou " +"D'ADÉQUATION À UN BESOIN PARTICULIER. Pour plus de détails, voir la Licence " +"Publique Générale GNU.\n" +"\n" +"Un exemplaire de la Licence Publique Générale GNU doit être fourni avec ce " +"programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, " +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Audrey Simons <asimons@redhat.com>\n" +"Christophe Merlet <redfox@redfoxcenter.org>\n" +"Robert-André Mauchin <zebob.m@pengzone.org>\n" +"Jonathan Ernst <jonathan@ernstfamily.ch>\n" +"Stéphane Raimbault <stephane.raimbault@gmail.com>\n" +"Bruno Brouard <annoa.b@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Partagez votre bureau avec d'autres utilisateurs" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Êtes-vous sûr de vouloir déconnecter « %s » ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'utilisateur distant de « %s » sera déconnecté. Êtes-vous sûr ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Êtes-vous sûr de vouloir déconnecter tous les clients ?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Tous les utilisateurs distants seront déconnectés. Êtes-vous sûr ?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Déconnecter" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Préférences" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Tout déconnecter" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Déconnecter %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Aid_e" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "À _propos" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Un autre utilisateur est en train de voir votre bureau" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un utilisateur sur l'ordinateur « %s » est en train de voir votre bureau à " +"distance." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Un autre utilisateur est en train de contrôler votre bureau" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un utilisateur sur l'ordinateur « %s » contrôle actuellement votre bureau à " +"distance." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Erreur lors de l'affichage de la bulle de notification : %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "L'utilisateur distant « %s » sera déconnecté. Êtes-vous sûr ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Partager mon bureau" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "« %s » a rejeté l'invitation de partage du bureau." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "« %s » s'est déconnecté" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "« %s » contrôle actuellement votre bureau à distance." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "En attente de la connexion de « %s » à cet écran." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Autoriser" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Refuser" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Une erreur est survenue :" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Annulé" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERREUR : la taille maximale des mots de passe est de %d caractère. Veuillez " +"saisir à nouveau le mot de passe." +msgstr[1] "" +"ERREUR : la taille maximale des mots de passe est de %d caractères. Veuillez " +"saisir à nouveau le mot de passe." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Changement du mot de passe de Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Saisissez le nouveau mot de passe Vino : " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Confirmez le nouveau mot de passe Vino : " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd : le mot de passe a été mis à jour.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Désolé, les mots de passe ne correspondent pas.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd : le mot de passe reste inchangé.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Afficher la version de Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Mise à jour des mots de passe de Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Lancez « vino-passwd --help » pour voir la liste complète des options " +"disponibles en ligne de commande" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Version de Vino %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"ERREUR : vous n'avez pas la permission de changer le mot de passe de Vino.\n" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un utilisateur sur un autre ordinateur essaie de voir ou contrôler à " +#~ "distance votre bureau." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Souhaitez-vous les autoriser à continuer ?" diff --git a/po/fur.po b/po/fur.po new file mode 100644 index 0000000..63f93f6 --- /dev/null +++ b/po/fur.po @@ -0,0 +1,597 @@ +# Friulian translation for vino. +# Copyright (C) 2015 vino's COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# Fabio Tomat <f.t.public@gmail.com>, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2016-04-15 14:37+0000\n" +"PO-Revision-Date: 2016-04-16 00:11+0200\n" +"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" +"Language-Team: Friulian <fur@li.org>\n" +"Language: fur\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.5\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Domande al utent prime di completâ une conession" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Se metût su VÊR, i utents rimots che a cirin di acedi al scritori no puedin " +"fâlu fintremai che l'utent sul host nol aprove la conession. Racomandât " +"cuant che l'acès nol è protet di password." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Permet ai utents rimots nome di viodi il scritori" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se metût VÊR, ai utents rimots che a jentrin tal scritori al è permetût nome " +"la visualizazion dal scritori. Chei utents no podaran doprâ il mouse o la " +"tastiere." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Interface di rêt pe scolte" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se no impuestade, il servidôr al reste in scolte su dutis lis interfacis di " +"rêt.\n" +"\n" +"Impuestâ par acetâ lis conessions nome di cualchi interface di rêt " +"specifiche come: eth0, wifi0, lo e cussì indenant." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Scolte suntune puarte alternative" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se impuestât su VÊR, il servidôr al reste in scolte suntune puarte divierse " +"di che predefinide (5900). La puarte e scugne sedi specificade te clâf " +"'alternative-port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Numar puarte alternative" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"La puarte dulà che il servidôr al starà in scolte se la clâf 'use-" +"alternative-port' e je impuestade su VÊR. I valôrs pussibii a van di 5000 a " +"50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Domande cifradure" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se metût VÊR, i utents rimots che a jentrin tal scritori a scugnin supuartâ " +"la cifradure. Al è une vore conseât doprâ un client che al supuarti la " +"cifradure, a mancul che no si cjatisi suntune rêt fidade." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Metodis di autenticazion permetûts" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Liste i metodis di autenticazion mediant i cuai i utents rimots a puedin " +"acedi al scritori.\n" +"\n" +"A son dôs pussibilis manieris: \"vnc\" che al domande une password al utent " +"rimot (la password e je specificade de clâf vnc-password) prime di conetisi " +"e \"none\" che al permet a ogni utent rimot di conetisi." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Password domandade pe autenticazion \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"La password che e vegnarà domandade al utent rimot se al ven doprât il " +"metodi di autenticazion \"vnc\". La password specificade de clâf e je " +"codificade in base64.\n" +"\n" +"Il valôr speciâl di \"keyring\" (che nol è codificât in base64 valit) al " +"indiche che la password a je archiviade tal puarteclâfs di GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Recapit e-mail dulà inviâ il URL dal scritori rimot" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Cheste clâf e specifiche il recapit e-mail dulà che al vegnarà mandât il URL " +"dal scritori rimot se l'utent al fâs clic sul URL tal dialic des preferencis " +"di condivision scritori." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Bloche il schermi ae disconession dal ultin utent" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se metût VÊR il schermi al ven blocât dopo la disconession dal ultin client " +"rimot." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Cuant mostrâ la icone di stât" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Cheste clâf e controle il compuartament de icone di stât. A son disponibii " +"trê opzions: \"always\" - la icone e je simpri presinte; \"client\" - la " +"icone e je visibil nome se cualchidun al è conetût (chest al è il " +"compuartament predefinît); \"never\" - la icone no ven mai mostrade." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indiche se disabilitâ il sfont dal scritori cuant che un utent al è conetût" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Se VÊR al disabilite il fondâl dal scritori e lu sostituìs cuntun singul " +"bloc di colôr cuant che un utent si conet cun sucès." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Indiche se doprâ un router UPnP par mandâ indenant e vierzi lis puartis" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se VÊR, al domande che un router cun funzionalitât UPnP al mandi indenant e " +"al vierzi la puarte doprade di Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indiche se disabilitâ l'estension XDamage di X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se metût VÊR no ven doprade l'estension XDamage di X.org. Cheste estension " +"no funzione in maniere juste con cualchi driver video cuant che si doprin i " +"efiets 3D. Disabilitanle al è pussibil fâ funzionâ Vino in chei ambients, " +"ancje se cuntun rendering plui lent." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Notifiche ae conession" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se metût VÊR al mostre une notifiche cuant che un utent si conet al sisteme." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Il file nol è un file .desktop valit" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version '%s' dal file .desktop no ricognossude" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Inviament di %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicazion no acete documents su le rie di comant" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opzion di lanç no ricognossude: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Impussibil passâ URI di documents a un desktop entry cun \"Type=Link\"" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nol è un element lançabil" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Disabilite la conession al gjestôr di session" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specifiche il file che al ten la configurazion salvade" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specifiche il ID di gjestion session" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opzions di gjestion session:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostre lis opzions di gjestion session" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Il XServer in ûs nol supuarte la estension XTest - l'acès rimot al sarà nome " +"in visualizazion\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Invie in modalitât \"tube\" par la funzionalitât \"Condividi il propri " +"scritori\"" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- Servidôr VNC par GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Eseguî \"vino-server --help\" par visualizâ une liste complete di dutis lis " +"opzions disponibii a rie di comant" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Condivision scritori GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Scritori rimot di %s su %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Ricevût segnâl %d, jessude." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Schermi" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Il schermi dulà mostrâ la richieste" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Erôr tal inizializâ libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utent tal computer \"%s\" al sta cirint di viodi o controlâ chest " +"scritori." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Un altri utent al sta cirint di viodi chest scritori." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Refude" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Acete" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Vierzidure conession al bus falide: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Condivision scritori" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidôr di condivision scritori par GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;condivision;rimot;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "La condivision dal scritori e je abilitade" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Une persone e sta viodint chest scritori" +msgstr[1] "%d personis a stan viodint chest scritori" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Erôr tal mostrâ lis preferencis" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Erôr tal mostrâ il jutori" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Dât fûr sot la licence GNU General Public License version 2\n" +"\n" +"Vino al è software libar; al è pussibil tornâ a distribuîlu \n" +"e/o modificâlu secont i tiermins de licence GNU General \n" +"Public License, come publicade da Free Software \n" +"Foundation, version 2 (o a tô sielte) une plui recente.\n" +"\n" +"Vino al è distribuît te sperance che al sedi util, ma\n" +"CENCE NISSUNE GARANZIE, cence nancje la implicite\n" +"garanzie di COMERCIABILITÂT o IDONEITÂT A UNE \n" +"FINALITÂT PARTICOLÂR. Consultâ la licence GNU\n" +"General Public License par vê plui detais.\n" +"\n" +"Cun chest program ti varessin di vê dât ancje une copie \n" +"de licence GNU General Public License, in câs diviers al\n" +"è pussibil domandâle scrivint a: \n" +" Free Software Foundation, Inc.\n" +" 51 Franklin Street, Fifth Floor, Boston, MA\n" +" 02111-1301 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "Fabio Tomat <f.t.public@gmail.com>" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Condividi il propri scritori cun altris utents" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Sigûrs di disconeti \"%s\"?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'utent rimot di \"%s\" al sarà disconetût. Sêstu sigûr/sigure?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Sigûrs di disconeti ducj i client?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Ducj i utents rimots a saran disconetûts. Sêstu sigûr/sigure?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Disconet" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferencis" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Disconet ducj" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Disconet %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "_Jutori" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "_Informazions" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "Un altri utent al sta viodint chest scritori" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un utent tal computer \"%s\" al sta visualizant di rimot chest scritori." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "Un altri utent al sta controlant chest scritori" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un utent tal computer \"%s\" al sta controlant di rimot chest scritori." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Erôr tal mostrâ la notifiche:%s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "L'utent rimot \"%s\" al vegnarà disconetût. Continuâ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Condivît lis informazions dal scritori" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "\"%s\" al/e à refudât l'invît ae condivision dal scritori." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "\"%s\" al/e à sierât la conession" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "\"%s\" al/e sta controlant chest scritori di rimot." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "In atese che \"%s\" si coneti al schermi." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Permet" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Refude" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Si è verificât un erôr:" diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..1db941e --- /dev/null +++ b/po/ga.po @@ -0,0 +1,694 @@ +# Irish translations for vino package. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Seán de Búrca <leftmostcat@gmail.com>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-17 11:59-0600\n" +"PO-Revision-Date: 2009-08-17 12:12-0600\n" +"Last-Translator: Seán de Búrca <leftmostcat@gmail.com>\n" +"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n%" +"10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "" + +#: ../capplet/vino-message-box.c:103 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "" + +#: ../capplet/vino-preferences.c:197 ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "" + +#: ../capplet/vino-preferences.c:804 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "" + +#: ../capplet/vino-preferences.c:854 ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " nó " + +#: ../capplet/vino-preferences.c:859 ../capplet/vino-preferences.c:933 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "" + +#: ../capplet/vino-preferences.c:1130 ../server/vino-server.c:164 +#: ../server/vino-server.c:195 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "Roghnaigh conas a amharcfaidh úsáideoirí eile ar do dheasc" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Deasc Chianda" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Notification Area" +msgstr "Limistéar Fógra" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "Sainroghanna Deisce Cianda" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Security" +msgstr "Slándáil" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Sharing" +msgstr "Comhroinnt" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "Your desktop will be shared" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "" + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "" + +#: ../server/vino-dbus-listener.c:456 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "" + +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "" + +#: ../server/vino-main.c:75 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" + +#: ../server/vino-main.c:97 +msgid "GNOME Remote Desktop" +msgstr "Deasc Chianda GNOME" + +#: ../server/vino-main.c:107 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "" + +#: ../server/vino-prefs.c:606 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "Scáileán" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "Ceist" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Ceadaigh" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Diúltaigh" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Freastalaí Deisce Cianda GNOME" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "" + +#: ../server/vino-server.schemas.in.h:15 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "" + +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "" + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" + +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" + +#: ../server/vino-server.schemas.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "" + +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "" + +#: ../server/vino-status-icon.c:102 ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-tube-icon.c:175 +msgid "Error displaying preferences" +msgstr "" + +#: ../server/vino-status-icon.c:226 ../server/vino-status-tube-icon.c:191 +msgid "Error displaying help" +msgstr "" + +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "Seán de Búrca <leftmostcat@gmail.com>" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "" + +#: ../server/vino-status-icon.c:339 ../server/vino-status-tube-icon.c:223 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "" + +#: ../server/vino-status-icon.c:342 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "" + +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:362 ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "" + +#: ../server/vino-status-icon.c:388 ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "_Sainroghanna" + +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:427 ../server/vino-status-tube-icon.c:275 +#, c-format +msgid "Disconnect %s" +msgstr "" + +#: ../server/vino-status-icon.c:448 ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "Cab_hair" + +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "_Maidir Leis Seo" + +#: ../server/vino-status-icon.c:589 ../server/vino-status-tube-icon.c:391 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:612 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-status-icon.c:642 ../server/vino-status-tube-icon.c:422 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" + +#: ../server/vino-status-tube-icon.c:226 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-tube-server.c:313 ../server/vino-tube-server.c:342 +msgid "Share my desktop information" +msgstr "" + +#: ../server/vino-tube-server.c:317 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" + +#: ../server/vino-tube-server.c:321 +#, c-format +msgid "'%s' disconnected" +msgstr "" + +#: ../server/vino-tube-server.c:348 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-tube-server.c:357 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "" + +#: ../server/vino-util.c:115 +msgid "An error has occurred:" +msgstr "" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Cealaithe" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Focal faire Vino á athrú.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Iontráil focal faire Vino nua: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Iontráil focal faire Vino nua arís: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "" + +#: ../tools/vino-passwd.c:181 +#, c-format +msgid "" +"Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "" + +#: ../tools/vino-passwd.c:183 +#, c-format +msgid "Error message:" +msgstr "" + +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "Taispeáin leagan Vino" + +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "" + +#: ../tools/vino-passwd.c:219 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "VINO Version %s\n" +msgstr "Leagan %s VINO\n" + +#: ../tools/vino-passwd.c:238 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..89420a9 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,868 @@ +# Galician translation of vino. +# This file is distributed under the same license as the vino package. +# Copyright (C) 2010 Fran Diéguez +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005, 2006. +# Ignacio Casal Quinteiro <icq@cvs.gnome.org>, 2007. +# Ignacio Casal Quinteiro <icq@svn.gnome.org>, 2007. +# Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009. +# Suso Baleato <suso.baleato@xunta.es>, 2009. +# Antón Méixome <meixome@mancomun.org>, 2009. +# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012. +# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. +# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino-master-po-gl-22006\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-06 17:50+0100\n" +"PO-Revision-Date: 2013-02-06 17:51+0200\n" +"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" +"Language-Team: gnome-l10n-gl@gnome.org\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Produciuse un erro ao mostrar o URL «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Produciuse un erro ao mostrar a axuda:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Verificando a conectividade desta máquina…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "O seu escritorio só é atinxíbel a través da rede local." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ou " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Outras persoas poden acceder ao seu computador usando o enderezo %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ninguén pode acceder ao seu escritorio." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartición do escritorio" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Seleccione como poden ver o seu escritorio de forma remota outras persoas" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferencias do compartición de escritorio" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Compartir" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Algunhas destas preferencias están bloqueadas" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Permitir que outros usuarios _vexan o seu escritorio" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "O seu escritorio será compartido" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Permitir que outros usuarios controlen o seu escritorio" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Os usuarios remotos poden controlar o seu rato e teclado" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Seguranza" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Debe confirmar cada un dos accesos a esta máquina" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Requirir que o usuario introduza o contrasinal:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "_Configurar router UPnP automaticamente para abrir e redirixir portos" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "O router debe ter a funcionalidade UPnP activada" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Mostrar icona no área de notificación" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Sempre" + +# (pofilter) variables: (u'translation contains variables not in original: %d',) +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Só cando hai alguén conectado" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nunca" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Activar o acceso remoto ao escritorio" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Se é verdadeiro, permite o acceso remoto ao escritorio mediante o protocolo " +"RFB. Os usuarios nas máquinas remotas poderán entón conectarse ao escritorio " +"usando un visor vnc." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Preguntar ao usuario antes de completar unha conexión" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Se é verdadeiro, os usuarios remotos que accedan ao escritorio non terán " +"acceso até que o usuario na máquina host aprobe a conexión. Recomendado " +"especialmente cando o acceso non está protexido por un contrasinal." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir que os usuarios remotos vexan só o escritorio" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se é verdadeiro, os usuarios remotos que accedan ao escritorio só poderán " +"ver o escritorio. Os usuarios remotos non poderán usar nin o rato nin o " +"teclado." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "A interface de rede para escoitar" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se non está configurado, o servidor escoitará en todas as interfaces de " +"rede.\n" +"\n" +"Configure isto se quere aceptar conexións só desde algunhas interfaces de " +"rede específicas. Por exemplo: eth0, wifi0, lo ou semellantes." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Escoitar nun porto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se é verdadeiro, o servidor escoitará outro porto, no lugar do " +"predeterminado (5900). O porto terá que especificarse na chave " +"«alternative_port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Número de porto alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"O porto que escoitará o servidor se a chave «use_alternative_port» está " +"definida como verdadeira. Os valores válidos están entre o 5000 até o 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Requirir cifrado" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se é verdadeiro, os usuarios remotos que accedan ao escritorio terán que " +"admitir o cifrado. Recoméndase firmemente que utilice un cliente que admita " +"o cifrado, a non ser que a rede que intervén sexa fiábel." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Métodos de autenticación permitidos" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista os métodos de autenticación cos que os usuarios remotos poden acceder " +"ao escritorio. \n" +"\n" +"Hai dous métodos de autenticación posíbeis: «vnc» pídelle un contrasinal ao " +"usuario remoto (o contrasinal especifícase na chave vnc-password) antes de " +"conectarse e «none» permítelle conectarse a calquera usuario remoto." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Contrasinal requirido para a autenticación \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"O contrasinal que se lle pedirá ao usuario remoto se se usa o método de " +"autenticación «vnc». O contrasinal especificado pola chave está codificado " +"en base64.\n" +"\n" +"O valor especial «keyring» (que non é válido para base64) significa que o " +"contrasinal gárdase no anel de chaves de GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Enderezo de correo ao que se debe enviar o URL do escritorio remoto" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Esta chave especifica o enderezo de correo electrónico ao que se debe enviar " +"o URL do escritorio remoto, se o usuario preme no URL no diálogo de " +"preferencias da Compartición de escritorio." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Bloquear a pantalla cando o último usuario se desconecte" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se é true, bloquearase a pantalla despois de que o último cliente remoto se " +"desconecte." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Cando se debería mostrar a icona de estado" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Esta chave controla o comportamento da icona de estado. Hai tres opcións: " +"\"always\" - A icona estará sempre presente; \"client\" - a icona estará " +"presente só se hai alguén conectado (este é o comportamento predeterminado); " +"\"never\" - Non mostra nunca a icona." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indica se se debe desactivar o fondo de pantalla cando se conecta un usuario" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Se é true, desactivar o fondo de pantalla e substituílo co un bloque sinxelo " +"de cor cando o usuario se conecta con éxito." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Indica se se debería usar o UPnP para reencamiñar e abrir portos" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se é verdadeiro; solicitar que un router con UPnP debería reenviar e abrir o " +"porto usado por Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica se debe desactivar a extensión XDamage de X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se é verdadeiro, non se empregará a extensión XDamage de X.org. Esta " +"extensión non funciona correctamente con algúns controladores de vídeo ao " +"empregar efectos 3D. Se o desactiva, neses ambientes vino funcionará con un " +"renderizado máis lento." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notificar ao conectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se é verdadeiro, mostrarase unha notificación cando se conecte un usuario ao " +"sistema." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Contrasinal de compartición do escritorio remoto" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O ficheiro é un ficheiro .desktop incorrecto" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ficheiro desktop Versión «%s» descoñecido" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "O aplicativo non acepta documentos na liña de ordes" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opción de inicio non recoñecida: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Non é posíbel pasar URIs de documento a unha entrada desktop 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Non é un elemento iniciábel" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desactivar a conexión do xestor de sesións" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especifique o ficheiro que contén a configuración gardada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FICHEIRO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especifique o ID de xestión de sesión" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcións de xestión de sesión:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostrar as opción da xestión de sesión" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"O seu servidor X non é compatíbel coa extensión XTest - o acceso ao " +"escritorio remoto será só en modo de visualización\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Iniciar en modo tubo, para a característica «Compartir o meu escritorio»." + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC para GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Execute 'vino-server --help' para ver unha lista completa das opcións da " +"liña de ordes dispoñíbeis" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Compartición de escritorio de GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "escritorio remoto de %s en %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Recibiuse o sinal %d, saíndo." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Pantalla" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "A pantalla na que se mostrará o indicador de ordes" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Produciuse un erro ao inicializar libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un usuario no equipo «%s» está a tentar ver ou controlar remotamente o seu " +"escritorio." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Outro usuario está a tentar ver o seu escritorio." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Rexeitar" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Aceptar" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Non foi posíbel abrir a conexión co bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartición de escritorio GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;compartir;remoto;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Compartir escritorio está activado" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Unha persoa está vendo o seu escritorio" +msgstr[1] "%d persoas están vendo o seu escritorio" + +# seguir +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Produciuse un erro ao mostrar as preferencias" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Produciuse un erro ao mostrar a axuda" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Autorizado pola Licenza pública xeral de GNU Versión 2\n" +"\n" +"O Vino é software libre; pode redistribuílo e/ou\n" +"modificalo segundo as condicións da Licenza pública xeral de GNU\n" +"tal e como publicou a Free Software Foundation tanto na versión 2\n" +"da licenza como (segundo a súa escolla) en calquera outra versión.\n" +"\n" +"O Vino distribúese coa intención de que sexa útil\n" +"mais SEN NINGUNHA GARANTÍA, nin sequera a garantía implícita de\n" +"VALOR COMERCIAL ou ADECUACIÓN A NINGÚN FIN ESPECÍFICO. Vexa\n" +"a Licenza Pública Xeral de GNU para máis información.\n" +"\n" +"Debería ter recibida unha copia desta licenza\n" +"xunto con este programa; de non ser así escriba á Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.\n" +"Fran Diéguez <frandieguez@ubuntu.com>, 2009, 2010, 2011, 2012.\n" +"Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun." +"org>, 2009.\n" +"Antón Méixome <meixome@mancomun.org>, 2009.\n" +"Suso Baleato <suso.baleato@xunta.es>, 2009.\n" +"Ignacio Casal Quinteiro <icq@svn.gnome.org>, 2005, 2006, 2007.\n" +"\n" +"Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas\n" +"colaborar connosco, podes atopar máis información en http://www.trasno.net" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Comparta o seu escritorio con outros usuarios" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Está seguro de que quere desconectar a «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "O usuario remoto de «%s» será desconectado. Está seguro?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Está seguro de que quere desconectar todos os clientes?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Todos os usuarios remotos serán desconectados. Está seguro?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Desconectar" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferencias" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Desconectar todos" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Desconectar a %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Axuda" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Sobre" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Hai outro usuario vendo o seu escritorio" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un usuario no computador «%s» está vendo o seu escritorio de forma remota." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Outro usuario está controlando o seu escritorio" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un usuario do computador «%s» está controlando o seu escritorio de forma " +"remota." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Produciuse un erro ao mostrar a burbulla de notificación: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "O usuario remoto de «%s» será desconectado. Está seguro?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartir a información do meu escritorio" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» rexeitou a invitación a compartir o escritorio." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» desconectada" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» está a controlar remotamente o seu escritorio." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Agardando por «%s» para conectar á pantalla." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Rexeitar" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Produciuse un erro:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Cancelado" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERRO: A lonxitude máxima do contrasinal é de %d carácter. Introduza " +"novamente o contrasinal." +msgstr[1] "" +"ERRO: A lonxitude máxima do contrasinal é de %d caracteres. Introduza " +"novamente o contrasinal." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Cambiar o contrasinal de Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Introduza o novo contrasinal de Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Escriba o novo contrasinal de Vino outra vez: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: o contrasinal de vino foi actualizado con éxito.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Desculpe, os contrasinais non coinciden.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: o contrasinal non cambiou.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Mostrar a versión do Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Actualiza o contrasinal de Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Execute 'vino-passwd --help' para ver unha lista completa das opcións da " +"liña de ordes dispoñíbeis" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versión de Vino %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"ERRO: Non ten os permisos suficientes para cambiar o contrasinal de Vino.\n" + +#~ msgid "Question" +#~ msgstr "Pregunta" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un usuario noutro computador está a tentar ver ou controlar remotamente o " +#~ "seu escritorio." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Quere permitilo?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Se é true, usarase o protocolo UPnP para reenviar automaticamente o porto " +#~ "do router usado por Vino." + +#~ msgid "Remote Desktop" +#~ msgstr "Escritorio remoto" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Activar acceso ao escritorio remoto" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Mostrar sempre unha icona" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configurar a rede automaticamente para aceptar as conexións" + +#~ msgid "_Never display an icon" +#~ msgstr "_Non mostrar nunca unha icona" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Mostrar unha icona _só cando haxa alguén conectado" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Escritorio remoto do GNOME" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Tamaño máximo: 8 caracteres" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "Preguntaráselle se quere rexeitar todas as conexións entrantes" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "O servidor de Escritorio remoto xa está en execución; saíndo …\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Produciuse un erro ao comunicarse con GConf. Ten vostede unha sesión de " +#~ "GNOME iniciada?" + +#~ msgid "Error message:" +#~ msgstr "Mensaxe de erro:" diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..5f757c5 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,831 @@ +# translation of gu.po to Gujarati +# Ankit Patel <ankit644@yahoo.com>, 2005, 2006. +# Ankit Patel <ankit@redhat.com>, 2006, 2007, 2008. +# Sweta Kothari <swkothar@redhat.com>, 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: gu\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-13 12:10+0530\n" +"Last-Translator: \n" +"Language-Team: American English <kde-i18n-doc@kde.org>\n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" બતાવી રહ્યા હોય ત્યારે ભૂલ હતી" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"ત્યાં મદદ દર્શાવવામાં ભૂલ હતી:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "આ મશીનનાં જોડાણ ની ચકાસણી કરી રહ્યા છે..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "સ્થાનિક નેટવર્ક પર તમારુ ડેસ્કટોપ ફક્ત પહોંચી શકે તેમ છે." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " અથવા " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "સરનામાં %s ની મદદથી તમારા કૉમ્પયુટર માં બીજાઓ પ્રવેશ કરી શકે છે." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "કોઇપણ તમારા ડેસ્કટોપમાં પ્રવેશ કરી શકતા નથી." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ડેસ્કટોપ વહેંચણી" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "કેટલા બીજા વપરાશકર્તાઓ એ તમારા ડેસ્કટોપ ને દૂરસ્થ રીતે દેખી શકે છે તે પસંદ કરો" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ડૅસ્કટોપ વહેંચણી પસંદગીઓ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ભાગીદારી" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "તેમાંની અમુક પસંદગીઓને તાળુ લગાવી દેવામાં આવ્યું" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "તમારી ડેસ્કટોપ બીજા વપરાશકર્તાઓને વાપરવા માટેની પરવાનગી આપે છે (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "તમારું ડેસ્કટોપ વહેંચવામાં આવશે" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "બીજા વપરાશકર્તાઓને તમારી ડેસ્કટોપ નિયંત્રિત કરવાની પરવાનગી આપે છે (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "દૂરસ્થ વપરાશકર્તાઓ તમારું માઉસ અને કીબોર્ડ નિયંત્રિત કરવા માટે સમર્થ છે" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "સુરક્ષા" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "તમે આ મશીનનાં દરેક પ્રવેશની ખાતરી કરવી જ જોઇએ (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "વપરાશકર્તાને આ પાસવર્ડ દાખલ કરવો જરુરી છે (_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "આપમેળે પોર્ટને આગળ ધપાવા અને ખોલવા માટે UPnP ને રૂપરેખાંકિત કરો (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "રાઉટર પાસે સક્રિય થયેલ UPnP લક્ષણ હોવુ જ જોઇએ" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "સૂચન વિસ્તાર ચિહ્નને બતાવો" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "હંમેશા (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "ફક્ત જયારે કોઇ જોડાય (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "કદી નહિં (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "ડૅસ્કટોપમાં દૂરસ્થ પ્રવેશને સક્રિય કરો" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"જો true હોય, તો RFB પ્રોટોકોલ દ્વારા ડેસ્કટોપને દૂરથી ચલાવવાની પરવાનગી આપે છે. આથી " +"દૂરના કમ્પ્યુટર પરના વપરાશકર્તાઓ VNC દર્શક ની મદદથી ડેસ્કટોપ સાથે જોડાઈ શકે છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "જોડાણ પૂરુ કરતાં પહેલા વપરાશકર્તાને પૂછે છે" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"જો સાચું હોય, તો ડેસ્કટોપ વાપરતા દૂરના વપરાશકર્તાઓને જ્યાં સુધી યજમાન કમ્પ્યુટર પરના " +"વપરાશકર્તા ખાતરી નહિં કરે ત્યાં સુધી ચલાવી નહિં શકે. આ ત્યારે જ જરુરી છે જ્યારે ચલાવવાનું " +"કામ પાસવર્ડથી સુરક્ષિત નહિં હોય." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "માત્ર દૂરસ્થ વપરાશકર્તાઓને ડેસ્કટોપ જોવાની પરવાનગી આપે છે" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"જો સાચું હોય, ડેસ્કટોપ વાપરી રહેલા દૂરના વપરાશકર્તાઓ માત્ર ડેસ્કટોપ જોવા માટે પરવાનગી " +"છે. દૂરના વપરાશકર્તાઓ માઉસ અથવા કીબોર્ડ વાપરવા માટે સમર્થ નહિં હોય." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "યાદી માટે નેટવર્ક ઇન્ટરફેસ" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"જો સુયોજિત ન હોય તો, સર્વર એ બધા નેટવર્ક ઇન્ટરફેસો પર સાંભળશે.\n" +"\n" +"આ સુયોજિત કરો જો તમે અમુક ચોક્કસ નેટવર્ક ઇન્ટરફેસ માંથી ફક્ત જોડાણો સ્વીકારવા ઇચ્છતા " +"હોય. દાત: eth0, wifi0, lo અને આગળ." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "વૈકલ્પિક પોર્ટ પર સાંભળો" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"જો true હોય, તો સર્વર અન્ય પોર્ટ પર સાંભળશે, મૂળભૂત (5900) ની જગ્યાએ. પોર્ટ " +"'alternative-port' કીમાં સ્પષ્ટ થયેલ હોવો જ જોઈએ." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "વૈકલ્પિક પોર્ટ નંબર" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"પોર્ટ કે જેને સર્વર સાંભળશે જો 'use-alternative-port' કી true તરીકે સુયોજિત થયેલ હોય. " +"માન્ય કિંમતો 5000 થી 50000 ના વિસ્તારમાં છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "એનક્રિપ્શન જરુરી છે" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"જો સાચું હોય, તો ડેસ્કટોપ વાપરતા દૂરસ્થ વપરાશકર્તાઓ એનક્રિપ્શનને આધાર આપતા હોય તે જરૂરી " +"છે. એ ખૂબ આગ્રહણીય છે કે તમે ક્લાઈન્ટ વાપરો કે જે જ્યાં સુધી આંતરિક નેટવર્ક વિશ્વાસુ ના હોય " +"ત્યાં સુધી એનક્રિપ્શનને આધાર આપે છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "સત્તાધિકરણ પદ્ધતિઓને પરવાનગી આપે છે" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"સત્તાધિકરણની પદ્ધતિઓ યાદી કરે છે કે જેના દ્વારા વપરાશકર્તાઓ ડેસ્કટોપ ચલાવી શકે છે.\n" +"\n" +"ત્યાં બે શક્ય સત્તાધિકરણની પદ્ધતિઓ છે;\"vnc\" કે જે દૂરના વપરાશકર્તાને સંપર્ક થયા પહેલા " +"પાસવર્ડ પૂછે છે (vnc_password કી દ્વારા સ્પષ્ટ થયેલ પાસવર્ડ) અને \"none\" કે જે કોઈપણ " +"દૂરસ્થ વપરાશકર્તાને સંપર્ક કરવાની પરવાનગી આપે છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" સત્તાધિકરણ માટે જરુરી પાસવર્ડ" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"પાસવર્ડ કે જે દૂરસ્થ વપરાશકર્તાને સત્તાધિકરણ માટે પૂછવામાં આવે છે જો \"vnc\" સત્તાધિકરણ " +"પદ્ધતિ વાપરવામાં આવે તો. કી દ્વારા સ્પષ્ટ કરેલ પાસવર્ડ એ base64 એનકોડ થયેલ છે.\n" +" \n" +"કીરીંગની ચોક્કસ કિંમત (કે જે યોગ્ય base64 નથી) નો મતલબ એ કે પાસવર્ડ એ GNOME કીરીંગમાં " +"સંગ્રહ થયેલ છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ઈ-મેઈલ સરનામુ કે જેને રીમોટ ડેસ્કટોપ URL મોકલવાની છે" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"આ કી ઈ-મેઈલ સરનામું સ્પષ્ટ કરે છે કે જેમાં દૂરસ્થ ડેસ્કટોપ URL મોકલવી જોઇએ જો વપરાશકર્તા " +"ડૅસ્કટોપ વહેંચણી પસંદગીઓમાં URL પર ક્લિક કરે તો." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "જ્યારે છેલ્લા વપરાશકર્તાનું જોડાણ તૂટે ત્યારે સ્ક્રીનને તાળું મારો" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "If true, the screen will be locked after the last remote client disconnects." +msgstr "જો true હોય, તો સ્ક્રીનને છેલ્લે દૂરસ્થ ક્લાઈન્ટનું જોડાણ તૂટે પછી તાળું મરાઈ જશે." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "ક્યારે પરિસ્થિતિ ચિહ્ન દર્શાવવામાં આવવો જોઈએ" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"આ કી પરિસ્થિતિ ચિહ્નની વર્તણૂક નિયંત્રિત કરે છે. ત્રણ વિકલ્પો છે: \"હંમેશા\" - ચિહ્ન હંમેશા " +"ત્યાં રહેશે; \"ક્લાયન્ટ\" - તમને માત્ર ચિહ્ન જ દેખાશે જ્યારે ત્યાં કોઈક જોડાયેલ હોય, (આ " +"મૂળભૂત " +"વર્તણૂક છે); \"ક્યારેય નહિં\" - ચિહ્ન હાજર રહેશે નહિં." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "ક્યાંતો ડેસ્કટોપ પાશ્ર્વભાગને નિષ્ક્રિય કરવાનું છે જ્યારે વપરાશકર્તા જોડાયેલ હોય" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"જ્યારે true હોય તો, ડેસ્કટોપ પાશ્ર્વભાગને નિષ્ક્રિય કરો અને રંગના એક જ બ્લોક સાથે તેને બદલો " +"જ્યારે વપરાશકર્તા સફળતાપૂર્વક જોડાય." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "કયાંતો UPnP રાઉટરને આગળ ધપાવા વાપરવુ જોઇએ અને પોર્ટોને ખોલો" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"જો true હોય તો, માંગણી કરીએ છે કે UPnP-સક્ષમ રાઉટર એ આગળ વધવુ જોઇએ અને Vino દ્દારા વાપરેલ " +"પોર્ટને ખોલો." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "ક્યાંતો આપણે X.org નાં XDamage એક્સટેન્શનને નિષ્ક્રિય કરવુ જોઇએ" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"જો true હોય તો, આપણે X.org નાં XDamage એક્સટેન્શનને વાપરશું નહિં. આ એક્સટેન્શન અમુક " +"વિડિયો ડ્રાઇવરો પર યોગ્ય રીતે કામ કરતા નથી જ્યારે 3D અસરોને વાપરી રહ્યા હોય. તે બીજી " +"અસર તરીકે ધીમી રેન્ડરીંગ સાથે આ પર્યાવરણો પર vino કામ બનાવશે તેને નિષ્ક્રિય કરી રહ્યા છે." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "જોડાણ વખતે સૂચિત કરો" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "જો true હોય તો, અમે સૂચિત કરશુ, જ્યારે વપરાશકર્તા સિસ્ટમમાં જોડાય છે." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "દૂરસ્થ ડેસ્કટોપ વહેંચણી પાસવર્ડ" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ફાઇલ એ યોગ્ય .desktop ફાઇલ નથી" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ન ઓળખાતી ડેસ્કટોપ ફાઇલ આવૃત્તિ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ને શરૂ કરી રહ્યા છે" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "આદેશ વાક્ય પર કાર્યક્રમ એ દસ્તાવેજો ને સ્વીકીરતુ નથી" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ન ઓળખાતા શરૂઆતનો વિકલ્પ: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ડેસ્કટોપ પ્રવેશમાં દસ્તાવેજ URIs ને પસાર કરી શકાતુ નથી" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "શરૂ કરી ન શકાય તેવી વસ્તુ નથી" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "સત્ર વ્યવસ્થાપનમાં જોડાણને નિષ્ક્રિય કરો" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "ફાઇલ સંગ્રહ થયેલ રૂપરેખાંકનને સમાવે છે તેને સ્પષ્ટ કરો" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "સત્ર વ્યવસ્થાપન ID ને સ્પષ્ટ કરો" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "સત્ર વ્યવસ્થાપન વિકલ્પો:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "સત્ર વ્યવસ્થાપન વિકલ્પોને બતાવો" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"તમારુ X સર્વર X ચકાસો પ્રત્યયને આધાર આપતું નથી - રીમોટ ડેસ્કટોપ ચલાવવાનું માત્ર દેખાડવાનું " +"હશે\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "ટ્યુબ સ્થિતિમાં ખોલો, ‘મારા ડેસ્કટોપને વહેંચો’ લક્ષણ માટે" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME માટે VNC સર્વર" + +#: ../server/vino-main.c:315 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "ઉપલબ્ધ આદેશવાક્ય વિકલ્પોની સંપૂર્ણ યાદી જોવા માટે 'vino-server --help' ચલાવો" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME ડૅસ્કટોપ વહેંચણી" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s નું દૂરસ્થ ડેસ્કટોપ %s પર" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "મળેલ સંકેત %d, અસ્તિત્વ ધરાવે છે." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "સ્ક્રીન" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "સ્ક્રીન કે જેના ઉપર પ્રોમ્પ્ટ પ્રદર્શિત કરવાનું છે" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify નો આરંભ કરવામાં ભૂલ\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"આ કમ્પ્યુટર પરનો વપરાશકર્તા '%s' એ તમારી ડેસ્કટોપ દૂરથી નિયંત્રિત કરવાનો અથવા જોવાનો " +"પ્રયત્ન કરે છે." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "બીજો વપરાશકર્તા તમારી ડેસ્કટોપ જોવાનો પ્રયત્ન કરે છે." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "નકારો" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "સ્વીકારો" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "બસ સાથેનું જોડાણ ખોલવામાં નિષ્ફળ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME ડૅસ્કટોપ વહેંચણી સર્વર" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;વહેંચણી;દૂરસ્થ;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ડેસ્કટોપ વહેંચણી સક્રિય કરેલ છે" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "એક માણસ તમારા ડૅસ્કટોપને જોઇ રહ્યુ છે" +msgstr[1] "%d માણસ તમારા ડૅસ્કટોપને જોઇ રહ્યુ છે" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "પસંદગીઓ દર્શાવવામાં ભૂલ" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ત્યાં મદદ દર્શાવવામાં ભૂલ" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "અંકિત પટેલ <ankit644@yahoo.com>, શ્ર્વેતા કોઠારી <swkothar@redhat.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "તમારા ડેસ્કટોપને અન્ય વપરાશકર્તાઓ સાથે વહેંચો" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "શું તમે ખરેખર '%s' સાથેનું જોડાણ તોડવા માંગો છો?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' માંથી દૂરસ્થ વપરાશકર્તાઓનું જોડાણ તૂટી જશે. શું તમે ચોક્કસ છો?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "શું તમે ખરેખર બધા ક્લાઈન્ટોનું જોડાણ તોડવા માંગો છો?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "બધા દૂરસ્થ વપરાશકર્તાઓનું જોડાણ તૂટી જશે. શું તમે ચોક્કસ છો?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "જોડાણ તોડો" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "પસંદગીઓ (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "બધા જોડાણ તોડો" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s નું જોડાણ તોડો" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "મદદ (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "વિશે (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "બીજો વપરાશકર્તા તમારી ડેસ્કટોપ જોઈ રહ્યો છે" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "કમ્પ્યૂટર '%s' પરનો વપરાશકર્તા દૂરસ્થ રીતે તમારી ડેસ્કટોપ જોઈ રહ્યો છે." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "અન્ય વપરાશકર્તા તમારી ડેસ્કટોપ નિયંત્રિત કરી રહ્યો છે" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "કમ્પ્યૂટર '%s' પરનો વપરાશકર્તા દૂરસ્થ રીતે તમારી ડેસ્કટોપ નિયંત્રિત કરી રહ્યો છે." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "bubble વિશે સૂચન દર્શાવતી વખતે ભૂલ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "દૂરસ્થ વપરાશકર્તાઓ '%s' નું જોડાણ તૂટી જશે. શું તમે ચોક્કસ છો?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "મારી ડેસ્કટોપ જાણકારીને વહેંચો" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' એ ડેસ્કટોપ વહેંચવાનાં આમંત્રણને રદ કરેલ છે." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' જોડાણ તૂટી ગયેલ છે" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' એ તમારા ડેસ્કટોપનું દૂરસ્થ રીતે નિયંત્રમ કરી રહ્યુ છે." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "સ્ક્રીન નું જોડાણ કરવા '%s' માટે રાહ જોઇ રહ્યા છે." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "પરવાનગી આપો (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "જવા દો (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ભૂલ ઉત્પન્ન થયેલ છે:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "રદ કરેલ છે" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "ભૂલ: પાસવર્ડની મહત્તમ લંબાઈ %d અક્ષર છે. મહેરબાની કરીને, પાસવર્ડ પુનઃ-દાખલ કરો." +msgstr[1] "ભૂલ: પાસવર્ડની મહત્તમ લંબાઈ %d અક્ષરોની છે. મહેરબાની કરીને, પાસવર્ડ પુનઃ-દાખલ કરો." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino પાસવર્ડ બદલી રહ્યા છીએ.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "નવો Vino પાસવર્ડ દાખલ કરો: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "નવો Vino પાસવર્ડ પુનઃદાખલ કરો: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: પાસવર્ડ સફળતાપૂર્વક સુધારાઈ ગયો.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "માફ કરજો, પાસવર્ડો બંધબેસતા નથી.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: પાસવર્ડ બદલાયેલ નથી.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino આવૃત્તિ બતાવો" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino પાસવર્ડ સુધારે છે" + +#: ../tools/vino-passwd.c:201 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "ઉપલબ્ધ આદેશવાક્ય વિકલ્પોની સંપૂર્ણ યાદી જોવા માટે 'vino-passwd --help' ચલાવો" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO આવૃત્તિ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ભૂલ: તમારી પાસે Vino પાસવર્ડ બદલવા માટે પૂરતી પરવાનગીઓ નથી.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "જો true હોય તો, આપણે રાઉટરમાં vino દ્દારા પોર્ટ ને આપોઆપ આગળ ધપાવવા માટે UPNP " +#~ "પ્રોટોકોલ વાપરશે." + +#~ msgid "Question" +#~ msgstr "પ્રશ્ન" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "બીજા કમ્પ્યુટર પરનો વપરાશકર્તા એ તમારા કમ્પ્યુટરને દૂરથી જોવાનો અથવા નિયંત્રિત " +#~ "કરવાનો પ્રયત્ન કરે છે." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "શું તમે એમને આ કરવા માટેની પરવાનગી આપો છો?" + +#~ msgid "Remote Desktop" +#~ msgstr "રીમોટ ડેસ્કટોપ" + +#~ msgid "Enable remote desktop access" +#~ msgstr "રીમોટ ડેસ્કટોપ ચલાવવાનું સક્રિય કરો" + +#~ msgid "Al_ways display an icon" +#~ msgstr "હંમેશા ચિહ્ન દર્શાવો (_w)" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "જોડાણો ને સ્વીકારવા માટે આપોઆપ નેટવર્ક ને રૂપરેખાંકિત કરો (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "ક્યારેય ચિહ્ન દર્શાવો નહિં (_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "જ્યારે ત્યાં કોઈક જોડાયેલ હોય ત્યારે માત્ર ચિહ્ન દર્શાવો (_O)" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "જીનોમ દૂરસ્થ ડેસ્કટોપ" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..b691d1f --- /dev/null +++ b/po/he.po @@ -0,0 +1,874 @@ +# translation of vino.po to Hebrew +# translation of vino.HEAD.po to Hebrew +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Oldie <yonatanhak@yahoo.com>, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-02 11:50+0200\n" +"PO-Revision-Date: 2013-02-02 11:52+0200\n" +"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" +"Language-Team: Hebrew\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "אירעה שגיאה בהצגת הכתובת „%s“" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"אירעה שגיאה, מוצגת העזרה:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "הקישוריות של מכונה זאת נבדקת..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "שולחן העבודה שלך זמין רק עבור הרשת המקומית." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " או " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "אחרים יכולים לגשת למחשב שלך דרך הכתובת %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "אין לאף אחד גישה אל שולחן העבודה שלך." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "שיתוף שולחן העבודה" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "נא לבחור כיצד משתמשים אחרים יכולים לצפות מרחוק בשולחן העבודה שלך" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "העדפות שיתוף שולחן העבודה" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "שיתוף" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "כמה מאפשרויות אלו חסומות" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "מתן הרשאה למשתמשים אחרים ל_צפות בשולחן העבודה שלך" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "שולחן העבודה שלך ישותף" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "מתן ה_רשאה למשתמשים אחרים לשלוט בשולחן העבודה שלך" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "משתמשים מרוחקים יכולים לשלוט בעכבר ובמקלדת שלך" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "אבטחה" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "מתן _אישור לכל גישה למחשב זה" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "יש ל_דרוש מהמשתמש להקליד את הססמה:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "ה_גדרת נתבים התומכים ב־UPnP לפתוח ולהעביר פתחות" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "יש לאפשר את פונקציית ה־UPnP בנתב" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "הצגת סמל באזור הדיווחים" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_תמיד" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_רק כאשר מישהו מחובר" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_אף פעם" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Enable remote access to the desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a VNC viewer." +msgstr "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a VNC viewer." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Prompt the user before completing a connection" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Only allow remote users to view the desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Network interface for listening" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network interface. For example, eth0, wifi0, lo and so on." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Listen on an alternative port" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "If true, the server will listen on another port, instead of the default (5900). The port must be specified in the 'alternative-port' key." +msgstr "If true, the server will listen on another port, instead of the default (5900). The port must be specified in the 'alternative-port' key." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternative port number" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "The port which the server will listen to if the 'use-alternative-port' key is set to true. Valid values are in the range of 5000 to 50000." +msgstr "The port which the server will listen to if the 'use-alternative-port' key is set to true. Valid values are in the range of 5000 to 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Require encryption" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Allowed authentication methods" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc-password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "" +"Lists the authentication methods with which remote users may access the desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc-password key) before connecting and \"none\" which allows any remote user to connect." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Password required for \"vnc\" authentication" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the password is stored in the GNOME keyring." +msgstr "" +"The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the password is stored in the GNOME keyring." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail address to which the remote desktop URL should be sent" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Desktop Sharing preferences dialog." +msgstr "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Desktop Sharing preferences dialog." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Lock the screen when last user disconnect" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "If true, the screen will be locked after the last remote client disconnects." +msgstr "If true, the screen will be locked after the last remote client disconnects." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "When the status icon should be shown" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "This key controls the behavior of the status icon. There are three options: \"always\" - the icon will always be present; \"client\" - the icon will only be present when someone is connected (this is the default behavior); \"never\" - the icon will not be present." +msgstr "This key controls the behavior of the status icon. There are three options: \"always\" - the icon will always be present; \"client\" - the icon will only be present when someone is connected (this is the default behavior); \"never\" - the icon will not be present." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Whether to disable the desktop background when a user is connected" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "When true, disable the desktop background and replace it with a single block of color when a user successfully connects." +msgstr "When true, disable the desktop background and replace it with a single block of color when a user successfully connects." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Whether a UPnP router should be used to forward and open ports" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "If true, request that a UPnP-capable router should forward and open the port used by Vino." +msgstr "If true, request that a UPnP-capable router should forward and open the port used by Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Whether we should disable the XDamage extension of X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, do not use the XDamage extension of X.org. This extension does not work properly on some video drivers when using 3D effects. Disabling it will make Vino work in these environments, with slower rendering as a side effect." +msgstr "If true, do not use the XDamage extension of X.org. This extension does not work properly on some video drivers when using 3D effects. Disabling it will make Vino work in these environments, with slower rendering as a side effect." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notify on connect" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "If true, show a notification when a user connects to the system." + +#: ../common/vino-keyring.c:54 +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "ססמה לשיתוף המסך לשליטה מרחוק" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "File is not a valid .desktop file" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Unrecognized desktop file Version '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Starting %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Application does not accept documents on command line" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Unrecognized launch option: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Can't pass document URIs to a 'Type=Link' desktop entry" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Not a launchable item" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Disable connection to session manager" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specify file containing saved configuration" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specify session management ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Session management options:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Show session management options" + +#: ../server/vino-main.c:202 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "השרת הגרפי (XServer) שלך אינו תומך בהרחבת XTest - הגישה לשולחן העבודה המרוחק תוגבל לצפייה בלבד\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "הפעלה במצב צינורית, עבור התכונה 'שיתוף שולחן העבודה שלי'" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC Server for GNOME" + +#: ../server/vino-main.c:315 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "Run 'vino-server --help' to see a full list of available command line options" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "שיתוף שולחנות עבודה של GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s's remote desktop on %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "התקבל האות %d, התכנה מסתיימת..." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "מסך" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "המסך שעליו יש להציג את הסמן־מנחה" + +#: ../server/vino-prompt.c:263 +#: ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Error initializing libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "המשתמש במחשב '%s' מנסה לצפות או לשלוט מרחוק בשולחן העבודה שלך." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "משתמש נוסף מנסה לצפות בשולחן העבודה שלך" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "לסרב" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "לקבל" + +#: ../server/vino-server.c:164 +#: ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Failed to open connection to bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "שרת שיתוף שולחנות עבודה של GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "שיתוף;מרוחק;מרחוק;" + +#: ../server/vino-status-icon.c:97 +#: ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "שיתוף שולחן העבודה מופעל" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "משתמש אחד צופה בשולחן העבודה שלך" +msgstr[1] "%d משתמשים צופים בשולחן העבודה שלך" + +#: ../server/vino-status-icon.c:208 +#: ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "שגיאה בהצגת ההעדפות" + +#: ../server/vino-status-icon.c:230 +#: ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "שגיאה בהצגת העזרה" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"יאיר הרשקוביץ <yairhr@gmail.com>\n" +"Yaron Shahrabani <sh.yaron@gmail.com>\n" +"\n" +"פרויקט תרגום GNOME לעברית:\n" +"http://gnome-il.berlios.de" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "שיתוף שולחן העבודה שלך עם משתמשים אחרים" + +#: ../server/vino-status-icon.c:351 +#: ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "האם אכן ברצונך לנתק את '%s'?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "המשתמש המרוחק מ־'%s' ינותק. האם להמשיך?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "האם אכן ברצונך לנתק את כל הלקוחות?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "כל המשתמשים המרוחקים ינותקו. האם להמשיך?" + +#: ../server/vino-status-icon.c:374 +#: ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "ניתוק" + +#: ../server/vino-status-icon.c:400 +#: ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "הע_דפות" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "ניתוק של כולם" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 +#: ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "ניתוק %s" + +#: ../server/vino-status-icon.c:460 +#: ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ע_זרה" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "על _אודות" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "משתמש אחר צופה בשולחן העבודה שלך" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "המשתמש במחשב '%s' צופה מרחוק בשולחן העבודה שלך." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "משתמש אחר שולט בשולחן העבודה שלך" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "המשתמש במחשב '%s' שולט מרחוק בשולחן העבודה שלך." + +#: ../server/vino-status-icon.c:651 +#: ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Error while displaying notification bubble: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "המשתמש המרוחק '%s' ינותק. האם להמשיך?" + +#: ../server/vino-tube-server.c:220 +#: ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "שיתוף פרטים על אודות שולחן העבודה שלי" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "המשתמש '%s' דחה את ההזמנה לשיתוף שולחן העבודה." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' נותק" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' שולט מרחוק בשולחן העבודה שלך." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "ממתין ל־'%s' כדי שיתחבר למסך." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "הס_כמה" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_סירוב" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ארעה שגיאה:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "בוטל" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "ERROR: Maximum length of password is %d character. Please, re-enter the password." +msgid_plural "ERROR: Maximum length of password is %d characters. Please, re-enter the password." +msgstr[0] "שגיאה: אורך הססמה המרבי הוא תו אחד. נא להזין את הססמה מחדש." +msgstr[1] "שגיאה: אורך הססמה המרבי הוא %d תווים. נא להזין את הססמה מחדש." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Changing Vino password.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Enter new Vino password: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Retype new Vino password: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: password updated successfully.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Sorry, passwords do not match.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: password unchanged.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Show Vino version" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Updates Vino password" + +#: ../tools/vino-passwd.c:201 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Run 'vino-passwd --help' to see a full list of available command line options" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO Version %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: You do not have enough permissions to change Vino password.\n" + +#~ msgid "Question" +#~ msgstr "שאלה" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "משתמש העובד במחשב אחר מנסה לצפות או לשלוט מרחוק בשולחן העבודה שלך." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "האם ברצונך לאפשר להם לעשות זאת?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." + +#~ msgid "Remote Desktop" +#~ msgstr "שולחן עבודה מרוחק" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Enable remote desktop access" + +#~ msgid "Al_ways display an icon" +#~ msgstr "תמיד לה_ציג סמל" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "ה_גדרת הרשת לקבלת חיבורים באופן אוטומטי" + +#~ msgid "_Never display an icon" +#~ msgstr "לעולם ל_א להציג סמל" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "יש להציג סמל רק _כאשר מישהו מחובר" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "שולחן עבודה מרוחק" + +#~ msgid "_Send address by email" +#~ msgstr "_שלח כתובת בדוא\"ל" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "ה_עתק את הכתובת ללוח הגזירים" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "הגודל המירבי: 8 תווים" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "אתה תשאל האם לאשר או לסרב כל חיבור נכנס" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Remote Desktop server already running; exiting ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" + +#~ msgid "Error message:" +#~ msgstr "Error message:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Out of memory handling '%s' message" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Out of memory registering object path '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Failed to acquire D-Bus name '%s'\n" + +#~ msgid "All" +#~ msgstr "כולם" + +#~ msgid "The service is not running" +#~ msgstr "השירות אינו רץ" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "קבע את אפשרויות הגישה לשולחן העבודה המרוחק" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>רשת</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "עליו ל_בקש את אישורך" + +#~ msgid "Advanced" +#~ msgstr "מתקדם" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "החבא את _רקע שולחן העבודה כאשר מחובר" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "החבא את _רקע שולחן העבודה כאשר מחובר בהצלחה" + +#~ msgid "General" +#~ msgstr "כללי" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "משתמשים מרוחקים שניגשים לשולחן העבודה נדרשים לתמוך בהצפנה" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "הנסך ינעל לאחר התנתקות המשתמש המרוחק האחרון" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "השרת ישתמש בשער שונה, במקום שער ברירת המחדל (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "משתמשים יכולים לצפות בשולחן העבודה שלך על ידי שימוש בפקודה:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "כאשר משתמש מנסה לצפות או לשלוט בשולחן העבודה שלך:" + +#~ msgid "Which network interface we should listen to." +#~ msgstr "לאילו מנשקי רשת יש להאזין." + +#~ msgid "_Listen this interface:" +#~ msgstr "ה_אזן למנשק זה:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_נעל את המסך בהתנתקות" + +#~ msgid "_Password:" +#~ msgstr "_סיסמה:" + +#~ msgid "_Require encryption" +#~ msgstr "_דרוש הצפנה" + +#~ msgid "_Use an alternative port:" +#~ msgstr "ה_שתמש בשער שונה" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "השרת יקבל חיבורים מקומיים בלבד" + +#~ msgid "_Only allow local connections" +#~ msgstr "הרשה חיבורים _מקומיים בלבד" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Only allow local connections" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Remote desktop server died, restarting\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Activation of %s failed: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Activation of %s failed: Unknown Error\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "Failed to activate remote desktop server: tried too many times\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Starting remote desktop server" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Not starting remote desktop server" diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..45d6ef9 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,895 @@ +# translation of vino.master.po to Hindi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Rajesh Ranjan <rranjan@redhat.com>, 2005, 2006. +# Rajesh Ranjan <rajesh672@gmail.com>, 2009, 2013. +# chandankumar(ciypro) <chandankumar.093047@gmail.com>, 2012. +msgid "" +msgstr "" +"Project-Id-Version: vino.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-21 15:17+0530\n" +"Last-Translator: raj <raj>\n" +"Language-Team: Hindi <kde-i18n-doc@kde.org>\n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-DamnedLies-Scope: partial\n" +"X-Generator: Lokalize 1.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" दिखाने में त्रुटि थी" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"सहायता दिखाने में गलती हुई थी:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "इस मशीन का कनेक्शन जाँच रहा है..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "आपका डेस्कटॉप केवल स्थानीय संजाल पर पहुँच योग्य है." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " या " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "दूसरे आपके कंप्यूटर की पहुँच %s पता के प्रयोग से कर सकते हैं." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "कोई भी आपके डेस्कटॉप की पहुँच नहीं ले सकता है." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "डेस्कटॉप साझेदारी" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"चुनें कि कैसे दूसरे उपयोक्ता आपके डेस्कटॉप को दूरस्थ रूप से देख सकते हैं" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "डेस्कटॉप साझा प्राथमिकताएँ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "साझेदारी" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "इनमें से कुछ वरीयतायें लॉक हैं" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "आपके डेस्कटॉप देखने के लिये अन्य उपयोक्ता को अनुमति दें (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "आपका डेस्कटॉप साझा किया जाएगा" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "अपने डेस्कटॉप का नियंत्रण दूसरे उपयोक्ता को दें (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "दूरस्थ उपयोक्ता आपके माउस और कुंजीपट का प्रयोग करने में समर्थ हैं" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "सुरक्षा" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "आपको इस मशीन को हर पहुँच को संपुष्ट करना चाहिए (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "इस शब्दकूट को उपयोक्ता द्वारा डालने की जरूरत है (_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"स्वचालित रूप से UPnP रूटर खोलने और पोर्ट को अग्रेषित करने के लिए कॉन्फ़िगर " +"(_c) करे " + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "रॉटर में UPnP फीचर सक्रिय होना चाहिए" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "अधिसूचना क्षेत्र आइकन दिखायें" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "हमेशा (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "केवल (_O) जब कोई जुड़ा हुआ है" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "कभी नहीं (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "डेस्कटॉप में दूरस्थ पहुंच सक्रिय करें" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"अगर सही है, RFB प्रोटोकॉल के द्वारा डेस्कटॉप में दूरस्थ पहुंच की अनुमति देता " +"है. दूरस्थ मशीन " +"पर उपयोक्ता डेस्कटॉप से VNC viewer के प्रयोग से जुड़ सकते हैं." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "संबंधन समाप्त करने के पहले उपयोक्ता के लिये संकेत" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"अगर सही है, डेस्कटॉप तक पहुंच रखने वाला दूरस्थ उपयोक्ता को पहुंच की अमुमति " +"नहीं है जबतक कि " +"मेजबान मशीन पर उपयोक्ता संबंधन की स्वीकृति देता है. खासकर अनुशंसित जब पहुंच " +"शब्दकूट संरक्षित " +"नहीं है." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "डेस्कटॉप देखने के लिये दूरस्थ उपयोक्ता को अनुमति दें" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"अगर सही है, डेस्कटॉप का पहुंच रखने वाला दूरस्थ उपयोक्ता डेस्कटॉप को ही सिर्फ " +"देखने की " +"अनुमति रखता है. दूरस्थ उपयोक्ता माउस या कुंजीपट का उपयोग करने में समर्थ नहीं " +"होगा." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "सुनने के लिए संजाल अंतरफलक" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"यदि सेट नहीं है, सर्वर सभी संजाल अंतरफलक पर सुनेगा. \n" +"\n" +"इसे सेट करें यदि आप कनेक्शन को स्वीकार करते हैं कुछ खास संजाल अंतरफलक से ही. " +"उदा: eth0, " +"wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "वैकल्पिक पोर्ट पर सुनें" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"यदि सही है, सर्वर दूसरे पोर्ट की सुनेगा, तयशुदा (5900) के बनिस्पत. पोर्ट को " +"जरूर " +"'alternative-port' कुंजी में निर्दिष्ट होना चाहिए." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "वैकल्पिक पोर्ट संख्या" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"पोर्ट जिसको सर्वर सुनेगा यदि 'use-alternative-port' कुंजी को सही पर सेट किया " +"गया है. " +"वैध मान 5000 से 50000 के बीच के परिसर में है." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "गोपन जरूरी" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"अगर सही है, डेस्कटॉप की पहुंच रखने वाला दूरस्थ उपयोक्ता को गोपन को समर्थ देने " +"की जरूरत है. " +"इसकी जोरदार अनुशंसा की जाती है कि आप एक क्लाइंट का प्रयोग करें जो गोपन का " +"समर्थन करती " +"है जबतक कि व्यवधानकारी संजाल विश्वसनीय है." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "प्रमाणीकरण विधि को अनुमति दें" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"सत्यापन विधि की सूची देता है जिससे दूरस्थ उपयोक्ता डेस्कटॉप की पहुंच रख सकते " +"हैं. \n" +"\n" +"दो संभव सत्यापन विधि है; \"vnc\" दूरस्थ उपयोक्ता को एख कूटशब्द के लिये " +"प्रांप्ट करता है " +"(कूटशब्दvnc-password कुंजी के द्वारा निर्दिष्ट कूटशब्द) संबंधन के पहले और " +"\"कोई नहीं\" जो " +"किसी दूरस्थ उपयोक्ता को संबंधन के लिये अनुमति देता है." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" सत्यापन के लिये जरूरी शब्दकूट" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"शब्दकूट जिसके लिये दूरस्थ उपयोक्ता प्रांप्ट किया जायेगा अगर \"vnc\" सत्यापन " +"विधि प्रयुक्त " +"होती है. कुंजी द्वारा निर्दिष्ट शब्दकूट base64 एनकोडेड है.कुंजी द्वारा " +"निर्दिष्ट शब्दकूट " +"base64 एन्कोडेड है. \n" +"\n" +"'keyring' (base64 जो मान्य नहीं है) की विशेष मान का मतलब है कि पासवर्ड GNOME " +"कीरिंग " +"में संग्रहीत है." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ईमेल पता जिसमें दूरस्थ डेस्कटॉप URL को भेजा जाना है" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"यह कुंजी उन ईमेल पता को निर्दिष्ट करता है जिसमें दूरस्थ डेस्कटॉप URL भेजा " +"जाना चाहिये अगर " +"उपयोक्ता URL पर डेस्कटॉप साझा वरीयता संवाद में क्लिक करता है." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "अंतिम उपयोक्ता के डिसकनेक्ट होने पर स्क्रीन लॉक करें" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"यदि सही है, स्क्रीन को बंद कर दिया जाएगा अंतिम दूरस्थ क्लाइंट का कनेक्शन टूट " +"जाता है." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "कब स्थिति प्रतीक दिखना चाहिए" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"कुंजी स्थिति प्रतीक के आचरण को नियंत्रित करता है. तीन विकल्प हैं: \"always\" " +"- प्रतीक " +"हमेशा वहाँ रहेगा; \"client\" - आप प्रतीक को केवल पाएंगे जब कोई कनेक्टेड है " +"(यह तयशुदा " +"आचरण है); \"never\" - कभी इस प्रतीक को मत दिखाएँ." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "जब उपयोक्ता कनेक्टेड है तो क्या डेस्कटॉप पृष्ठभूमि निष्क्रिय करना है" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"जब सही है,डेस्कटॉप पृष्ठभूमि को निष्क्रिय करें और रंग के एकल ब्लॉक से बदलें " +"जब उपयोक्ता सफलतापूर्वक कनेक्ट होता है." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"क्या किसी UPnP रॉटर को पोर्ट को अग्रेषित करने या खोलने के लिए प्रयोग किया " +"जाना चाहिए" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"यदि सही है, आग्रह करें कि UPnP-सक्षम रॉटर वीनो के द्वारा प्रयुक्त पोर्ट को " +"खोलने और अग्रेषित करेगा." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "क्या हमें X.org के XDamage विस्तार को निष्क्रिय करना चाहिए" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"यदि सही है, X.org के XDamage विस्तार का प्रयोग नहीं करें. यह विस्तार कुछ " +"वीडियो " +"ड्राइवर पर ठीक से काम नहीं करेगा जब 3D प्रभाव का प्रयोग किया जाता है. इसे " +"निष्क्रिय " +"करना वीनो को कार्य करने लायक बनाएगा साइड इफेक्ट के रूप में धीमे रेंडरिंग के " +"साथ." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "कनेक्ट करने पर सूचित करें" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "अगर सही है, सूचित करें, जब उपयोक्ता प्रणाली में जुड़ता है." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "दूरस्थ डेस्कटॉप साझा कूटशब्द" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "फ़ाइल वैध .desktop फ़ाइल नहीं है" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "अपरिचित डेस्कटॉप फ़ाइल संस्करण '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "चालू %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "कमांड लाइन पर अनुप्रयोग दस्तावेज़ स्वीकार नहीं करता है" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "अपरिचित लॉन्च विकल्प: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "दस्तावेज़ URI को 'Type=Link' डेस्कटॉप प्रविष्टि में भेज नहीं सकता है" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "चलाने योग्य प्रोग्राम नहीं है" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "सत्र प्रबंधक में संबंधन निष्क्रिय करें" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "सहेजा विन्यास समाहित करता फ़ाइल निर्दिष्ट करें" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "फ़ाइल" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "सत्र प्रबंधन ID निर्दिष्ट करें" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "सत्र प्रबंधन विकल्प:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "दिखाएँ सत्र प्रबंधन विकल्प" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"आपका XServer XTest विस्तार का समर्थन नहीं करता - दूरस्थ डेस्कटॉप पहुंच सिर्फ " +"देखा " +"जायेगा\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"ट्यूब मोड में प्रारंभ करें 'अपने डेस्कटॉप को साझा करें' सुविधा के लिए," + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC सर्वर गनोम के लिए" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "'vino-server --help' चलाएँ कमांड लाइन विकल्प की पूरी सूची देखने के लिए" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME डेस्कटॉप साझेदारी" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s का दूरस्थ डेस्कटॉप %s पर" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "संकेत %d पा रहा है, बाहर निकल रहा है." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "स्क्रीन" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "स्क्रीन जिसपर प्रांप्ट डिसप्ले किया जाना है" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify आरंभ करने में त्रुटि\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' कंप्यूटर पर एक उपयोक्ता आपके डेस्कटॉप को दूरस्थ रूप से देखना या " +"नियंत्रित करना चाहता " +"है." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "अन्य उपयोक्ता आपके डेस्कटॉप को देखने की कोशिश कर रहा है." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "ठुकराएँ" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "स्वीकारें" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "बस में कनेक्शन खोलने में विफल: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME डेस्कटॉप साझेदारी सर्वर" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "डेस्कटॉप साझा करना सक्रिय है" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "अन्य उपयोक्ता आपका डेस्कटॉप देख रहा है" +msgstr[1] "%d उपयोक्ता आपका डेस्कटॉप देख रहा है" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "वरीयता दिखाने में त्रुटि" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "सहायता दिखाने में गलती हुई थी" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU जनरल पब्लिक लाइसेंस संस्करण 2 के अंतर्गत लाइसेंसप्रदत्त\n" +"\n" +"Vino फ्री सॉफ्टवेयर है; आप इसे पुनर्वितरित कर सकते हैं और/या\n" +"इसे GNU जनरल पब्लिक लाइसेंस के शर्त के अधीन रूपांतरित कर सकते हैं\n" +"जैसा कि फ्री सॉफ्टवेयर फाउंडेशन के द्वारा प्रकाशित किया गया है; या तो लाइसेंस " +"का संस्करण " +"2\n" +"या कोई पश्चातवर्ती संस्करण (आपके विकल्प अनुसार).\n" +"\n" +"Vino प्रोग्राम को इस आशा से वितरित किया गया है कि यह उपयोगी होगा,\n" +"लेकिन बिना किसी वारंटी के; यहां तक कि बिना किसी मर्केंटेबिलिटी या खास " +"उद्देश्य\n" +"के लिए फिटनेस की वारंटी के. GNU जनरल पब्लिक लाइसेंस\n" +"को अधिक विस्तार के लिए देखें.\n" +"\n" +"आपको GNU जनरल पब्लिक लाइसेंस की एक कॉपी इस\n" +"प्रोग्राम के साथ प्राप्त करनी चाहिए; यदि नहीं, Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" +"MA 02110-1301, USA को लिखें.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "जी करुणाकर, <karunakar@indlinux.org>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "अपना डेस्कटॉप दूसरों के साथ साझा करें" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "क्या आप '%s' को डिसकनेक्ट करना चाहते हैं?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' से रिमोट प्रयोक्ता डिसकनेक्टेड किया जायेगा. क्या आप निश्चित करें?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "क्या आप सभी क्लाइंट को विसंबंधित करना चाहते हैं?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "सभी रिमोट प्रयोक्ता विसंबंधित किए जाएंगे. क्या आप निश्चित हैं?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "डिसकनेक्ट करें" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "वरीयताएँ" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "सभी विसंबंधित करें" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s विसंबंधित करें" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "सहायता (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "के बारे में (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "अन्य उपयोक्ता आपका डेस्कटॉप देख रहा है" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"'%s' कंप्यूटर पर एक उपयोक्ता आपके डेस्कटॉप को दूरस्थ रूप से देख रहा है." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "आपके डेस्कटॉप को दूसरा उपयोक्ता नियंत्रित कर रहा है" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' कंप्यूटर पर एक उपयोक्ता आपके डेस्कटॉप को दूरस्थ रूप से नियंत्रित कर रहा " +"है." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "अधिसूचना बबल दिखाने के दौरान त्रुटि: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "दूरस्थ उपयोक्ता '%s' डिसकनेक्टेड किया जाएगा. क्या आप निश्चित हैं?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "मेरे डेस्कटॉप की सूचना साझा करें" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' ने डेस्कटॉप साझा करने का आमंत्रण अस्वीकार कर दिया." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' डिसकनेक्डेट" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' आपके डेस्कटॉप को दूरस्थ रूप से नियंत्रित कर रहा है." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' के लिए प्रतीक्षारत स्क्रीन पर कनेक्ट करने के लिए." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "अनुमति दें (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "ठुकरायें (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "एक त्रुटि हुई:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "रद्द किया" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"त्रुटि: कूटशब्द की अधिकतम लंबाई %d वर्ण है. कृपया कूटशब्द फिर दाखिल करें." +msgstr[1] "" +"त्रुटि: कूटशब्द की अधिकतम लंबाई %d वर्णों की है. कृपया कूटशब्द फिर दाखिल करें." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "विनो कूटशब्द बदल रहा है.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "नया वीनो कूटशब्द दाखिल करें: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "नया वीनो कूटशब्द फिर टाइप करें: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: कूटशब्द सफलतापूर्वक अद्यतन.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "माफ करें, कूटशब्द मेल नहीं खाता है.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: कूटशब्द अपरिवर्तित.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "वीनो संस्करण दिखाएँ" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- वीनो कूटशब्द अद्यतन करता है" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"'vino-passwd --help' चलाएँ उपलब्ध कमांड लाइन विकल्प की पूरी सूची के लिए" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO संस्करण %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "त्रुटि: आपके पास वीनो कूटशब्द बदलने के लिए पर्याप्त अनुमति नहीं है.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "यदि सही है, हम UPNP प्रोटोकॉल का प्रयोग करेंगे वीनो के द्वारा रॉटर में पोर्ट को स्वतः " +#~ "अग्रेषित करने के लिए." + +#~ msgid "Question" +#~ msgstr "प्रश्न" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "एक उपयोक्ता या अन्य कंप्यूटर आपके टेस्कटॉप को दूरस्थ रूप से देखना व नियंत्रित करना चाहता " +#~ "है." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "क्या आप उनको ऐसा करने की अनुमति देंगे?" + +#~ msgid "_Send address by email" +#~ msgstr "ईडाक से पता भेजें (_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "पता क्लिपबोर्ड पर नकल करें (_C)" + +#~ msgid "Remote Desktop" +#~ msgstr "दूरस्थ डेस्कटॉप" + +#~ msgid "Al_ways display an icon" +#~ msgstr "हमेशा प्रतीक दिखाएँ (_w)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "अधिक्तम आकार: 8 अक्षर" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "आप हर आगत कनेक्शन को स्वीकार करने या अस्वीकार करने के लिए पूछा जाएगा" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "कनेक्शन स्वीकार करने के लिए संजाल को स्वतः विन्यस्त करें (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "कभी प्रतीक मत दिखाएं (_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "केवल कोई प्रतीक दिखाएँ जब कोई कनेक्डेट है (_O)" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "दूरस्थ डेस्कटॉप सर्वर पहले से चल रहा है; निकल रहा है ...\n" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "गनोम दूरस्थ डेस्कटॉप" + +#~ msgid "Enable remote desktop access" +#~ msgstr "दूरस्थ डेस्कटॉप पहुंच सक्रिय करें" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "GConf के साथ संचार करने के दौरान त्रुटि. क्या आप गनोम सत्र में लॉगिन हैं?" + +#~ msgid "Error message:" +#~ msgstr "त्रुटि संदेश:" diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..ece2e63 --- /dev/null +++ b/po/hr.po @@ -0,0 +1,651 @@ +# Croatian translation for vino +# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007 +# This file is distributed under the same license as the vino package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-09 18:57+0200\n" +"PO-Revision-Date: 2007-10-02 20:49+0000\n" +"Last-Translator: Ante Karamatić <ivoks@grad.hr>\n" +"Language-Team: Croatian <hr@li.org>\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2008-05-28 13:27+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../capplet/vino-preferences.c:1097 ../capplet/vino-preferences.c:1132 +#: ../capplet/vino-preferences.c:1190 ../server/vino-dbus-listener.c:374 +#: ../server/vino-server.c:151 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Greška pri otvaranju veze prema sabirnici: %s\n" + +#: ../capplet/vino-preferences.c:1399 +msgid "Send this command by email" +msgstr "Pošalji ovu naredbu putem e-pošte" + +#: ../capplet/vino-preferences.c:1437 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Došlo je do greške prilikom pokazivanja pomoći:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Udaljena radna površina" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Postavke udaljene radne površine" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Network</b>" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Notification Area</b>" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "<b>Security</b>" +msgstr "<b>Sigurnost</b>" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Sharing</b>" +msgstr "<b>Dijeljenje</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "A_sk you for confirmation" +msgstr "_Upitaj za potvrdu" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Advanced" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Al_ways display an icon" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Allow other users to _view your desktop" +msgstr "_Dozvoli drugim korisnicima pogled na radnu površinu" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Disable the _wallpaper when connected" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Disable the wallpaper when successfull connection" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "General" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "Remote Desktop Preferences" +msgstr "Postavke udaljene radne površine" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:14 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:15 +msgid "" +"Remote users' VNC clients accessing the desktop are required to support " +"encryption" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:16 +#, fuzzy +msgid "Screen will be locked after the last remote client disconnect" +msgstr "" +"Ako je postavljeno, zaslon će se zaključati nakon što se posljednji udaljeni " +"korisnik odspoji sa radne površine." + +#: ../capplet/vino-preferences.glade.h:17 +msgid "Some of these preferences are locked down" +msgstr "Neke su postavke zaključane" + +#: ../capplet/vino-preferences.glade.h:18 +msgid "The server will only accept connections from localhost" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:19 +#, fuzzy +msgid "The server will use another port, instead of the default (5900)" +msgstr "" +"Ako je postavljeno, poslužitelj će slušati na drugom portu, umjesto " +"uobičajenog (5900). Port mora biti određen 'alternative_port' ključem." + +#: ../capplet/vino-preferences.glade.h:20 +msgid "Users can view your desktop using this command:" +msgstr "Korisnici se mogu spojiti na vašu radnu površinu putem naredbe:" + +#: ../capplet/vino-preferences.glade.h:21 +msgid "When a user tries to view or control your desktop:" +msgstr "Kada korisnik pokuša vidjeti ili kontrolirati vašu radnu površinu:" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:23 +#, fuzzy +msgid "Your desktop will be shared" +msgstr "Podijelite svoju radnu površinu s drugim korisnicima" + +#: ../capplet/vino-preferences.glade.h:24 +msgid "_Allow other users to control your desktop" +msgstr "_Dozvoli drugim korisnicima kontrolu moje radne površine" + +#: ../capplet/vino-preferences.glade.h:25 +msgid "_Lock screen on disconnect" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:26 +msgid "_Never display an icon" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:27 +msgid "_Only allow local connections" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:28 +msgid "_Only display an icon when there is someone connected" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:29 +msgid "_Password:" +msgstr "_Lozinka:" + +#: ../capplet/vino-preferences.glade.h:30 +msgid "_Require encryption" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:31 +msgid "_Require the user to enter this password:" +msgstr "_Zahtijevaj od korisnika ovu lozinku:" + +#: ../capplet/vino-preferences.glade.h:32 +msgid "_Use an alternative port:" +msgstr "" + +#: ../server/vino-dbus-listener.c:188 ../server/vino-dbus-listener.c:218 +#: ../server/vino-dbus-listener.c:249 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr "Probijanje memorije prilikom obrađivanja '%s' poruke" + +#: ../server/vino-dbus-listener.c:334 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "Probijanje memorije prilikom registracije putanje objeka '%s'" + +#: ../server/vino-dbus-listener.c:411 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "Neuspjeh pri dohvaćanju D-Bus imena '%s'\n" + +#: ../server/vino-dbus-listener.c:419 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Poslužitelj udaljene radne površine je već pokrenut: izlaz...\n" + +#: ../server/vino-main.c:89 +msgid "GNOME Remote Desktop" +msgstr "GNOME udaljena radna površina" + +#: ../server/vino-main.c:99 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Vaš XServer ne podržava XTest ekstenziju - udaljeni pristup raditi će samo u " +"neinteraktivnom načinu rada\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "itdoes" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Udaljena radna površina korisnika %s na %s" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "Zaslon" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "Zaslon na kojem će biti prikazan naredbeni redak" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Korisnik na računalu '%s' pokušava udaljeno pratiti ili kontrolirati vašu " +"radnu površinu." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Drugi korisnik pokušava vidjeti vašu radnu površinu.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Korisnik na drugom računalu pokušava udaljeno vidjeti ili kontrolirati vašu " +"radnu površinu." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Želite li mu to omogućiti?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Pitanje" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "_Dozvoli" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "_Odbij" + +#: ../server/vino-server.desktop.in.in.h:1 +#, fuzzy +msgid "GNOME Remote Desktop Server" +msgstr "GNOME udaljena radna površina" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Dozvoljeni načini autentikacije" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Alternativni port" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-mail adresa na koju će biti poslan URL udaljenog pristupa radnoj površini" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Omogući udaljeni pristup radnoj površini" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Ako je omogućeno, omogućava pristup putem RFB protokola. Korisnici na " +"udaljenim računalima mogu se spojiti putem vncviewer programa." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ako je postavljeno, korisnici koji pristupaju radnoj površini morati će " +"prethodno dobiti dopuštenje korisnika radne površine. Preporuča se ukoliko " +"se ne koristi zaštita lozinkom." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ako je postavljeno, udaljeni korisnici će moći samo vidljeti radnu površinu, " +"te neće moći koristiti miša i tipkovnicu." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ako je postavljeno, od udaljenih će se korisinika tražiti uporaba " +"kriptiranog protokola. Preporuča se uporaba programa koji mogu koristiti " +"kriptirani protokol, osim u slučaju kada se nalazite u sigurnoj mreži/" + +#: ../server/vino-server.schemas.in.h:9 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"Ako je postavljeno, zaslon će se zaključati nakon što se posljednji udaljeni " +"korisnik odspoji sa radne površine." + +#: ../server/vino-server.schemas.in.h:10 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"Ako je postavljeno, poslužitelj će slušati na drugom portu, umjesto " +"uobičajenog (5900). Port mora biti određen 'alternative_port' ključem." + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will only accept connections from localhost and network " +"connections will be rejected. Set this option to true if you wish to " +"exclusively use a tunneling mechanism to access the server, such as ssh." +msgstr "" +"Ako je postavljeno, poslužitelj će primati veze samo za lokalnog računala, a " +"veze sa mreže će biti odbijene. Postavite ovu opciju ako želite tunelirati " +"vezu putem drugih mehanizama, poput ssh-a." + +#: ../server/vino-server.schemas.in.h:12 +msgid "Listen an alternative port" +msgstr "Slušaj na alternativnom portu" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Lock the screen when last user disconnect" +msgstr "Zaključaj zaslon kada zadnji korisnik prekine vezu" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Only allow local connections" +msgstr "Dozvoli samo lokalne veze" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Only allow remote users to view the desktop" +msgstr "Dozvoli pogled na radnu površinu samo udaljenim korisnicima" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Password required for \"vnc\" authentication" +msgstr "Potrebna je lozinka za \"vnc\" autentikaciju" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Prompt the user before completing a connection" +msgstr "Obavijesti korisnika prije uspostavljanja veze" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Require encryption" +msgstr "Kriptirani protokol je obavezan" + +#: ../server/vino-server.schemas.in.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Lozinka koja će biti zatražena od korisnika ako je postavljen \"vnc\" način " +"autentikacije. Definirana lozinka je base64 kodirana." + +#: ../server/vino-server.schemas.in.h:21 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"Port na kojem će poslužitelj slušati ako je 'use_alternate_port' ključ " +"postavljen. Ispravne su vrijednosti između 5000 i 50000." + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Ovaj ključ određuje adresu e-pošte na koju će biti poslan URL udaljene radne " +"površine ako korisnik klikne na URL u postavkama udaljene radne površine." + +#: ../server/vino-server.schemas.in.h:24 +msgid "When the status icon should be shown" +msgstr "" + +#: ../server/vino-server.schemas.in.h:25 +msgid "When true, disable the background on receive valid session" +msgstr "" + +#: ../server/vino-status-icon.c:102 +msgid "Desktop sharing is enabled" +msgstr "" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "%d je osoba povezana" +msgstr[1] "%d osobe su povezane" +msgstr[2] "%d osoba je povezano" + +#: ../server/vino-status-icon.c:245 +#, c-format +msgid "" +"There was an error displaying preferences:\n" +" %s" +msgstr "" +"Došlo je do greške prilikom prikazivanja postavki:\n" +" %s" + +#: ../server/vino-status-icon.c:253 +#, c-format +msgid "" +"There was an error displaying help:\n" +" %s" +msgstr "" +"Došlo je do greške prilikom prikazivanja pomoći:\n" +" %s" + +#: ../server/vino-status-icon.c:276 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:291 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Ante Karamatić https://launchpad.net/~ivoks" + +#: ../server/vino-status-icon.c:297 +msgid "Share your desktop with other users" +msgstr "Podijelite svoju radnu površinu s drugim korisnicima" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:361 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Jeste li sigurni da želite prekinuti vezu s '%s'?" + +#: ../server/vino-status-icon.c:363 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Udaljeni korisnik s '%s' će biti odspojen. Jeste li sigurni?" + +#: ../server/vino-status-icon.c:368 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Jeste li sigurni da želite prekinuti vezu sa svim klijentima?" + +#: ../server/vino-status-icon.c:369 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Svi udaljeni korisnici biti će odspojeni. Jeste li sigurni?" + +#: ../server/vino-status-icon.c:381 +msgid "Disconnect" +msgstr "Prekini vezu" + +#: ../server/vino-status-icon.c:407 +msgid "_Preferences" +msgstr "_Postavke" + +#: ../server/vino-status-icon.c:422 +msgid "Disconnect all" +msgstr "Prekini vezu sa svima" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:446 +#, c-format +msgid "Disconnect %s" +msgstr "Prekini vezu s %s" + +#: ../server/vino-status-icon.c:466 +msgid "_Help" +msgstr "_Pomoć" + +#: ../server/vino-status-icon.c:474 +msgid "_About" +msgstr "_O programu..." + +#: ../server/vino-status-icon.c:603 +msgid "Error initializing libnotify\n" +msgstr "Greška pri učitavanju libnotify\n" + +#: ../server/vino-status-icon.c:623 +msgid "Another user is viewing your desktop" +msgstr "Drugi korisnik prati vašu radnu površinu" + +#: ../server/vino-status-icon.c:624 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Korisnik na računalu '%s' udaljeno prati vašu radnu površinu." + +#: ../server/vino-status-icon.c:629 +msgid "Another user is controlling your desktop" +msgstr "Drugi korisnik kontrolira vašu radnu površinu" + +#: ../server/vino-status-icon.c:630 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Korisnik na računalu '%s' udaljeno kontrolira vašu radnu površinu." + +#: ../server/vino-status-icon.c:652 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Greška pri prikazivanju obavijesti: %s\n" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password.\n" +msgstr "" + +#: ../tools/vino-passwd.c:145 +msgid "Changing Vino password.\n" +msgstr "" + +#: ../tools/vino-passwd.c:147 +msgid "Enter new Vino password: " +msgstr "" + +#: ../tools/vino-passwd.c:150 +msgid "Retype new Vino password: " +msgstr "" + +#: ../tools/vino-passwd.c:156 +msgid "vino-passwd: password updated successfully.\n" +msgstr "" + +#: ../tools/vino-passwd.c:160 +msgid "Sorry, passwords do not match.\n" +msgstr "" + +#: ../tools/vino-passwd.c:161 +msgid "vino-passwd: password unchanged.\n" +msgstr "" + +#: ../tools/vino-passwd.c:176 +msgid "Show Vino version" +msgstr "" + +#: ../tools/vino-passwd.c:185 +msgid "- Updates Vino password" +msgstr "" + +#: ../tools/vino-passwd.c:195 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" + +#: ../tools/vino-passwd.c:202 +#, c-format +msgid "VINO Version %s\n" +msgstr "" + +#: ../tools/vino-passwd.c:211 +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Pojavio se problem prilikom registracije poslužitelja u bonobo-" +#~ "activation; izlaz...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Poslužitelj udaljene radne površine se srušio, pokrećem ponovno\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Aktivacija '%s' nije uspjela: '%s'\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Aktivacija '%s' nije uspjela: Greška nepoznata\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Neuspjelo aktiviranje poslužitelja udaljene radne površine: pokušano " +#~ "previše puta\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Pokretanje poslužitelja udaljene radne površine" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Poslužitelj udaljene radne površine neće biti pokrenut" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..29a9d2f --- /dev/null +++ b/po/hu.po @@ -0,0 +1,856 @@ +# Hungarian translation of vino. +# Copyright (C) 2004, 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# Gabor Kelemen <kelemeng at gnome dot hu>, 2004, 2005, 2007, 2008, 2009, 2011, 2012. +# Nyitrai István <sianis at gmail dot com>, 2008. +# Balázs Úr <urbalazs at gmail dot com>, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-15 11:29+0100\n" +"Last-Translator: Balázs Úr <urbalazs at gmail dot com>\n" +"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Hiba történt az URL („%s”) megjelenítése közben" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Hiba történt a súgó megjelenítése közben:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Ezen gép elérhetőségének ellenőrzése…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "A számítógépe csak a helyi hálózatról érhető el." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " vagy " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "A következő címen érhető el a számítógépe: %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Senki nem érheti el a számítógépét." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Asztal megosztása" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Távoli asztal elérésének beállításai" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Asztalmegosztás beállításai" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Megosztás" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Ezen beállítások közül néhány zárolva van" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Más felhasználók _láthatják az asztalát" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Az asztal megosztásra kerül" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Más _felhasználók irányíthatják az asztalát" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "A távoli felhasználók képesek irányítani az egeret és a billentyűzetet" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Biztonság" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Meg kell _erősítenie minden kapcsolódást a számítógéphez" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "A felhasználónak meg kell adnia ezt a _jelszót:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_UPnP router automatikus beállítása portok megnyitására és továbbítására" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "A routeren engedélyezni kell az UPnP szolgáltatást" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Értesítésiterület-ikon megjelenítése" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "Min_dig" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Csak ha valaki csatlakozott" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "S_oha" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Távoli asztalelérés engedélyezése" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Engedélyezi-e az asztalhoz való hozzáférést RFB protokollon keresztül? Ekkor " +"távoli gépek felhasználói egy VNC-megjelenítő programmal kapcsolódhatnak az " +"asztalához." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Kapcsolat befejezése előtt a felhasználó figyelmeztetése" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ha ez igazra van állítva, akkor a távoli felhasználók hozzáférése az " +"asztalhoz nem engedélyezett, amíg a kiszolgáló gép felhasználója nem hagyja " +"azt jóvá. Különösen akkor javasolt, ha a hozzáférés nincs jelszóval védve." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "A távoli felhasználók csak megnézhetik az asztalt" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ha ez igazra van állítva, akkor az asztalhoz kapcsolódó távoli " +"felhasználóknak csak az asztal megnézése engedélyezett. A távoli " +"felhasználók nem lesznek képesek az egeret vagy a billentyűzetet használni." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Figyelendő hálózati csatoló" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ha nincs beállítva, a kiszolgáló minden hálózati csatolót figyelni fog.\n" +"\n" +"Állítsa be azokat a hálózati csatolókat, amelyekről el kívánja fogadni a " +"kapcsolatokat, például eth0, wifi0, lo és így tovább." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Figyelés alternatív porton" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ha ez igazra van állítva, akkor a kiszolgáló másik portot fog figyelni az " +"alapértelmezett (5900) helyett. A portot az alternative-port kulcsban kell " +"megadni." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternatív portszám" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Az a port, amelyet a kiszolgáló figyelni fog, ha a use-alternative-port " +"kulcs igazra van állítva. Az érvényes értékek az 5000-50000 tartomány elemei." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Titkosítás szükséges" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ha ez igazra van állítva, akkor az asztalhoz kapcsolódó távoli " +"felhasználóknak képeseknek kell lenniük titkosítás használatára. Erősen " +"ajánlott titkosítást támogató klienst használni, kivéve ha a beavatkozó " +"hálózat megbízható." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Engedélyezett hitelesítési eljárások" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Felsorolja azokat a hitelesítési eljárásokat, amelyekkel a távoli " +"felhasználók kapcsolódhatnak az asztalhoz.\n" +"\n" +"Két lehetséges hitelesítési eljárás létezik, a „vnc” hatására a távoli " +"felhasználónak kapcsolódás előtt meg kell adnia a vnc-password kulcsban lévő " +"jelszót, illetve a „none” (nincs), amely bárki számára lehetővé teszi a " +"kapcsolódást." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "A „vnc” hitelesítéshez szükséges jelszó" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"A távoli felhasználótól kért jelszó a „vnc” hitelesítési eljárás " +"használatakor. A kulcs által tartalmazott jelszó base64 kódolású.\n" +"\n" +"A speciális „keyring” érték (amely nem érvényes base64) azt jelzi, hogy a " +"jelszó a GNOME kulcstartóban található." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail cím, amelyre a távoli asztal URL címét kell elküldeni" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ez a kulcs megadja azt az e-mail címet, amelyre a távoli asztal URL-címe el " +"lesz küldve, ha a felhasználó az URL-címre kattint az Asztalmegosztás " +"beállításai ablakban." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "A képernyő zárolása az utolsó felhasználó kijelentkezésekor" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ha ez igazra van állítva, akkor a képernyő zárolásra kerül az utolsó távoli " +"kliens kilépése után." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Mikor jelenjen meg az állapotikon" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ez a kulcs vezérli az állapotikon viselkedését. Három beállítási lehetőség " +"van: „always” (mindig) - az ikon mindig látható; „client” (kliens) - az ikon " +"csak akkor látható, ha valaki kapcsolódott (ez az alapértelmezett " +"viselkedés); „never” (soha) - az ikon soha sem látható." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Le legyen-e tiltva az asztal háttere, amikor egy felhasználó csatlakozik" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Ha ez igazra van állítva, akkor az asztal háttere letiltásra kerül és egy " +"egyszerű színnel lesz helyettesítve, amikor a felhasználó sikeresen " +"csatlakozik." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Használva legyen-e az UPnP router portok megnyitására és továbbítására" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ha igazra van állítva, kéri az UPnP-képes routert a Vino által használt port " +"megnyitására és továbbítására." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Az X.org XDamage kiterjesztésének letiltása" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ha ez igazra van állítva, nem használja az X.org XDamage kiterjesztését. Ez " +"a kiterjesztés nem működik megfelelően egyes videomeghajtókkal 3D effektusok " +"használatakor. Letiltásával a vino ilyen környezetben is működni fog, " +"lassabb megjelenítés mellett." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Értesítés csatlakozáskor" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ha igazra van állítva, akkor értesítést jelenít meg, amikor a felhasználó " +"csatlakozik a rendszerhez." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Távoli asztal megosztás jelszava" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "A fájl nem egy érvényes .desktop fájl" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ismeretlen .desktop fájl verzió: „%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s indítása" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Az alkalmazás nem fogad el dokumentumokat a parancssorban" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Ismeretlen indítási kapcsoló: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nem adhatók dokumentum-URI címek egy „Type=Link” asztali bejegyzésnek" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nem futtatható elem" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "A munkamenet-kezelőhöz való csatlakozás tiltása" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Adja meg a mentett beállításokat tartalmazó fájlt" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FÁJL" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Adja meg a munkamenet-kezelési azonosítót" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "AZONOSÍTÓ" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Munkamenet-kezelés kapcsolói:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Munkamenet-kezelési kapcsolók megjelenítése" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Az Ön X kiszolgálója nem támogatja az XTest kiterjesztést - a távoli asztal " +"csak látható lesz\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Indítás átviteli módban az „Az asztalom megosztása” szolgáltatáshoz" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "– VNC kiszolgáló a GNOME-hoz" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Az elérhető parancssori kapcsolók listájáért adja ki a „vino-server --help” " +"parancsot" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME asztalmegosztás" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s távoli asztala ezen: %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d szignál érkezett, kilépés." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Képernyő" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "A képernyő, amelyen a készenléti jel megjelenik" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Hiba a libnotify előkészítésekor\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Egy felhasználó „%s” távoli számítógépről megpróbálja távolról megnézni vagy " +"irányítani az Ön asztalát." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Egy másik felhasználó megpróbálja megnézni az Ön asztalát." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Visszautasítás" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Elfogadás" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "A kapcsolat megnyitása meghiúsult a buszhoz: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME asztalmegosztás-kiszolgáló" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;megosztás;távoli;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Az asztal megosztása engedélyezett" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Egy másik felhasználó nézi az asztalát" +msgstr[1] "%d másik felhasználó nézi az asztalát" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Hiba a beállítások megjelenítésekor" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Hiba a súgó megjelenítésekor" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"A GNU GPL 2. változata szerint terjeszthető.\n" +"\n" +"A Vino szabad szoftver, terjesztheti és/vagy módosíthatja a Free\n" +"Software Foundation által kiadott GNU General Public License második\n" +"(vagy bármely későbbi) változatában foglaltak alapján.\n" +"\n" +"A Vino programot abban a reményben terjesztjük, hogy hasznos lesz, de nem\n" +"vállalunk SEMMIFÉLE GARANCIÁT, még olyan értelemben sem, hogy a program\n" +"alkalmas-e a KÖZREADÁSRA vagy EGY BIZONYOS FELADAT ELVÉGZÉSÉRE. További\n" +"részletekért tanulmányozza a GNU GPL licencet.\n" +"\n" +"A Vino programhoz a GNU General Public License egy példánya is jár, ha nem\n" +"kapta meg, írjon a Free Software Foundation Inc.-nek. Levélcímük: 51 " +"Franklin\n" +"St, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Kelemen Gábor <kelemeng at gnome dot hu>\n" +"Nyitrai István <sianis at gmail dot com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Az asztal megosztása más felhasználókkal" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Valóban bontani akarja a kapcsolatot a következővel: „%s”?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "„%s” távoli felhasználója le lesz választva. Biztosan ezt akarja?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Biztosan le kíván választani minden klienst?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Minden távoli felhasználó le lesz választva. Biztosan ezt akarja?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Leválasztás" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Beállítások" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Összes leválasztása" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s leválasztása" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Súgó" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Névjegy" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Egy másik felhasználó nézi az asztalát" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"A(z) „%s” távoli számítógép egy felhasználója távolról nézi az Ön asztalát." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Egy másik felhasználó irányítja az asztalát" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"A(z) „%s” távoli számítógép egy felhasználója távolról irányítja az Ön " +"asztalát." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Hiba az értesítési buborék megjelenítése közben: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "„%s” távoli felhasználója le lesz választva. Biztosan ezt akarja?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Az asztal információinak megosztása" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s” visszautasította az asztal megosztására vonatkozó meghívását." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s” leválasztva" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s” távolról irányítja az Ön asztalát." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Várakozás arra, hogy „%s” kapcsolódjon a képernyőhöz." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Engedélyezés" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Visszautasítás" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Hiba történt:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Megszakítva" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"HIBA: A jelszó legfeljebb %d karakter hosszú lehet. Adja meg újra a jelszót." +msgstr[1] "" +"HIBA: A jelszó legfeljebb %d karakter hosszú lehet. Adja meg újra a jelszót." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "A Vino jelszavának módosítása.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Adja meg a Vino új jelszavát: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Adja meg újra a Vino új jelszavát: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: a jelszó sikeresen frissítve.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Elnézést, a jelszavak nem egyeznek.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: a jelszó változatlan.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "A Vino verziószámának megjelenítése" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "– Frissíti a Vino jelszavát" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Az elérhető parancssori kapcsolók listájáért adja ki a „vino-passwd --help” " +"parancsot" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO %s verzió\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "HIBA: Nincs megfelelő jogosultsága a Vino jelszavának módosításához.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Ha ez igazra van állítva, az UPnP protokoll használatával automatikusan " +#~ "továbbításra kerül a vino által használt port." + +#~ msgid "Question" +#~ msgstr "Kérdés" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Egy másik számítógép felhasználója megpróbálja távolról megnézni vagy " +#~ "irányítani az Ön asztalát." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Engedélyezi, hogy ezt tegyék?" + +#~ msgid "Remote Desktop" +#~ msgstr "Távoli asztal" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Távoli asztalelérés engedélyezése" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Mindig jelenjen meg egy ikon" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Hálózat beállítása a kapcsolatok automatikus elfogadására" + +#~ msgid "_Never display an icon" +#~ msgstr "Soha _ne jelenjen meg az ikon" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Csak akk_or jelenjen meg az ikon, ha valaki kapcsolódott" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME távoli asztal" diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..1dbc7e7 --- /dev/null +++ b/po/id.po @@ -0,0 +1,782 @@ +# Translation of vino to Bahasa Indonesia +# Copyright (C) 2004 THE vino'S COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# +# Mohammad DAMT <mdamt@bisnisweb.com>, 2004, 2006. +# Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012. +# Andika Triwidada <andika@gmail.com>, 2010, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-16 06:09+0700\n" +"Last-Translator: Andika Triwidada <andika@gmail.com>\n" +"Language-Team: Indonesian <gnome@i15n.org>\n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.5.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Ada kesalahan menampilkan URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Ada kesalahan menampilkan bantuan: \n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Memeriksa ketersambungan mesin ini..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Desktop Anda hanya dapat dicapai melalui jaringan lokal." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " atau " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Pihak lain dapat mengakses komputer Anda memakai alamat %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Tak seorangpun dapat mengakses desktop Anda." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Berbagi Desktop" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Pilih bagaimana pengguna lain dapat melihat desktop Anda jarak jauh" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferensi Desktop Jauh" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Berbagi" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Beberapa preferensi di bawah ini telah dikunci" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "_Izinkan pengguna lainnya melihat desktop Anda" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Desktop Anda akan dipakai bersama" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Izink_an pengguna lainnya mengambil alih desktop Anda" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Pengguna jauh dapat mengendalikan tetikus dan papan tik Anda" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Keamanan" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Anda _mesti mengkonfirmasi setiap akses ke mesin ini" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "Pengguna ha_rus memasukkan sandi:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "Otomatis _menata router UPnP untuk membuka dan meneruskan port" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Fitur UPnP router mesti diaktifkan" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Tunjukkan Ikon Area Notifikasi" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "S_elalu" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Hanya bila ketika sese_orang terhubung" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "Janga_n Pernah" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Aktifkan akses jarak jauh ke desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Jika ya, mengijinkan akses jauh ke desktop melalui protokol RFB. Pengguna " +"pada komputer jauh dapat menyambung ke desktop dengan menggunakan VNC viewer." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Menanyakan pengguna sebelum melakukan koneksi" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Jika ya, berarti pengguna jauh yang mengakses desktop tidak diizinkan hingga " +"pengguna pada komputer host menyetujui koneksi. Disarankan khususnya bila " +"akses tidak dilindungi sandi." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Hanya mengizinkan pengguna untuk melihat-lihat desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Jika ya, pengguna jauh yang mengakses desktop hanya diizinkan untuk melihat-" +"lihat desktop saja. Pengguna jauh tersebut tidak dapat menggunakan tetikus " +"atau papan tik." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Antarmuka jaringan yang mendengarkan" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Apabila tak ditentukan, server akan mendengar pada semua antarmuka " +"jaringan.\n" +"\n" +"Tentukanlah ini apabila Anda hanya ingin menerima sambungan dari antarmuka " +"jaringan tertentu. Misalnya eth0, wifi0, lo, dan seterusnya." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Mendengar pada port alternatif" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Apabila bernilai benar (true), server akan mendengar port lain, bukan pada " +"port baku (5900). Port lain tersebut harus dinyatakan pada kunci " +"'alternative-port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Nomor port alternatif" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Port yang dipakai oleh server untuk mendengarkan permintaan apabila kunci " +"'use-alternative-port' memiliki nilai benar (true). Nilai yang sah mulai " +"dari 5000 sampai 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Haruskan enkripsi" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Jika ya, pengguna jauh yang mengakses desktop diharuskan memakai enkripsi. " +"Sangat dianjurkan untuk menggunakan klien yang mendukung enkripsi kecuali " +"jika jaringan yang mengaturnya Anda percayai." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Metode pengesahan yang diizinkan" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Daftar metode otentikasi yang tersedia untuk mengakses desktop dari jarak " +"jauh.\n" +"\n" +"Terdapat dua metode yang dapat digunakan; \"vnc\" untuk akses dengan meminta " +"sandi (yang telah ditentukan pada kunci vnc-password) dan \"none\" untuk " +"akses tanpa meminta sandi." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Sandi yang diperlukan untuk pengesahan \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Sandi yang dipinta untuk pengguna jarak jauh apabila mengakses dengan metode " +"\"vnc\". Sandi yang ditentukan melalui kunci ini memakai enkode base64.\n" +"\n" +"Nilai khusus 'keyring' (bukanlah base64 yang sah) berarti sandi disimpan " +"pada ring kunci milik GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Alamat surel untuk dikirimi alamat URL desktop jauh" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Kunci ini berisi alamat surel untuk dikirimi alamat URL desktop jauh. Surel " +"akan dikirim jika pengguna mengklik URL dalam dialog preferensi Desktop Jauh." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Kunci layar ketika pengguna terakhir putus" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "Bila ya, layar akan dikunci setelah klien jauh terakhir putus." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Kapan ikon status mesti ditampilkan" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Kunci ini mengendalikan perilaku ikon status. Ada tiga opsi: \"always\" - " +"Ikon akan selalu ada; \"client\" - Anda akan melihat ikon bila ada seseorang " +"tersambung, ini adalah perilaku baku; \"never\" - Ikon tidak akan hadir." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Apakah mematikan latar belakang desktop ketika seorang pengguna tersambung" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Bila bernilai true, latar belakang desktop tak difungsikan dan digantikan " +"dengan suatu blok warna tunggal ketika seorang pengguna berhasil menyambung." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Apakah sebuah router UPnP mesti dipakai untuk meneruskan dan membuka port" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Bila bernilai true, meminta suatu router yang berkemampuan UPnP untuk " +"meneruskan dan membuka port yang dipakai oleh Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Apakah mesti mematikan ekstensi XDamage dari X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Bila berisi true, jangan memakai ekstensi XDamage dari X.org. Ekstensi ini " +"tidak bekerja dengan benar pada beberapa penggerak video ketika memakai efek " +"3D. Mematikannya menyebabkan Vino bekerja pada lingkungan ini dengan efek " +"samping perenderan yang lebih lambat." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Beritahu saat menyambung" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Bila bernilai true, menampilkan pemberitahuan ketika seorang pengguna " +"menyambung ke sistem." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Sandi berbagi desktop remote" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ini bukan berkas .desktop yang valid" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Berkas desktop tak dikenal Versi '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Memulai %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikasi tak menerima dokumen pada baris perintah" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opsi peluncuran tak dikenal: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Tak bisa melewatkan URI dokumen ke suatu entri desktop 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Bukan item yang dapat diluncurkan" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Menonaktifkan koneksi ke manajer sesi" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Nyatakan berkas yang memuat konfigurasi tersimpan" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Nyatakan ID manajemen sesi" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opsi manajemen sesi:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Tampilkan opsi manajemen sesi" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer ini tidak mendukung ekstensi XTest - akses ke desktop jauh dibatasi " +"hanya untuk melihat saja\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Mulai dalam mode tabung, bagi fitur 'Berbagi Desktopku'" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Server VNC untuk GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Jalankan 'vino-server --help' untuk melihat daftar lengkap dari opsi baris " +"perintah yang tersedia" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Desktop Jauh GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Desktop jauh milik %s pada %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Menerima sinyal %d, keluar." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Layar" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Layar tempat menampilkan prompt" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Galat menginisialisasi libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Pengguna komputer '%s' mencoba mengakses atau mengambil alih desktop Anda." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Pengguna lain sedang mencoba menilik desktop Anda." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Tolak" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Terima" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Gagal membuka koneksi ke bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server Desktop Jauh GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;berbagi;jarak jauh;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Berbagi desktop diaktifkan" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d pengguna lain sedang menilik desktop Anda" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Ada kesalahan menampilkan preferensi" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Ada kesalahan menampilkan bantuan" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Dilisensikan di bawah GNU General Public License Versi 2\n" +"\n" +"Vino adalah perangkat lunak bebas; Anda dapat menyebarluaskannya\n" +"dan / atau mengubahnya di bawah syarat GNU General Public License\n" +" sebagaimana dipublikasikan oleh Free Software Foundation; baik versi 2\n" +"dari Lisensi, atau (terserah pilihan Anda) versi setelahnya.\n" +"\n" +"Vino didistribusikan dengan harapan akan berguna,\n" +"tetapi TANPA ADANYA JAMINAN; termasuk tanpa jaminan\n" +"KETERDAGANGAN atau KECOCOKAN UNTUK TUJUAN TERTENTU.\n" +"Lihat GNU General Public License untuk rincian lebih lanjut.\n" +"\n" +"Anda seharusnya menerima salinan dari GNU General Public License\n" +"bersama dengan program ini; jika tidak, kirimkan surat Anda\n" +"ke Free Software Foundation, Inc, 51 Franklin Street, Fifth Floor,\n" +"Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Mohammad DAMT <mdamt@gnome.org>, 2004, 2006.\n" +"Imam Musthaqim <userindesign@gmail.com>, 2009.\n" +"Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012.\n" +"Andika Triwidada <andika@gmail.com>, 2010, 2011, 2012, 2013." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Berbagi desktop Anda dengan pengguna lain" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Anda yakin ingin memutus '%s'?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Pengguna jauh dari '%s' akan diputus. Anda yakin?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Anda yakin ingin memutus semua klien?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Semua pengguna jauh akan diputus. Anda yakin?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Putus" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferensi" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Putus semua" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Putus %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Ba_ntuan" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "Ihw_al" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Pengguna lain sedang menilik desktop Anda" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Seorang pengguna pada komputer '%s' sedang menilik desktop Anda jarak jauh." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Pengguna lain sedang mengendalikan desktop Anda" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Seorang pengguna pada komputer '%s' sedang mengendalikan desktop Anda jarak " +"jauh." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Galat ketika menampilkan gelembung pemberitahuan: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Pengguna jauh '%s' akan diputus. Anda yakin?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Berbagi informas desktopku" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' menolak undangan berbagi desktop." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' diputus" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' sedang mengendalikan desktop Anda jarak jauh." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Menunggu '%s' menyambung ke layar." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "Ijink_an" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Tolak" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Terjadi suatu kesalahan:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Dibatalkan" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"GALAT: Panjang sandi maksimum adalah %d karakter. Silakan masukkan ulang " +"sandi," + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Mengubah sandi Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Masukkan sandi baru Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Tik ulang sandi baru Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: sandi sukses dimutakhirkan.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Maaf, sandi tak cocok.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: sandi tak diubah.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Tampilkan versi Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Memutakhirkan sandi Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Jalankan 'vino-passwd --help' untuk melihat daftar lengkap dari opsi baris " +"perintah yang tersedia" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO Versi %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "GALAT: Anda tak punya cukup hak untuk mengubah sandi Vino.\n" diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..fa1e207 --- /dev/null +++ b/po/is.po @@ -0,0 +1,559 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sveinn í Felli <sv1@fellsnet.is>, 2015. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2015-12-03 10:17+0000\n" +"PO-Revision-Date: 2015-12-03 16:16+0000\n" +"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n" +"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 1.5\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Spyrja notandann áður en tenging er kláruð" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ef þetta er valið, verður fjartengdum notendum ekki leyfður aðgangur fyrr en " +"notandi á hýsivélinni hefur samþykkt tenginguna. Sérstaklega er mælt með " +"þessu ef tengingin er ekki varin með lykilorði." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Leyfa fjartengdum notendum einungis að skoða skjáborðið" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ef þetta er valið, verður fjartengdum notendum einungis leyft að skoða " +"skjáborðið, þeir munu ekki geta notað músina eða lyklaborðið." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Netkort þar sem á að hlusta" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ef þetta er ekki valið, mun miðlarinn hlusta á öllum nettækjum.\n" +"\n" +"Stilltu þetta ef þú vilt hlusta eftir tengibeiðnum á ákveðnu netkorti. Til " +"dæmis eth0, wifi0, lo, og svo framvegis." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Hlusta á annarri gátt" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ef þetta er valið, mun miðlarinn hlusta á aðra gátt heldur en þá sjálfgefnu " +"(5900). Gáttin verður að vera tilgreind í færslunni 'varagátt'." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Númer varagáttar" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Krefjast dulkóðunar" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Leyfilegar auðkenningaraðferðir" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Lykilorðs krafist fyrir \"vnc\" auðkenningu" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Tölvupóstfangið sem senda skal slóðina á fjartengda skjáborðið" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Læsa skjánum þegar síðasti notandinn aftengist" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ef þetta er valið, verður skjánum læst eftir að síðasti fjartengdi notandinn " +"aftengist." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Hvenær stöðutáknið eigi að sjást" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Hvort gera eigi bakgrunn skjáborðsins óvirkan þegar notandi er tengdur" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Ef þetta er valið, skal gera bakgrunn skjáborðsins óvirkan og skipta honum " +"út með heillituðum fleti, þegar notandi hefur tengst." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Hvort nota eigi UPnP-beini til að áframsenda og opna gáttir" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ef þetta er valið, á að krefjast UPnP-beinis til að áframsenda og opna " +"gáttir þær sem notaðar eru af Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Hvort gera skuli XDamage-viðbótina í X.org óvirka" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ef þetta er valið, skal ekki nota XDamage-viðbótina í X.org. Þessi viðbót " +"(extension) virkar ekki vel með sumum skjákortsreklum þegar verið er að nota " +"þrívíddarbrellur. Með því að gera hana óvirka, mun Vino geta virkað í slíku " +"umhverfi, en þó þannig að myndgerð verður hægvirkari." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Tilkynna við tengingu" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ef þetta er valið, skal birta tilkynningu þegar notandi tengist kerfinu." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Skráin er ekki gild .desktop skrá" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Óþekkt .desktop skrá, útgáfa ‚%s‘" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Ræsi %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Þetta forrit tekur ekki á móti skrám á skipanalínunni" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Þessi ræsivalmöguleiki er ekki þekktur: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Get ekki látið veffang ganga til ‚Type=Link‘" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Þetta er ekki ræsanlegt atriði" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Afvirkja tengingu við setustjóra" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Tilgreindu skrá með vistaðar stillingar" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "SKRÁ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Tilgreindu auðkenni (ID) setustjórnunar" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Auðkenni (ID)" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Valkostir setustýringar:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Sýna valkosti setustýringar" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"X-þjónninn þinn styður ekki við XTest-viðbótina - fjartengd skjáborð verður " +"því einungis hægt að skoða\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- VNC miðlari fyrir GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Keyrðu 'vino-server --help' til að sjá lista með öllum mögulegum valkostum " +"skipanalínunnar" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "GNOME skjáborðsmiðlun" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s's remote desktop on %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Tók við merkinu %d, hætti núna." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Skjár" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Skjárinn þar sem á að birta kvaðninguna" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Villa við frumstillingu libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Notandi á fjartengdu tölvunni '%s' er að reyna að skoða eða stýra " +"skjáborðinu þínu." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Annar notandi er að reyna að skoða skjáborðið þitt." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Hafna" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Samþykkja" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Mistókst að opna tengingu á rás: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Skjáborðsmiðlun" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME skjáborðsmiðlunarþjónn" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;sameiginlegt;deila;fjartengt;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Skjáborðsmiðlun er virk" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Einn notandi er að skoða skjáborðið þitt" +msgstr[1] "%d notendur eru að skoða skjáborðið þitt" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Villa við birtingu kjörstillinga" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Villa við birtingu hjálpar" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Dreift með GNU General Public notkunarleyfi, útgáfu 2\n" +"\n" +"Þetta forrit er frjáls hugbúnaður; þú mátt endurrita hann\n" +"og/eða breyta samkvæmt skilmálum \"GNU General Public License\" \n" +"eins og það er útgefið af \"Free Software Foundation;\"; annað hvort \n" +"útgáfa 2 af leyfinu, eða (að þínu vali) einhver síðari útgáfa.\n" +"\n" +"Þessu forriti er dreift í þeirri von að það sé gagnlegt, en\n" +"ÁN NOKKURAR ÁBYRGÐAR; einnig án óbeinnar SÖLUÁBYRGÐAR\n" +"eða HÆFNI TIL NOKKURS HLUTAR. Sjá nánar í \n" +"\"GNU General Public License\" leyfinu.\n" +"\n" +"Þú ættir að hafa fengið afrit af \"GNU General Public License\"\n" +"með þessu forriti; ef ekki, skrifaðu til Free Software Foundation, \n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "Sveinn í Felli, sv1@fellsnet.is" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Deila skjáborðinu þínu með öðrum notendum" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ertu viss um að þú viljir aftengja '%s'?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Fjartengdi notandinn á '%s' verður aftengdur. Ertu viss?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ertu viss um að þú viljir aftengja alla biðlara?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Allir fjartengdir notendur verða aftengdir. Ertu viss?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Aftengja" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Kjörstillingar" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Aftengja allt" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Aftengja %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "_Hjálp" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "_Um hugbúnaðinn" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "Annar notandi er að skoða skjáborðið þitt" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Notandi á tölvunni '%s' er að skoða skjáborðið þitt fjartengt." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "Annar notandi stýrir skjáborðinu þínu" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Notandi á tölvunni '%s' stýrir skjáborðinu þínu fjartengt." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Villa við birtingu á tilkynningaglugga: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Fjartengdi notandinn '%s' verður aftengdur. Ertu viss?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Deila skjáborðsupplýsingum mínum" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' hafnaði boði um skjáborðsmiðlun." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' aftengdur" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' stýrir skjáborðinu þínu fjartengt." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Bíð eftir að '%s' tengist skjánum." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "S_amþykkja" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Hafna" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Villa hefur átt sér stað:" + diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..a4d9005 --- /dev/null +++ b/po/it.po @@ -0,0 +1,824 @@ +# Italian translation of vino +# Copyright (C) 2004 - 2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Alessio Frusciante <algol@firenze.linux.it>, 2004, 2005, 2006. +# Luca Ferretti <lferrett@gnome.org>, 2004, 2008, 2009, 2010. +# Milo Casagrande <milo@ubuntu.com>, 2007, 2008, 2009, 2012. +# Claudio Arseni <claudio.arseni@ubuntu.com>, 2011, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-10 22:52+0000\n" +"PO-Revision-Date: 2013-02-21 13:52+0100\n" +"Last-Translator: Claudio Arseni <claudio.arseni@ubuntu.com>\n" +"Language-Team: Italian <tp@lists.linux.it>\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Si è verificato un errore nel visualizzare l'URL «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Si è verificato un errore nel visualizzare l'aiuto:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Controllo della connettività di questo sistema..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Questo desktop è raggiungibile solamente dalla rete locale." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " oppure " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"Altre persone possono accedere a questo computer usando l'indirizzo %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Nessuno può accedere a questo desktop." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Condivisione desktop" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Indica come gli altri utenti possano visualizzare questo desktop da remoto" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferenze di Condivisione desktop" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Condivisione" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Alcune di queste preferenze sono bloccate" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "C_onsentire agli altri utenti di visualizzare questo desktop" + +# (ndt) suggerimento +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Se selezionata, questo desktop sarà condiviso" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Co_nsentire agli altri utenti di controllare questo desktop" + +# (ndt) suggerimento +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Se selezionata, gli utenti remoti possono controllare il mouse e la tastiera " +"locali" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Sicurezza" + +# (ndt) opzione +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Con_fermare ogni accesso alla macchina" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Richiedere all'utente di inserire questa password:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Configurare automaticamente il router UPnP per aprire e instradare le porte" + +# (ndt) suggerimento +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Il router deve avere la funzionalità UPnP abilitata" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Mostra icona nell'area di notifica" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "Sem_pre" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "S_olo quando qualcuno è connesso" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Mai" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Abilita l'accesso remoto al desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Se impostata a VERO, permette l'accesso remoto al desktop attraverso il " +"protocollo RFB. Gli utenti su macchine remote possono connettersi tramite un " +"visualizzatore VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Chiede all'utente prima di completare una connessione" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Se impostata a VERO, gli utenti che tentano di accedere al desktop non " +"possono farlo finché l'utente sull'host non approva la connessione. " +"Raccomandato in special modo quando l'accesso non è protetto da password." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Consente agli utenti remoti solamente di vedere il desktop" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se impostata a VERO, agli utenti remoti che accedono al desktop è consentita " +"solo la visualizzazione del desktop. Tali utenti non potranno usare il mouse " +"o la tastiera." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interfaccia di rete per l'ascolto" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se non impostata, il server resta in ascolto su tutte le interfacce di " +"rete.\n" +"\n" +"Impostare per accettare le connessioni solo da alcune interfacce specifiche " +"come: eth0, wifi0, lo e così via" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Ascolta su una porta alternativa" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se impostata a VERO, il server resta in ascolto su una porta diversa da " +"quella predefinita (5900). La porta deve essere specificata nella chiave " +"\"alternative-port\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Numero porta alternativo" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"La porta su cui il server starà in ascolto se la chiave \"use-alternative-" +"port\" è impostata a VERO. I valori ammessi vanno da 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Richiedi cifratura" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se impostata a VERO, gli utenti remoti che accedono al desktop devono " +"supportare la cifratura. È caldamente consigliato usare un client che " +"supporti la cifratura, a meno che non ci si trovi su una rete fidata." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Metodi d'autenticazione consentiti" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Elenca i metodi di autenticazione tramite i quali gli utenti remoti possono " +"accedere al desktop.\n" +"\n" +"Ci sono due possibili metodi: \"vnc\" che chiede una password all'utente " +"remoto (la password è specificata dalla chiave vnc-password) prima di " +"connettersi e \"none\" che permette a ogni utente remoto di connettersi." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Password richiesta per l'autenticazione \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"La password che verrà richiesta all'utente remoto se viene usato il metodo " +"di autenticazione \"vnc\". La password specificata dalla chiave è codificata " +"in base64.\n" +"\n" +"Il valore speciale di \"keyring\" (che non è codificato in base64 valido) " +"indica che la password è archiviata nel portachiavi di GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Indirizzo email al quale inviare l'URL del desktop remoto" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Questa chiave specifica l'indirizzo email al quale verrà mandato l'URL del " +"desktop remoto se l'utente fa clic sull'URL nel dialogo delle preferenze di " +"condivisione del desktop." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Blocca lo schermo alla disconnessione dell'ultimo utente" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se impostata a VERO, lo schermo viene bloccato dopo la disconnessione " +"dell'ultimo client remoto." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Quando mostrare l'icona di stato" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Questa chiave controlla il comportamento dell'icona di stato. Sono " +"disponibili tre opzioni: \"always\" (l'icona è sempre presente), \"client" +"\" (l'icona è visibile solo se qualcuno è connesso; questo è il " +"comportamento predefinito), \"never\" (l'icona non è mai mostrata)." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indica se disabilitare lo sfondo della scrivania quando un utente è connesso" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Se VERO, disabilita lo sfondo della scrivania e lo sostituisce con un " +"singolo blocco di colore quando quando un utente si connette con successo." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Indica se usare un router UPNP per inoltrare e aprire la porta" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se VERO, richiede che un router con funzionalità UPnP inoltri e apra la " +"porta usata da Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica se disabilitare l'estensione XDamage di X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se impostata a VERO, non viene utilizzata l'estensione XDamage di X.org. " +"Questa estensione non funziona correttamente con alcuni driver video quando " +"si usano gli effetti 3D. Disabilitandola è possibile far funzionare Vino in " +"tali ambienti, anche se con un rendering più lento." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notifica alla connessione" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se impostata a VERO, mostra una notifica quando un utente si connette al " +"sistema." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Password condivisione desktop remoto" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Il file non è un file .desktop valido" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Versione \"%s\" del file .desktop non riconosciuta" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Avvio di «%s»" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'applicazione non accetta documenti sulla riga di comando" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opzione di lancio non riconosciuta: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossibile passare URI di documenti a una desktop entry con \"Type=Link\"" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Non è un oggetto lanciabile" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Disabilita la connessione al gestore di sessione" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specifica il file contenente la configurazione salvata" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specifica l'ID di gestione sessione" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opzioni di gestione sessione:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostra le opzioni di gestione sessione" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Lo XServer in uso non supporta l'estensione XTest - l'accesso remoto al " +"desktop è in sola visualizzazione\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Avvia in modalità \"tube\" per la funzionalità di condivisione del desktop" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Server VNC per GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Eseguire \"vino-server --help\" per visualizzare un elenco completo di tutte " +"le opzioni disponibili a riga di comando" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Condivisione desktop per GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Desktop remoto di %s su %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Ricevuto il segnale %d, uscita." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Schermo" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Lo schermo su cui visualizzare la richiesta" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Errore nell'inizializzare libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utente del computer «%s» sta tentando di visualizzare o controllare da " +"remoto questo desktop." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Un altro utente sta tentando di visualizzare questo desktop" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Rifiuta" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Accetta" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Apertura connessione al bus non riuscita: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server di condivisione desktop per GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;condivisione;remoto;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "La condivisione del desktop è abilitata" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Un utente sta visualizzando questo desktop" +msgstr[1] "%d utenti stanno visualizzando questo desktop" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Errore nel visualizzare le preferenze" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Errore nel visualizzare l'aiuto" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Rilasciato sotto la licenza GNU General Public License versione 2\n" +"\n" +"Vino è software libero; è possibile ridistribuirlo o modificarlo\n" +"secondo i termini della licenza GNU General Public License, come\n" +"pubblicata dalla Free Software Foundation; versione 2 della licenza, o\n" +"(a scelta) una versione più recente.\n" +"\n" +"Vino è distribuito nella speranza che possa risultare utile, ma SENZA\n" +"ALCUNA GARANZIA, nemmeno la garanzia implicita di COMMERCIABILITÀ o\n" +"APPLICABILITÀ PER UNO SCOPO PARTICOLARE. Per maggiori dettagli\n" +"consultare la GNU General Public License.\n" +"\n" +"Una copia della GNU General Public License dovrebbe essere stata fornita\n" +"con questo programma. In caso contrario scrivere a:\n" +" Free Software Foundation, Inc.\n" +" 51 Franklin Street, Fifth Floor, Boston, MA\n" +" 02111-1301 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Claudio Arseni <claudio.arseni@ubutnu.com>\n" +"Luca Ferretti <lferrett@gnome.org>\n" +"Milo Casagrande <milo@ubuntu.com>\n" +"Alessio Frusciante <algol@firenze.linux.it>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Condivide il proprio desktop con altri utenti" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Disconnettere veramente «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'utente remoto da «%s» sarà disconnesso. Disconnettere?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Disconnettere veramente tutti i client?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Tutti gli utenti remoti saranno disconnessi. Disconnettere?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Disconnetti" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "Preferen_ze" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Disconnetti tutti" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Disconnetti %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "A_iuto" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "I_nformazioni" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Un altro utente sta visualizzando questo desktop" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un utente del computer «%s» sta visualizzando da remoto questo desktop." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Un altro utente sta controllando questo desktop" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Un utente del computer «%s» sta controllando da remoto questo desktop." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Errore nel visualizzare la notifica: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "L'utente remoto «%s» sarà disconnesso. Continuare?" + +# Questa sarebbe da vedere all'opera.... +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Informazioni sulla condivisione desktop" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» ha rifiutato l'invito alla condivisione del desktop." + +# risolto problema maschio/femmina +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» ha chiuso la connessione" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» sta controllando questo desktop da remoto." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "In attesa che «%s» si connetta allo schermo." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Consenti" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Rifiuta" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Si è verificato un errore:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Annullato" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"Errore: la lunghezza massima della password è di %d carattere. Inserire " +"nuovamente la password." +msgstr[1] "" +"Errore: la lunghezza massima della password è di %d caratteri. Inserire " +"nuovamente la password." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Modifica password di Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Inserire la nuova password: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Inserire nuovamente la password: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: password aggiornata con successo.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Le password non coincidono.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: password non modificata.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Mostra la versione di Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Aggiorna la password di Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Eseguire \"vino-passwd --help\" per visualizzare un elenco completo di tutte " +"le opzioni disponibili a riga di comando." + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Vino versione %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "Errore: permessi non sufficienti per modificare la password di Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Se impostata a VERO, viene utilizzato il protocollo UPNP per inoltrare " +#~ "automaticamente la porta usata nel router dal programma." + +#~ msgid "Question" +#~ msgstr "Domanda" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un utente di un altro computer sta tentando di visualizzare o controllare " +#~ "da remoto questo desktop." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Consentire di farlo?" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..57a3be1 --- /dev/null +++ b/po/ja.po @@ -0,0 +1,668 @@ +# Japanese messsage catalogue for vino +# Copyright (C) 2004-2012 THE vino'S COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# Satoru SATOH <ss@gnome.gr.jp>, 2004-2006. +# Takeshi AIHANA <takeshi.aihana@gmail.com>, 2006-2009. +# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2010, 2012. +# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2011, 2013 +# Hideki Yamane <henrich@debian.org>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-09-12 09:34+0000\n" +"PO-Revision-Date: 2013-09-15 20:12+0900\n" +"Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n" +"Language-Team: Japanese <translation@gnome.gr.jp>\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "デスクトップへのリモートアクセスを有効にする" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a VNC viewer." +msgstr "true にすると、RFB プロトコルを介したリモートデスクトップのアクセスを許可します。リモートマシンのユーザーは VNC ビューワーを使ってデスクトップに接続できます。" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "接続する前にパスワード入力を求める" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "true にすると、リモートユーザーはそのホストを所有するユーザーが承認してくれるまでデスクトップに接続することはできません。特にアクセスがパスワードで保護されていない場合に推奨します。" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "デスクトップの表示のみ許可する" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "true にすると、リモートユーザーはデスクトップを参照することしかできなくなります。リモートユーザーはマウスやキーボードを利用することはできません。" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "監視するネットワークのインターフェース" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"特に指定しない場合、リモートデスクトップのサーバーはすべてのネットワークインターフェースを監視します。\n" +"\n" +"特定のネットワークインターフェースからのみ接続を許可したい場合は、ここにそのネットワークインターフェースを指定してください (例: eth0、wifi0、lo 等)。" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "別のポートを監視する" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "If true, the server will listen on another port, instead of the default (5900). The port must be specified in the 'alternative-port' key." +msgstr "true にすると、サーバーはデフォルトのポート (5900番) ではなく、別のポートを監視します。このポートは 'alternative-port' キーで指定してください。" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "別のポート番号" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "The port which the server will listen to if the 'use-alternative-port' key is set to true. Valid values are in the range of 5000 to 50000." +msgstr "'use-alternative-port' キーが true の場合に、サーバーが監視するポート番号 (5000〜50000) です。" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "暗号化を必須とする" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "true にすると、リモートユーザーがデスクトップにアクセスするには暗号化のサポートが必須となります。仲介するネットワークが信頼できるものでない限り、暗号化をサポートするクライアントの使用を強く推奨します。" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "許可された認証方法" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc-password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "" +"リモートのユーザーがデスクトップにアクセスする際の認証方法のリストです。\n" +"\n" +"\n" +"指定可能な値: \"vnc\" (接続する前に vnc-password キーで指定したパスワードの入力をリモートのユーザーに要求する)、\"none\" (誰でも認証なしで接続できる)" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" の認証モードで使用するパスワード" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" の認証モードでリモートユーザーに要求するパスワードを指定します。このキーの値はパスワードを base64 エンコードしたものとなります。\n" +"\n" +"'keyring' という特別な値 (これは妥当な base64 ではありません) は、パスワードがGNOME キーリングに保存されていることを意味します。" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "リモートデスクトップ URL の送信先メールアドレス" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Desktop Sharing preferences dialog." +msgstr "デスクトップ共有の設定ダイアログに表示されている URL をクリックして、それをメールで送信する宛先を指定します。" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "接続が切れたら画面をロックする" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "If true, the screen will be locked after the last remote client disconnects." +msgstr "true にすると、最後のリモートクライアントからの接続が切れた時に画面をロックします。" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "ステータスアイコンの表示方法" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "This key controls the behavior of the status icon. There are three options: \"always\" - the icon will always be present; \"client\" - the icon will only be present when someone is connected (this is the default behavior); \"never\" - the icon will not be present." +msgstr "ステータスを表すアイコンの表示を制御します。指定可能な値: \"always\" (常にアイコンを表示する)、\"client\" (誰かがデスクトップに接続したらアイコンを表示する; これがデフォルトの設定)、\"never\" (アイコンは表示しない)" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "ユーザーが接続したら背景を無効にする" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "When true, disable the desktop background and replace it with a single block of color when a user successfully connects." +msgstr "true にすると、ユーザーが接続に成功した時にデスクトップの背景を無効にして単一の系統の色に置き換えます。" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "UPnP ルーターを使ってポートをフォワードして開く" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "If true, request that a UPnP-capable router should forward and open the port used by Vino." +msgstr "true にすると、UPnP 対応ルーターには Vino により利用されるポートを転送して開くように要求します。" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org の XDamage 拡張機能を無効にする" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, do not use the XDamage extension of X.org. This extension does not work properly on some video drivers when using 3D effects. Disabling it will make Vino work in these environments, with slower rendering as a side effect." +msgstr "true にすると、X.org の XDamage 拡張機能を使用しなくなります。ビデオドライバーの中には 3D 機能を使用中に、この拡張機能が正しく動作しないものがあります。これを false にすると、その副作用として描画が遅くなりますが、この拡張機能が動作するようになります。" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "接続時に通知する" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "true にすると、システムにユーザーが接続した時に通知を行います。" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "妥当な .desktop ファイルではありません" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "バージョン '%s' の .desktop ファイルはサポートしていません" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%sの起動中です" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "コマンドラインからドキュメントにはアクセスできません" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "不明な起動オプションです: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ドキュメントの URI を 'Type=Link' な .desktop エントリには渡せません" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "起動可能なアイテムではありません" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "セッションマネージャーに接続しない" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "設定を保存したファイルを指定する" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "セッション管理の ID を指定する" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "セッション管理のオプション:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "セッション管理のオプションを表示する" + +#: ../server/vino-main.c:202 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "あなたの XServer は XTest 拡張をサポートしていません - リモートデスクトップアクセスは見るだけになります\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "「デスクトップ共有」機能のためにチューブモードで起動します" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME 向けの VNC サーバー" + +#: ../server/vino-main.c:315 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "'vino-server --help' を実行すると利用可能なコマンドラインオプションの一覧が表示されます" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME デスクトップ共有" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "42" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s@%s さんのリモートデスクトップ" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "シグナル %d を受け取ったので終了します。" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "スクリーン" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "プロンプトを表示するスクリーン" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify を初期化する際にエラー\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "コンピューター '%s' のユーザーがあなたのデスクトップをリモートから参照または操作しようとしています" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "別のユーザーがお使いのデスクトップを参照しようとしています。" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "拒否" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "許可" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "バスへの接続を開けませんでした: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "デスクトップの共有" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME デスクトップ共有サーバー" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;デスクトップ共有;リモートデスクトップ;DesktopSharing;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "デスクトップの共有が可能になりました" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d 人のユーザーがあなたのデスクトップを参照しています" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "設定ダイアログを表示する際にエラーが発生しました" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ヘルプを表示する際にエラーが発生しました" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU 一般公衆利用許諾契約書の第二版の下でライセンス化されています。\n" +"\n" +"Vino はフリーソフトウェアです。フリーソフトウェア財団が提供する\n" +"GNU 一般公衆利用許諾契約書の第二版、あるいはそれ以降の版が定める\n" +"条項の下で本プログラムを再頒布または変更することができます。\n" +"\n" +"Vino は有用とは思いますが、頒布にあたっては市場性または特定の目的に\n" +"対する適合性についての暗黙の保証を含めて、いかなる保証も行ないません。\n" +"詳細には GNU 一般公衆利用許諾契約書をご覧ください。\n" +"\n" +"あなたは本プログラムと一緒に GNU 一般公衆利用許諾契約書の写しを\n" +"受け取っているはずです。そうでない場合は、Free Software Foundation, \n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA \n" +"まで連絡してください。\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Satoru SATOH <ss@gnome.gr.jp>\n" +"相花 毅 <takeshi.aihana@gmail.com>\n" +"草野 貴之 <AE5T-KSN@asahi-net.or.jp>\n" +"やまねひでき <henrich@debian.org>\n" +"Mitsuya Shibata <mty.shibata@gmail.com>\n" +"松澤 二郎 <jmatsuzawa@gnome.org>\n" +"日本GNOMEユーザー会 <http://www.gnome.gr.jp/>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "他のユーザーとデスクトップを共有します" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "本当に '%s' との接続を閉じますか?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' のリモートユーザーに対する接続を閉じます。よろしいですか?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "本当にすべてのクライアントとの接続を閉じますか?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "すべてのリモートユーザーとの接続を閉じます。よろしいですか?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "閉じる" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "設定(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "すべて閉じる" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s との接続を閉じる" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ヘルプ(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "このアプリケーションについて(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "他のユーザーがデスクトップを参照しています" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "コンピューター '%s' のユーザーがあなたのデスクトップをリモートから参照しようとしています。" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "他のユーザーがデスクトップを操作しています" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "コンピューター '%s' のユーザーがあなたのデスクトップをリモートから操作しようとしています。" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "通知ウィンドウを表示する際にエラー: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "リモートユーザーの '%s' に対する接続を閉じますが、よろしいですか?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "デスクトップ共有の情報" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' はデスクトップの共有に対する招待を拒否しました" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' との接続を閉じました" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "リモートユーザーの '%s' はあなたのデスクトップに接続中です" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' がスクリーンに接続するまで待機します" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "許可する(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "拒否する(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "エラーが発生しました:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "リモートデスクトップ共有のパスワード" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "キャンセルしました" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "ERROR: Maximum length of password is %d character. Please, re-enter the password." +msgid_plural "ERROR: Maximum length of password is %d characters. Please, re-enter the password." +msgstr[0] "エラー: パスワードとして入力できるのは %d 文字までです (もう一度入力してください)" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino のパスワードを変更します\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Vino の新しいパスワード: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "新しいパスワードの確認: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: パスワードを更新しました\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "パスワードが一致しません\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: パスワードを変更しませんでした\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino のバージョンを表示する" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino のパスワードを更新する" + +#: ../tools/vino-passwd.c:201 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "'vino-passwd --help' を実行すると利用可能なコマンドラインオプションの一覧が表示されます" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO のバージョンは %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "エラー: あなたには Vino のパスワードを変更するために必要な権限がありません\n" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "\"%s\" という URL を表示する際にエラーが発生しました" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "ヘルプを表示する際にエラーが発生しました:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "このマシンの接続情報を確認しています..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "お使いのデスクトップにはローカルネットワーク内でのみ接続できます。" + +#~ msgid " or " +#~ msgstr " または " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "他の人達からは %s というアドレスであなたのデスクトップにアクセスできます。" + +#~ msgid "Nobody can access your desktop." +#~ msgstr "誰もあなたのデスクトップにはアクセスできません。" + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "リモートからデスクトップを表示する方法を選択したり設定します" + +#~ msgid "If true, we will use UPNP protocol to automatically forward the port used by vino in the router." +#~ msgstr "TRUE にすると、UPnP のプロトコルを利用して vino が使用しているルータ内のポートを自動的にフォワードします。" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "デスクトップ共有の設定" + +#~ msgid "Sharing" +#~ msgstr "共有" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "いくつかの設定は変更不可になっています" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "他のユーザーが自分のデスクトップを表示できる(_V)" + +#~ msgid "Your desktop will be shared" +#~ msgstr "お使いのデスクトップを他のユーザーと共有します" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "他のユーザーがデスクトップを操作できる(_A)" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "リモートのユーザーがあなたのマウスとキーボードを制御できるようになります" + +#~ msgid "Security" +#~ msgstr "セキュリティ" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "このマシンへの接続を毎回確認する(_Y)" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "パスワードの入力を要求する(_R):" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "UPnP ルーターがポートを開放/転送するように自動的に設定する(_C)" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "ルータで UPnP の機能を有効にしておいてください" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "通知領域のアイコンを表示" + +#~ msgid "Al_ways" +#~ msgstr "常に行う(_W)" + +#~ msgid "_Only when someone is connected" +#~ msgstr "誰かが接続している時のみ(_O)" + +#~ msgid "_Never" +#~ msgstr "表示しない(_N)" + +#~ msgid "Question" +#~ msgstr "質問" + +#~ msgid "A user on another computer is trying to remotely view or control your desktop." +#~ msgstr "別のコンピューターのユーザーがリモートからデスクトップを参照する、または制御しようとしています。" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "許可しますか?" diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..4dd892b --- /dev/null +++ b/po/ka.po @@ -0,0 +1,332 @@ +# translation of vino.HEAD.po to Georgian +# Copyright (C) 2006 THE vino'S COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# Besik Meshveliani ბესიკ მეშველიანი <besik28@hotmail.com> +# Vladimer Sichinava ვლადიმერ სიჭინავა <alinux@siena.linux.it>, 2006. +# beso <besik28@hotmail.com>, 2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-03-29 22:52+0200\n" +"PO-Revision-Date: 2006-04-02 03:06+0200\n" +"Last-Translator: Vladimer Sichinava <alinux@siena.linux.it>\n" +"Language-Team: Georgian <gnome@inet.ge>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: KBabel 1.11.2\n" + +#: ../capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "გაგზავნე ეს ბრძანება ელ-ფოსტით" + +#: ../capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "ვერ ვიძახებ %s დამხმარე ფაილს." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "დაშორებული კომპიუტერი" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "დააყენეთ თქვენი პერსონალური პარამეტრები დაშორებული კომპიუტერისავის" + +#: ../capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>უსაფრთხოება</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>შერინგი</b>" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "ადასტურებთ თუ არა" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "მიეცით უფლება სხვა მომხმარებლებს დაათვალიერონ ან მართონ თქვენი კომპიუტერი" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "დაშორებული კომპიუტერის პარამეტრები" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "ზოგიერთი პარამეტრი ბლოკირებულია" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "მომხმარებლებს შეუძლიათ შემოვიდნენ თქვენს კომპიუტერში ამ ბრძანების გამოყენებით:" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "როცა მომხმარებელი ცდილობს თქვენს კომპიუტერში შემოსვლას ან მის მართვას:" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "ნების დართვა თქ_ვენი კომპიუტერის სხვის მიერ მართვაზე" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "_პაროლი:" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "_საჭიროა მომხმარებლის მიერ პაროლის შეყვანა:" + +#: ../capplet/vino-url.c:158 +msgid "Address" +msgstr "მისამართი" + +#: ../capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "მოწყობილობის მისამართი" + +#: ../capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "მინიშნება" + +#: ../capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "მინიშნება მიმდინარე ვებ მისამართისათვის" + +#: ../capplet/vino-url.c:173 +msgid "URL color" +msgstr "ვებ მისამართის ფერი" + +#: ../capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "ვებ მისამარტის სტრიქონის ფერი" + +#: ../server/vino-fb.c:954 +#: ../server/vino-prompt.c:144 +#: ../server/vino-server.c:853 +msgid "Screen" +msgstr "ეკრანი" + +#: ../server/vino-fb.c:955 +msgid "The screen to be monitored" +msgstr "ეკრანი რომელიც მოწმდება" + +#: ../server/vino-main.c:80 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "თქვენი Xსერვერს არ აქვს Xტექსტის მხარდაჭერა - ამიტომ მაშორებულ კომპიუტერში შეღწევა მხოლოდ მისი დათვალიერებით შემოიფარგლება\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:მიუთითე სახელი" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop" +msgstr "%s-ის დაშორებული კომპიუტერი" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "მოკარნახე ეკრანი" + +#: ../server/vino-prompt.c:390 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "კომპიუტერ '%s' -ის მომხმარებელი ცდილობს თქვენს კომპიუტერში შემოსვლას ან მის კონტროლს." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>სხვა მომხმარებელი ცდილობს თქვენს კომპიუტერში შემოღწევას</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "A user on another computer is trying to remotely view or control your desktop." +msgstr "სხვა კომპიუტერის მომხმარებელი ცდილობს შემოვიდეს ან გააკონტროლოს თქვენი კომპიუტერი." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "გნებავთ რომ მისცეთ მას ამის უფლება?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "შეკითხვა" + +#: ../server/vino-prompt.glade.h:5 +#: ../server/vino-util.c:63 +msgid "_Allow" +msgstr "ნების დ_ართვა" + +#: ../server/vino-prompt.glade.h:6 +#: ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "უა_რყოფა" + +#: ../server/vino-server.c:854 +msgid "The screen for which to create a VNC server" +msgstr "VNC სერვერის შესაქმნელი ეკრანი" + +#: ../server/vino-server.c:861 +msgid "On Hold" +msgstr "ლოდინი" + +#: ../server/vino-server.c:862 +msgid "Place all clients on hold" +msgstr "ჩააყენეთ ყველა მომხმარებელი მოცდის რეჟიმში" + +#: ../server/vino-server.c:869 +msgid "Prompt enabled" +msgstr "გაააქტიურე მოკარნახე" + +#: ../server/vino-server.c:870 +msgid "Prompt the user about connection attempts" +msgstr "თხოვეთ მომხმარებელს შეეცადოს შეერთების დამყარებას" + +#: ../server/vino-server.c:877 +msgid "View Only" +msgstr "მხოლოდ ხილვა" + +#: ../server/vino-server.c:878 +msgid "Disallow keyboard/pointer input from clients" +msgstr "აუკრძალეთ მომხმარებელს კლავიატურა/პოინტერის გამოყენება " + +#: ../server/vino-server.c:885 +msgid "Require Encryption" +msgstr "საჭიროებს დაშიფვრას" + +#: ../server/vino-server.c:886 +msgid "Require clients to use encryption" +msgstr "მოთხოვეთ მომხმარებელს, რომ მან გამოიყენოს დაშიფრვა" + +#: ../server/vino-server.c:893 +msgid "Authentication methods" +msgstr "ამოცნობის მეთოდები" + +#: ../server/vino-server.c:894 +msgid "The authentication methods this server should allow" +msgstr "ამ სერვერმა უნდა დაუშვას ამოცნობის მეთოდები" + +#: ../server/vino-server.c:902 +msgid "VNC Password" +msgstr "VNC პაროლი" + +#: ../server/vino-server.c:903 +msgid "The password (base64 encoded) used to authenticate types using the VncAuth method" +msgstr "პარილი (base64 დაშფრული) იყენებს VncAuth მეთოდით გამოყენებულ ამოცნობის ტიპს" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "დაუშვი ამოცნობის მეთოდი" + +#: ../server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ელ-ფოსტა, რომელსაც უნდა გაეგზავნოს მოშორებული კომპიუტერის ვებ მისამართი" + +#: ../server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "დაუშვი კავშირი მოშორებულ კომპიუტერთან" + +#: ../server/vino-server.schemas.in.h:4 +msgid "If true, allows remote access to the desktop via the RFB protocol. Users on remote machines may then connect to the desktop using a vncviewer." +msgstr "თუ ასეა,სეიგი შესაძლებელია მოშორებულ კომპიუტერთან კონტაქტის დამყარება RFB პროტოკოლით. მოშორებული კომპიუტერის მომხმარებლებს შეუძლიათ კავშირი დაამყარონ კომპიუტერთან vncviewer-ის გამოყენებით." + +#: ../server/vino-server.schemas.in.h:5 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "თუ ასეა, ესეიგი მომხმარებლებს რომლებიც ცდილობენ დაშორებულ კომპიუტერთან კავშირის დამყარებას, ვერ დაუკავშირდება მას, სანამ host კომპიუტერის მომხმარებელი არ დართავს მათ ამის უფლებას. განსაკუთრებით რეკომენდირებულია მაშინ, თუ კავშირი არაა დაცული პაროლით." + +#: ../server/vino-server.schemas.in.h:6 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "თუ ასეა, ესეიგი მომხმარებლებს რომლებიც უკავშირდებიან მოსჰორებულ კომპიუტერს,ნება ეძლევათ მხოლოდ მისი დათვალიერების. მოშორებულ მომხმარებელს არ ექნება მაუსის და კლავიატურის გამოყენების საშუალება." + +#: ../server/vino-server.schemas.in.h:7 +msgid "If true, remote users accessing the desktop are required to be able support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "თუ ასეა, ესეიგი მოშორებულ კომპიუტერთან კავშირის მსურველი მომხმარებლები ვალდებულნი არიან გამოიყენონ დაშიფვრის მხარდაჭერა. მკაცრად რეკომენდირებულია მაშინ,თუ ქსელში შემომსვლელი მომხმარებელი არ არის სანდო და რადგან თქვენ იყენებთ პროგრამა-კლიენტს რომელსაც აქვს დაშიფვრის მხარდაჭერა. " + +#: ../server/vino-server.schemas.in.h:8 +msgid "Lists the authentication methods with which remote users may access the desktop. There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc_password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "ახორციელებს ამოცნობის მეთოდების ჩამოთვლას, რომელთა გამოყენებითაც მოშირებულ მომხმარებლებს შეუძლიათ მიმართონ მოშორებულ კომპიუტერს. არსებობს ორი ამოცნობის მეთოდი; \"vnc\" აიძულებს მოშორებულ მომხმარებელს გამოიყენოს პაროლი (იგი წარმოადგენს ერთგვარ გასაღებს vnc სისტემისას) შეერთების წინ და \"none\", რომელიც კავშირის საშუალებას აძლევს ნებისმიერ მოშორებულ მომხმარებელს." + +#: ../server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "მოშორებულ მომხმარებლებს უფლება აქვთ მხოლოდ დაათვალიერონ მოშორებული კომპიუტერი." + +#: ../server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "პაროლი, რომელსაც ითხოვს \"vnc\" ამოცნობისათვის" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "მოთხოვეთ მომხმარებელს სანამ დასრულდება შეერთება" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "კოდირების მოთხოვნა" + +#: ../server/vino-server.schemas.in.h:13 +msgid "The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded." +msgstr "თუ გამოიყენება \"vnc\" ამომცნობის მეთოდი, მოშორებული მომხმარებელი მოწმდება პაროლის მეშვეობით.პაროლი განსაზღვრულია base64 კოდირებით დაკოდირებული გასაებით." + +#: ../server/vino-server.schemas.in.h:14 +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Remote Desktop preferences dialog." +msgstr "გასაღები განსაზღვრავს ელ-ფოსტის მისამართს, რომელსაც უნდა გაეგზავნოს მოშორებული კომპიუტერის ვებ მისამართი. თუ მომხმარებელი დააჭერს ამ ვებ მისამართს მიმართავს მოშორებული კომპიუტერის პარამეტრების დიალოგურ ფანჯარას." + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "მოშორებული კომპიუტერი, რომელთანაც არსებობს კავშირი; მიმდინარეობს კავშირს შეწყვეტა ...\n" + +#: ../server/vino-shell.c:79 +msgid "Problem registering the remote desktop server with bonobo-activation; exiting ...\n" +msgstr "მოშორებულ კომპიუტერს წარმოექმნა რეგისტრაციის პრობლემა bonobo-აქტივატორთან; მიმდინარეობს კავშირის შეწყვეტა ...\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "დაშორებული კომპიუტერის სერვერი მოკვდა, მიმდინარეობს გადატვირთვა\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "%s -ის აქტივაცია შეუძლებელია: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "%s -ის აქტივაცია სეუძლებელია: მიზეზი გაურკვეველია\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "ვერ ვააქტიურებ მოშორებული კომპიუტერის სერვერს: კიდევ სცადეთ\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "მიმდინარეობს მოშორებულ კომპიუტერის სერვერს ჩართვა" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "არ ირთვება მოშორებული კომპიუტერის სერვერი" + diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..f9dedaa --- /dev/null +++ b/po/kk.po @@ -0,0 +1,546 @@ +# Kazakh translation for vino. +# Copyright (C) 2010 vino's COPYRIGHT HOLDER +# This file is distributed under the same license as the vino package. +# Baurzhan Muftakhidinov <baurthefirst@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-10-06 23:11+0000\n" +"PO-Revision-Date: 2015-03-07 20:34+0500\n" +"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n" +"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.7.3\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Басқа портта тыңдау" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Альтернативті порт нөмірі" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Шифрлеуді талап ету" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Рұқсат етілген аутентификация тәсілдері" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Файл дұрыс .desktop файлы емес" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Белгісіз desktop файлдың нұсқасы '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s іске қосылуда" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Қолданба команда жолында құжаттарды қабылдамайды" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Белгісіз жөнелту опциясы: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Құжат URI-ін 'Type=Link' desktop элементіне беру мүмкін емес" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Жөнелтілетін элемент емес" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Сессиялар менеджеріне байланыстарды сөндіру" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Сақталған баптаулары бар файлды көрсету" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Сессия менеджментінің ID-ін көрсету" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Сессияны басқару опциялары:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Сессияны басқару опцияларын көрсету" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" + +#: ../server/vino-main.c:255 +msgid "- VNC Server for GNOME" +msgstr "- GNOME үшін VNC сервері" + +#: ../server/vino-main.c:263 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" + +#: ../server/vino-main.c:275 +msgid "GNOME Desktop Sharing" +msgstr "GNOME жұмыс үстелімен бөлісу" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Экран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Тайдыру" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Қабылдау" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Жұмыс үстелімен бөлісу" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME жұмыс үстелімен бөлісу сервері" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Жұмыс үстелімен бөлісу іске қосылған" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d адам жұмыс үстеліңізді қарауда" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Баптауларды көрсету кезінде қатесі" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Көмекті көрсету кезінде қате кетті" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Baurzhan Muftakhidinov <baurthefirst@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Байланысты үзу" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Баптаулар" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Барлық байланыстарды үзу" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ба_йланысын үзу" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Көмек" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "О_сы туралы" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' байланыспаған" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "" + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "Рұқ_сат ету" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "Та_йдыру" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Қате орын алды:" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Көмекті көрсету кезінде қате кетті:\n" +#~ "%s" + +#, fuzzy +#~ msgid " or " +#~ msgstr "OR" + +#~ msgid "Remote Desktop" +#~ msgstr "Қашықтағы жұмыс үстелі" + +#~ msgid "Notification Area" +#~ msgstr "Хабарламалар орны" + +#~ msgid "Security" +#~ msgstr "Қауіпсіздік" + +#~ msgid "Question" +#~ msgstr "Сұрақ" + +#~ msgid "Cancelled" +#~ msgstr "Бас тартылған" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Кешіріңіз, парольдер өзара сәйкес емес.\n" + +#~ msgid "Error message:" +#~ msgstr "Қате хабарламасы:" diff --git a/po/km.po b/po/km.po new file mode 100644 index 0000000..0472792 --- /dev/null +++ b/po/km.po @@ -0,0 +1,752 @@ +# translation of vino-master-po-km-100338.merged.po to Khmer +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# Sok Sophea <sophea@khmeros.info>, 2012. +# Khoem Sokhem <sokhem@open.org.kh>, 2012. +# Khmer translation for vino +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the vino package. +msgid "" +msgstr "" +"Project-Id-Version: vino-master-po-km-100338.merged\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2012-09-25 22:56+0000\n" +"PO-Revision-Date: 2012-10-01 09:00+0700\n" +"Last-Translator: Khoem Sokhem <sokhem@open.org.kh>\n" +"Language-Team: Khmer <support@khmeros.info>\n" +"Language: km\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: KBabel 1.11.4\n" +"X-Language: km-KH\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "មានកំហុសក្នុងការបង្ហាញ URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"មានកំហុសក្នុងការបង្ហាញជំនួយ ៖\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "កំពុងពិនិត្យមើលការភ្ជាប់ម៉ាស៊ីននេះ..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "ផ្ទៃតុរបស់អ្នកគឺអាចប្រើបានតែនៅលើបណ្ដាញមូលដ្ឋានប៉ុណ្ណោះ ។" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr "ឬ" + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "អ្នកផ្សេងទៀតអាចចូលដំណើរការកុំព្យូទ័ររបស់អ្នកបានដោយប្រើអាសយដ្ឋាន %s ។" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "គ្មានអ្នកណាម្នាក់ចូលដំណើរការផ្ទៃតុរបស់អ្នកបានឡើយ ។" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ការចែករំលែកផ្ទៃតុ" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "ជ្រើសរបៀបអ្នកប្រើផ្សេងទៀតអាចមើលផ្ទៃតុរបស់អ្នកពីចម្ងាយ" + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "ពាក្យសម្ងាត់ការចែករំលែកផ្ទៃតុពីចម្ងាយ" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "បើកការចូលដំណើរការពីចម្ងាយចំពោះផ្ទៃតុនេះ" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"ប្រសិនបើពិត អនុញ្ញាតឲ្យការចូលដំណើរការផ្ទៃតុពីចម្ងាយតាមពិធីការ RFB ។ អ្នកប្រើនៅលើម៉ាស៊ីនពីចម្ងាយអាច" +"តភ្ជាប់ទៅកាន់ផ្ទៃតុបានដោយប្រើកម្មវិធីមើល VNC ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ប្រអប់បញ្ចូលអ្នកប្រើ មុនពេលបញ្ចប់ការតភ្ជាប់" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"ប្រសិនបើពិត អ្នកប្រើពីចម្ងាយក្នុងការចូលដំណើរការផ្ទៃតុមិនត្រូវបានអនុញ្ញាតឲ្យចូលដំណើរការ រហូតដល់អ្នកប្រើ" +"នៅលើម៉ាស៊ីនយល់ព្រមការតភ្ជាប់សិន ។ ផ្ដល់បានអនុសាសន៍ នៅពេលចូលដំណើរការមិនត្រូវការពារពាក្យសម្ងាត់ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "អនុញ្ញាតឲ្យតែអ្នកប្រើពីចម្ងាយប៉ុណ្ណោះដែលអាចមើលផ្ទៃតុបាន" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"ប្រសិនបើពិត អ្នកប្រើដែលចូលដំណើរការផ្ទៃតុពីចម្ងាយមិនត្រូវបានអនុញ្ញាតឲ្យមើលផ្ទៃតុបានទេ ។ អ្នកប្រើពី" +"ចម្ងាយនឹងមិនអាចប្រើកណ្ដុរ ឬក្ដារចុចបានទេ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ចំណុចប្រទាក់បណ្ដាញសម្រាប់ស្ដាប់" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want that accept connections only from some specific network " +"interface. eg: eth0, wifi0, lo, ..." +msgstr "" +"ប្រសិនបើមិនកំណត់ទេ ម៉ាស៊ីនបម្រើនឹងប្រើចំណុចប្រទាក់បណ្ដាញទាំងអស់ ។\n" +" \n" +"កំណត់វាប្រសិនបើអ្នកចង់ឲ្យវាព្រមទទួលការតភ្ជាប់តែមកពីចំណុចប្រទាក់បណ្ដាញជាក់លាក់ខ្លះប៉ុណ្ណោះ ។ ឧ. " +"eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "ប្រើច្រកឆ្លាស់" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"ប្រសិនបើពិត ម៉ាស៊ីនបម្រើនឹងប្រើច្រកផ្សេងទៀតជំនួសឲ្យច្រកលំនាំដើម (៥៩០០) ។ ច្រកត្រូវតែបានបញ្ជាក់នៅក្នុង" +"ពាក្យគន្លឹះ 'alternative-port' ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "លេខច្រកជំនួស" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"ច្រកដែលម៉ាស៊ីនបម្រើនឹងប្រើប្រសិនបើពាក្យគន្លឹះ 'use-alternative-port' ត្រូវបានកំណត់ទៅពិត ។ តម្លៃ" +"ដែលត្រឹមត្រូវគឺនៅចន្លោះពី ៥០០០ ទៅ ៥០០០០ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "ទាមទារការអ៊ិនគ្រីប" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"ប្រសិនបើពិត ផ្ទៃតុការចូលដំណើរការអ្នកប្រើពីចម្ងាយត្រូវបានទាមទារដើម្បីគាំទ្រការអ៊ិនគ្រីប ។ វាត្រូវបាន" +"ផ្ដល់អនុសាសន៍ដ៏ខ្ពង់ខ្ពស់ថា អ្នកគួរតែប្រើម៉ាស៊ីនភ្ញៀវដែលគាំទ្រការអ៊ិនគ្រីប បើមិនដូច្នោះទេ បណ្ដាញ" +"អន្តរាគមន៍គឺត្រូវបានទុកចិត្ត ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "វិធីសាស្ត្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដែលបានអនុញ្ញាត" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"រាយវិធីសាស្ត្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវជាមួយអ្នកប្រើពីចម្ងាយណាមួយដែលអាចចូលដំណើរការផ្ទៃតុបាន ។\n" +"\n" +"មានវិធីសាស្ត្រផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវពីរដែលអាចប្រើបានគឺ ៖ \"vnc\" ធ្វើឲ្យអ្នកប្រើពីចម្ងាយទទួលប្រអប់" +"ពាក្យសម្ងាត់ (ពាក្យសម្ងាត់ត្រូវបានបញ្ជាក់ដោយ vnc-password key) នៅមុនពេលតភ្ជាប់ និង \"none" +"\" គឺអនុញ្ញាតឲ្យអ្នកប្រើពីចម្ងាយទាំងអស់តភ្ជាប់ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "ទាមទារពាក្យសម្ងាត់សម្រាប់ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវរបស់ \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"ពាក្យសម្ងាត់ដែលអ្នកប្រើពីចម្ងាយនឹងត្រូវទទួល ប្រសិនបើវិធីសាស្ត្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ \"vnc\" " +"ត្រូវបានប្រើ ។ ពាក្យសម្ងាត់ត្រូវបានបញ្ជាក់ដោយពាក្យគន្លឹះគឺ base64 ដែលបានអ៊ិនកូដ ។\n" +"\n" +"តម្លៃពិសេសរបស់ 'keyring' (ដែលមិនមែនជា base64 ត្រឹមត្រូវ) មានន័យថាពាក្យសម្ងាត់ត្រូវបានផ្ទុកនៅ" +"ក្នុង GNOME keyring ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "អាសយដ្ឋានអ៊ីមែលដែល URL ផ្ទៃតុពីចម្ងាយគួរផ្ញើ" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ពាក្យគន្លឹះនេះបញ្ជាក់អំពីអាសយដ្ឋានអ៊ីមែលដែល URL ផ្ទៃតុពីចម្ងាយគួរផ្ញើ ប្រសិនបើអ្នកប្រើចុចលើ URL នៅ" +"ក្នុងប្រអប់ចំណូលចិត្តការចែករំលែកផ្ទៃតុ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "ចាក់សោអេក្រង់នៅពេលដែលអ្នកប្រើចុងក្រោយផ្ដាច់" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "ប្រសិនបើពិត អេក្រង់នឹងត្រូវបានចាក់សោបន្ទាប់ពីម៉ាស៊ីនភ្ញៀវពីចម្ងាយចុងក្រោយផ្ដាច់ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "នៅពេលដែលរូបតំណាងស្ថានភាពគួរត្រូវបានបង្ហាញ" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"ពាក្យគន្លឹះនេះគ្រប់គ្រងឥរិយាបថរបស់រូបតំណាងស្ថានភាព ។ មានជម្រើសបីគឺ ៖ \"ជានិច្ច\" រូបតំណាងគឺបង្ហាញ" +"ជានិច្ច \"ម៉ាស៊ីនភ្ញៀវ\" អ្នកនឹងមើលឃើញរូបតំណាងតែនៅពេលដែលមាននរណាម្នាក់បានតភ្ជាប់ប៉ុណ្ណោះ (នេះជា" +"ឥរិយាបថលំនាំដើម) \"កុំ\" រូបតំណាងមិនត្រូវបានបង្ហាញទេ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "When true, disable the background on receive valid session" +msgstr "ប្រសិនបើពិត វានឹងបិទផ្ទៃខាងក្រោយនៅពេលទទួលសម័យត្រឹមត្រូវ" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "ថាតើយើងត្រូវប្រើ UPNP ដើម្បីបញ្ជូនបន្តច្រកនៅក្នុងរ៉ោតទ័រដែរឬទេ" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" +"ប្រសិនបើពិត យើងនឹងប្រើពិធីការ UPNP ដើម្បីបញ្ជូនបន្តដោយស្វ័យប្រវត្តិនូវច្រកដែលបានប្រើដោយ vino នៅ" +"ក្នុងរ៉ោតទ័រ ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "ថាតើយើងគួរបិទផ្នែកបន្ថែម XDamage របស់ X.org ដែរឬទេ" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"ប្រសិនបើពិត យើងនឹងមិនប្រើផ្នែកបន្ថែម XDamage របស់ X.org ទេ ។ ផ្នែកបន្ថែមនេះមិនដំណើរការល្អទេ" +"សម្រាប់កម្មវិធីបញ្ជាវីដេអូមួយចំនួននៅពេលប្រើបែបផែន 3D ។ ការបិទវា នឹងធ្វើឲ្យ vino ដំណើរការនៅលើ" +"បរិស្ថានទាំងនេះដោយការបង្ហាញយឺតៗដូចជាបែបផែនចំហៀង ។" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "Notify on connect" +msgstr "ជូនដំណឹងនៅពេលតភ្ជាប់" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "If true, we will notify, when the user connects to the system." +msgstr "ប្រសិនបើពិត យើងនឹងជូនដំណឹង នៅពេលមានអ្នកប្រើតភ្ជាប់ទៅកាន់ប្រព័ន្ធ ។" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ចំណូលចិត្តការចែករំលែកផ្ទៃតុ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ការចែករំលែក" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ចំណូលចិត្តមួយចំនួនត្រូវបានចាក់សោ" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "អនុញ្ញាតឲ្យអ្នកប្រើផ្សេងទៀតមើលផ្ទៃតុរបស់អ្នក" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "ផ្ទៃតុរបស់អ្នកនឹងត្រូវបានចែករំលែក" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "អនុញ្ញាតឲ្យអ្នកប្រើផ្សេងទៀតគ្រប់គ្រងផ្ទៃតុរបស់អ្នក" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "អ្នកប្រើពីចម្ងាយគឺអាចគ្រប់គ្រងកណ្ដុរ និងក្ដារចុចរបស់អ្នក" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "សុវត្ថិភាព" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "អ្នកត្រូវតែអះអាងការចូលដំណើរការនីមួយទៅកាន់ម៉ាស៊ីននេះ" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ទាមទារឲ្យអ្នកប្រើបញ្ចូលពាក្យសម្ងាត់នេះ ។" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "កំណត់រចនាសម្ព័ន្ធរ៉ោតទ័រ UPnP ដោយស្វ័យប្រវត្តិទៅកាន់ច្រកបើក និងច្រកបញ្ជូនបន្ត" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "រ៉ោតទ័រត្រូវតែបើកលក្ខណៈ UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "បង្ហាញរូបតំណាងផ្ទៃការជូនដំណឹង" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ជានិច្ច" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "នៅពេលដែលមានមនុស្សបានតភ្ជាប់ប៉ុណ្ណោះ" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "កុំ" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ឯកសារមិនមែនជា .desktop ត្រឹមត្រូវទេ" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "មិនស្គាល់ឯកសារផ្ទៃតុកំណែ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "កំពុងចាប់ផ្តើម %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "កម្មវិធីមិនព្រមទទួលឯកសារនៅលើបន្ទាត់ពាក្យបញ្ជា" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "មិនស្គាល់ជម្រើសបើកដំណើរការ ៖ %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "មិនអាចបញ្ជូនឯកសារ URIs ទៅកាន់ធាតុផ្ទៃតុ 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "មិនមែនជាធាតុដែលអាចបើកដំណើរការបានទេ" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ផ្ដាច់ការតភ្ជាប់ទៅកាន់កម្មវិធីគ្រប់គ្រងសម័យ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "បញ្ជាក់ឯកសារដែលមានការកំណត់រចនាសម្ព័ន្ធបានរក្សាទុក" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ឯកសារ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "បញ្ជាក់លេខសម្គាល់ការគ្រប់គ្រងសម័យ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "លេខសម្គាល់" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ជម្រើសការគ្រប់គ្រងសម័យ ៖" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "បង្ហាញជម្រើសការគ្រប់គ្រងសម័យ" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer របស់អ្នកមិនគាំទ្រផ្នែកបន្ថែម XTest - ការចូលដំណើរការផ្ទៃតុពីចម្ងាយនឹងបានតែមើលប៉ុណ្ណោះ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "ចាប់ផ្ដើមក្នុងរបៀបបំពង់ សម្រាប់លក្ខណៈ ‘ការចែករំលែកផ្ទៃតុរបស់ខ្ញុំ’" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- ម៉ាស៊ីនបម្រើ VNC សម្រាប់ GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"ដំណើរការ 'vino-server --help' ដើម្បីមើលបញ្ជីពេញលេញរបស់ជម្រើសបន្ទាត់ពាក្យបញ្ជាដែលមាន" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "ការចែករំលែកផ្ទៃតុ GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "ផ្ទៃតុពីចម្ងាយរបស់ %s នៅលើ %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "បានទទួលសញ្ញា %d នៅពេលចេញ ។" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "អេក្រង់" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "អេក្រង់ដែលត្រូវបង្ហាញប្រអប់បញ្ចូល" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "អ្នកប្រើនៅលើកុំព្យូទ័រ '%s' កំពុងព្យាយាមមើល ឬគ្រប់គ្រងផ្ទៃតុរបស់អ្នកពីចម្ងាយ ។" + +#: ../server/vino-prompt.ui.h:1 +msgid "Question" +msgstr "សំណួរ" + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "មានអ្នកប្រើផ្សេងទៀតកំពុងព្យាយាមមើលផ្ទៃតុរបស់អ្នក ។" + +#: ../server/vino-prompt.ui.h:3 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "អ្នកប្រើនៅលើកុំព្យូទ័រផ្សេងទៀតកំពុងព្យាយាមមើល ឬគ្រប់គ្រងផ្ទៃតុរបស់អ្នកពីចម្ងាយ ។" + +#: ../server/vino-prompt.ui.h:4 +msgid "Do you want to allow them to do so?" +msgstr "តើអ្នកចង់អនុញ្ញាតឲ្យពួកគេធ្វើដូច្នេះដែរឬទេ ?" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "បដិសេធ" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:89 +msgid "_Allow" +msgstr "អនុញ្ញាត" + +#: ../server/vino-server.c:162 ../server/vino-server.c:185 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "បានបរាជ័យក្នុងបើកការតភ្ជាប់ទៅកាន់ខ្សែបញ្ជូន ៖ %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "ម៉ាស៊ីនបម្រើការចែករំលែកផ្ទៃតុរបស់ GNOME" + +#: ../server/vino-status-icon.c:103 ../server/vino-status-tube-icon.c:96 +msgid "Desktop sharing is enabled" +msgstr "បានបើកការចែករំលែកផ្ទៃតុ" + +#: ../server/vino-status-icon.c:111 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "មានមនុស្សចំនួន %d កំពុងមើលផ្ទៃតុរបស់អ្នក" + +#: ../server/vino-status-icon.c:212 ../server/vino-status-tube-icon.c:180 +msgid "Error displaying preferences" +msgstr "មានកំហុសក្នុងការបង្ហាញចំណូលចិត្ត" + +#: ../server/vino-status-icon.c:234 ../server/vino-status-tube-icon.c:200 +msgid "Error displaying help" +msgstr "មានកំហុសក្នុងការបង្ហាញជំនួយ" + +#: ../server/vino-status-icon.c:267 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"បានផ្ដល់អាជ្ញាប័ណ្ណក្រោមកិច្ចព្រមព្រៀងអាជ្ញាប័ណ្ណសាធារណៈទូទៅ GNU កំណែ ២\n" +"\n" +"Vino គឺជាកម្មវិធីឥតបង់ថ្លៃដែលអ្នកអាចចែកចាយ ឬ\n" +"កែប្រែវាឡើងវិញបានក្រោមលក្ខខ័ណ្ឌនៃកិច្ចព្រមព្រៀងអាជ្ញាប័ណ្ណសាធារណៈទូទៅ GNU\n" +"ដូចដែលបានបោះពុម្ពផ្សាយដោយមូលនិធិកម្មវិធីឥតបង់ថ្លៃ កំណែ ២\n" +"នៃអាជ្ញាប័ណ្ណ ឬ (នៅជម្រើសរបស់អ្នក) ក្នុងកំណែក្រោយ ។\n" +"\n" +"Vino ត្រូវបានចែកចាយដើម្បីជាប្រយោជន៍ទូទៅ\n" +"ប៉ុន្តែដោយគ្មានការធានាទេ សូម្បីតែការធានាចំពោះ\n" +"ការធ្វើពាណិជ្ជកម្ម ឬគោលបំណងជាក់លាក់ណាមួយក៏ដោយ ។ សូមមើល\n" +"អាជ្ញាប័ណ្ណសាធារណៈទូទៅ GNU សម្រាប់សេចក្ដីលម្អិត ។\n" +"\n" +"អ្នកគួរតែបានទទួលច្បាប់ចម្លងនៃអាជ្ញាប័ណ្ណសាធារណៈទូទៅ GNU\n" +"ដែលជាប់មកជាមួយកម្មវិធីនេះ ប្រសិនបើមិនបានទទួលទេ សូមសរសេរទៅកាន់ Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA ។\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:282 +msgid "translator-credits" +msgstr "ខឹម សុខែម, ម៉ន ម៉េត, សេង សុត្ថា, ចាន់ សម្បត្តិរតនៈ, សុខ សុភា" + +#: ../server/vino-status-icon.c:288 +msgid "Share your desktop with other users" +msgstr "ចែករំលែកផ្ទៃតុរបស់អ្នកជាមួយអ្នកប្រើផ្សេងទៀត" + +#: ../server/vino-status-icon.c:355 ../server/vino-status-tube-icon.c:232 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "តើអ្នកពិតជាចង់ផ្ដាច់ការតភ្ជាប់ '%s' មែនឬ ?" + +#: ../server/vino-status-icon.c:358 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "អ្នកប្រើពីចម្ងាយនៃ '%s' នឹងត្រូវបានផ្ដាច់ ។ តើអ្នកពិតជាចង់ផ្ដាច់មែនឬ ?" + +#: ../server/vino-status-icon.c:364 +msgid "Are you sure you want to disconnect all clients?" +msgstr "តើអ្នកពិតជាចង់ផ្ដាច់ម៉ាស៊ីនភ្ញៀវទាំងអស់មែនឬ ?" + +#: ../server/vino-status-icon.c:366 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "អ្នកប្រើពីចម្ងាយទាំងអស់នឹងត្រូវបានផ្ដាច់ ។ តើអ្នកពិតជាចង់ផ្ដាច់មែនឬ ?" + +#: ../server/vino-status-icon.c:378 ../server/vino-status-tube-icon.c:246 +msgid "Disconnect" +msgstr "ផ្ដាច់" + +#: ../server/vino-status-icon.c:404 ../server/vino-status-tube-icon.c:271 +msgid "_Preferences" +msgstr "ចំណូលចិត្ត" + +#: ../server/vino-status-icon.c:419 +msgid "Disconnect all" +msgstr "ផ្ដាច់ទាំងអស់" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:443 ../server/vino-status-tube-icon.c:284 +#, c-format +msgid "Disconnect %s" +msgstr "ផ្តាច់ %s" + +#: ../server/vino-status-icon.c:464 ../server/vino-status-tube-icon.c:303 +msgid "_Help" +msgstr "ជំនួយ" + +#: ../server/vino-status-icon.c:472 +msgid "_About" +msgstr "អំពី" + +#: ../server/vino-status-icon.c:605 ../server/vino-status-tube-icon.c:400 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "កំហុសក្នុងការចាប់ផ្ដើម libnotify\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:626 +msgid "Another user is viewing your desktop" +msgstr "មានអ្នកប្រើផ្សេងទៀតកំពុងមើលផ្ទៃតុរបស់អ្នក" + +#: ../server/vino-status-icon.c:628 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "អ្នកប្រើនៅលើកុំព្យូទ័រ '%s' កំពុងមើលផ្ទៃតុរបស់អ្នកពីចម្ងាយ ។" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:634 +msgid "Another user is controlling your desktop" +msgstr "មានអ្នកប្រើផ្សេងទៀតកំពុងគ្រប់គ្រងផ្ទៃតុរបស់អ្នក" + +#: ../server/vino-status-icon.c:636 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "អ្នកប្រើនៅលើកុំព្យូទ័រ '%s' កំពុងគ្រប់គ្រងផ្ទៃតុរបស់អ្នកពីចម្ងាយ ។" + +#: ../server/vino-status-icon.c:664 ../server/vino-status-tube-icon.c:437 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "មានកំហុសនៅពេលបង្ហាញការជូនដំណឹងពពុះ ៖ %s\n" + +#: ../server/vino-status-tube-icon.c:235 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "អ្នកប្រើពីចម្ងាយ '%s' នឹងត្រូវបានផ្ដាច់ ។ តើអ្នកពិតជាចង់ផ្ដាច់មែនឬ ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "ចែករំលែកព័ត៌មានផ្ទៃតុរបស់ខ្ញុំ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' បានបដិសេធការអញ្ជើញចូលរួមចែករំលែកផ្ទៃតុ ។" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' បានផ្តាច់" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' កំពុងគ្រប់គ្រងផ្ទៃតុរបស់អ្នកពីចម្ងាយ ។" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "កំពុងរង់ចាំ '%s' ដើម្បីតភ្ជាប់អេក្រង់ ។" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "កំហុសបានកើតឡើង ៖" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "បានបោះបង់" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "កំហុស ៖ ប្រវែងពាក្យសម្ងាត់អតិបរមាគឺ %d តួអក្សរ ។ សូមបញ្ចូលពាក្យសម្ងាត់ឡើងវិញ ។" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "ការផ្លាស់ប្ដូរពាក្យសម្ងាត់របស់ Vino ។\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "បញ្ចូលពាក្យសម្ងាត់ Vino ថ្មី ៖" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "វាយពាក្យសម្ងាត់ Vino ថ្មីឡើងវិញ ៖" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: បានធ្វើបច្ចុប្បន្នភាពពាក្យសម្ងាត់ដោយជោគជ័យ ។\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "សុំទោស ! ពាក្យសម្ងាត់មិនផ្គូផ្គងទេ ។\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: មិនបានប្ដូរពាក្យសម្ងាត់ ។\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "បង្ហាញកំណែរបស់ Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- ធ្វើបច្ចុប្បន្នភាពពាក្យសម្ងាត់របស់ Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"ដំណើរការ 'vino-passwd --help' ដើម្បីមើលបញ្ជីពេញលេញរបស់ជម្រើសបន្ទាត់ពាក្យបញ្ជាដែលមាន" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO កំណែ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "កំហុស ៖ អ្នកមិនមានសិទ្ធិគ្រប់គ្រាន់ក្នុងការប្ដូរពាក្យសម្ងាត់របស់ Vino ទេ ។\n" diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..70ea84a --- /dev/null +++ b/po/kn.po @@ -0,0 +1,798 @@ +# translation of vino.master.kn.po to Kannada +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad <svenkate@redhat.com>, 2008, 2009, 2012, 2013. +# Daniel Mustieles <daniel.mustieles@gmail.com>, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino.master.kn\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=" +"vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-26 12:37-0400\n" +"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" +"Language-Team: Español <gnome-es-list@gnome.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: kn\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Zanata 3.2.3\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" ಅನ್ನು ತೋರಿಸುವಾಗ ಒಂದು ದೋಷವು ಎದುರಾಗಿದೆ" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "There was an error displaying help:\n" +"%s" +msgstr "ಸಹಾಯವನ್ನು ತೋರಿಸುವಾಗ ಒಂದು ದೋಷವು ಎದುರಾಗಿದೆ:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "ಈ ಗಣಕದ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ಕೇವಲ ಸ್ಥಳೀಯ ಜಾಲಬಂಧದಲ್ಲಿ ಮಾತ್ರ ತಲುಪಬಹುದಾಗಿದೆ." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ಅಥವ " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"ವಿಳಾಸ %s ಅನ್ನು ಬಳಸಿಕೊಂಡು ಬೇರೆಯವರು ನಿಮ್ಮ ಗಣಕವನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಬಹುದಾಗಿದೆ." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "ಯಾರೂ ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ಗಣಕತೆರೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವಿಕೆ" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"ಬೇರೆಯವರು ಹೇಗೆ ದೂರದಿಂದ ನಿಮ್ಮ ಗಣಕವನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಬಹುದು ಎಂಬುದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ಗಣಕತೆರೆ ಹಂಚಿಕೆಯ ಆದ್ಯತೆಗಳು" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ಹಂಚಿಕೆ" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ಈ ಆದ್ಯತೆಗಳಲ್ಲಿ ಕೆಲವನ್ನು ಲಾಕ್ ಮಾಡಲಾಗಿದೆ" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "ಬೇರೆ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನೋಡಲು ಅನುಮತಿಸು (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ಹಂಚಲಾಗುತ್ತದೆ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "ಬೇರೆ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನಿಯಂತ್ರಿಸುವಂತೆ ಮಾಡು(_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "ದೂರಸ್ಥ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆ ಹಾಗು ಕೀಲಿಮಣೆಯನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "ಸುರಕ್ಷತೆ" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "ಈ ಗಣಕದ ಪ್ರತಿಯೊಂದು ನಿಲುಕಣೆಯನ್ನು ನೀವು ಖಚಿತಪಡಿಸಬೇಕು(_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ಬಳಕೆದಾರರು ಗುಪ್ತಪದವನ್ನು ನಮೂದಿಸುವ ಅಗತ್ಯವಿದೆ(_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"ಸಂಪರ್ಕಸ್ಥಾಸಗಳನ್ನು ತೆರೆಯಲು ಮತ್ತು ಫಾರ್ವಾರ್ಡ್ ಮಾಡಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ UPnP ರೌಟರ್ " +"ಅನ್ನು ಬಳಸು (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "ರೌಟರಿನಲ್ಲಿ UPnP ಸವಲತ್ತು ಶಕ್ತಗೊಂಡಿರಬೇಕು" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "ಸೂಚನಾ ಸ್ಥಳದ ಚಿಹ್ನೆಯನ್ನು ತೋರಿಸು" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ಯಾವಾಗಲೂ (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "ಯಾರಾದರೂ ಸಂಪರ್ಕಿತಗೊಂಡಿದ್ದಾಗ ಮಾತ್ರ (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ಎಂದಿಗೂ ಬೇಡ (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "ಗಣಕತೆರೆಯನ್ನು ದೂರದಿಂದ ನಿಲುಕಿಸಿಕೊಳ್ಳುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"true ಆದಲ್ಲಿ, RFB ಪ್ರೊಟೋಕಾಲ್ ಮೂಲಕ ದೂರದಿಂದ ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು " +"ಅನುಮತಿಸುತ್ತದೆ. ದೂರಸ್ಥ ಗಣಕದಲ್ಲಿನ ಬಳಕೆದಾರರು VNC ವೀಕ್ಷಕವನ್ನು ಬಳಸಿಕೊಂಡು " +"ಗಣಕತೆರೆಯೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಬಹುದು." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ಸಂಪರ್ಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಮೊದಲು ಬಳಕೆದಾರರಿಗೆ ತಿಳಿಸು" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"true ಆದಲ್ಲಿ, ಅತಿಥೇಯ ಗಣಕದಲ್ಲಿನ ಬಳಕೆದಾರರು ಅನುಮತಿಸುವವರೆಗೂ ದೂರಸ್ಥ ಬಳಕೆದಾರರು " +"ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿರುವುದಿಲ್ಲ. ನಿಲುಕಣೆಯು ಗುಪ್ತಪದದಿಂದ " +"ಸಂರಕ್ಷಿತಗೊಂಡಿಲ್ಲದೆ ಇರುವಾಗು ಹೀಗೆ ಮಾಡುವಂತೆ ಸಲಹೆ ಮಾಡಲಾಗುವುದು." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "ಗಣಕತೆರೆಯನ್ನು ನೋಡಲು ಕೇವಲ ದೂರಸ್ಥ ಬಳಕೆದಾರರನ್ನು ಮಾತ್ರ ಅನುಮತಿಸು" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"true ಆದಲ್ಲಿ, ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳುತ್ತಿರುವ ದೂರಸ್ಥ ಬಳಕೆದಾರರು ಕೇವಲ " +"ಗಣಕತೆರೆಯನ್ನು ಮಾತ್ರವೆ ನೋಡಲು ಅನುಮತಿ ಇರುತ್ತದೆ. ದೂರಸ್ಥ ಬಳಕೆದಾರರು ಮೌಸ್ ಅಥವ " +"ಕೀಲಿಮಣೆಯನ್ನು ಬಳಸಲು ಅನುಮತಿ ಇರುವುದಿಲ್ಲ." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ಆಲಿಸಲು ಜಾಲಬಂಧ ಸಂಪರ್ಕಸಾಧನ" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"ಹೊಂದಿಸದೆ ಇದ್ದಲ್ಲಿ ಪೂರೈಕೆಗಣಕವು ಎಲ್ಲಾ ಸಂಪರ್ಕ ಸಾಧನಗಳನ್ನು ಆಲಿಸುತ್ತದೆ. \n" +"\n" +"ಕೇವಲ ನಿಶ್ಚಿತವಾದ ಜಾಲಬಂಧ ಸಂಪರ್ಕಸಾಧನದಿಂದ ಸಂಪರ್ಕಗಳನ್ನು ಅಂಗೀಕರಿಸಬೇಕಿದ್ದಲ್ಲಿ " +"ಇದನ್ನು ಬದಲಾಯಿಸಿ. ಉದಾಹರಣೆಗೆ: eth0, wifi0, lo ಮತ್ತು ಇತ್ಯಾದಿ." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "ಒಂದು ಪರ್ಯಾಯ ಸಂಪರ್ಕಸಾಧನದಲ್ಲಿ ಆಲಿಸು" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"true ಆದಲ್ಲಿ, ಪೂರೈಕೆಗಣಕವು ಪೂರ್ವನಿಯೋಜಿತವಾದ (5900) ಸಂಪರ್ಕಸ್ಥಾನದ ಬದಲಿಗೆ " +"ಬೇರೊಂದರಲ್ಲಿ ಆಲಿಸುತ್ತದೆ. ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು 'alternative-port'(ಪರ್ಯಾಯ " +"ಸಂಪರ್ಕಸ್ಥಾನ) ಕೀಲಿಯಲ್ಲಿ ಸೂಚಿಸಿರಬೇಕು." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "ಪರ್ಯಾಯವಾದ ಸಂಪರ್ಕಸ್ಥಾನಗಳ ಸಂಖ್ಯೆ" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative_port' ಕೀಲಿಯನ್ನು true ಗೆ ಹೊಂದಿಸಿದಲ್ಲಿ ಪೂರೈಕೆಗಣಕವು ಆಲಿಸುವ " +"ಸಂಪರ್ಕಸ್ಥಾನ. ಇದರ ಮಾನ್ಯವಾದ ಮೌಲ್ಯಗಳು 5000 ಯಿಂದ 50000 ನ ಒಳಗೆ ಇರುತ್ತವೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "ಗೂಢಲಿಪೀಕರಣದ ಅಗತ್ಯವಿದೆ" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"true ಆದಲ್ಲಿ, ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳುವ ದೂರಸ್ಥ ಬಳಕೆದಾರರು ಗೂಢಲಿಪೀಕರಣವನ್ನು " +"ಬೆಂಬಲಿಸವು ಅಗತ್ಯವಿರುತ್ತದೆ. ನಿಮ್ಮ ಗಣಕ ಹಾಗು ಕ್ಲೈಂಟಿನ ನಡುವಿನ ಜಾಲಬಂಧವನ್ನು ನೀವು " +"ನಂಬದೆ ಇದ್ದ ಪಕ್ಷದಲ್ಲಿ ಗೂಢಲಿಪೀಕರಣವನ್ನು ಬೆಂಬಲಿಸುವ ಒಂದು ಕ್ಲೈಂಟನ್ನು ಬಳಸುವಂತೆ ನಾವು " +"ಬಲವಾಗಿ ಸಲಹೆ ಮಾಡುತ್ತೇವೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ಅನುಮತಿಸಲಾದ ದೃಢೀಕರಣ ಕ್ರಮಗಳು" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"ಬಳಕೆದಾರರು ಗಣಕತೆರೆಯನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಬಳಸಬಹುದಾದ ದೃಢೀಕರಣ ವಿಧಾನವನ್ನು ಪಟ್ಟಿ " +"ಮಾಡುತ್ತದೆ. \n" +"\n" +"ಸಾಧ್ಯವಿರುವ ಎರಡು ದೃಢೀಕರಣ ವಿಧಾನಗಳಿವೆ; ಸಂಪರ್ಕಿತಗೊಳ್ಳುವ ಮೊದಲು ದೂರಸ್ಥ ಬಳಕೆದಾರರು " +"ಗುಪ್ತಪದವೊಂದನ್ನು (vnc-password ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾದ ಗುಪ್ತಪದ) ನಮೂದಿಸುವಂತೆ \"vnc\" " +"ಕೇಳುತ್ತದೆ ಹಾಗು \"none\" ಯಾವುದೆ ದೂರಸ್ಥ ಬಳಕೆದಾರರೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು " +"ಅನುಮತಿಸುತ್ತದೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" ದೃಢೀಕರಣಕ್ಕಾಗಿ ಅಗತ್ಯವಿರುವ ಗುಪ್ತಪದ" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" ದೃಢೀಕರಣವನ್ನು ಬಳಸಿದಲ್ಲಿ ದೂರಸ್ಥ ಬಳಕೆದಾರರಿಗೆ ನಮೂದಿಸುವಂತೆ ಕೇಳಲಾಗುವ " +"ಗುಪ್ತಪದ. ಕೀಲಿಯಿಂದ ಸೂಚಿಸಲಾದ ಗುಪ್ತಪದವು base64 ಎನ್ಕೋಡ್ ಆಗಿರುತ್ತದೆ. \n" +"\n" +"'ಕೀಲಿಗೊಂಚಲಿ'ನ ವಿಶೇಷ ಮೌಲ್ಯವೆಂದರೆ (ಇದು ಮಾನ್ಯವಾದ base64 ಆಗಿರುವುದಿಲ್ಲ) " +"ಗುಪ್ತಪದವನ್ನು GNOME ಕೀಲಿಗೊಂಚಲಿಗಲ್ಲಿ ಉಳಿಸಲಾಗಿರುವುದಿಲ್ಲ ಎಂದರ್ಥ." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ದೂರಸ್ಥ ಗಣಕತೆರೆಯ URL ಅನ್ನು ಕಳುಹಿಸಬೇಕಿರುವ ಇಮೈಲ್ ವಿಳಾಸ" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ಬಳಕೆದಾರರು ದೂರಸ್ಥ ಗಣಕತೆರೆ ಹಂಚಿಕೆ ಆದ್ಯತೆಗಳು ಎಂಬ ಸಂವಾದದಲ್ಲಿನ URL ಮೇಲೆ " +"ಕ್ಲಿಕ್ಕಿಸಿದಾಗ, ದೂರಸ್ಥ ಗಣಕತೆರೆಯ URL ಅನ್ನು ಕಳುಹಿಸಬೇಕಿರುವ ವಿ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಈ " +"ಕೀಲಿಯು ಸೂಚಿಸುತ್ತದೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "ಕೊನೆಯ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕವು ಕಡಿದ ನಂತರ ತೆರೆಯನ್ನು ಲಾಕ್ ಮಾಡು" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"true ಆಗಿದ್ದಲ್ಲಿ, ಕೊನೆಯ ಕ್ಲೈಂಟ್ನೊಂದಿಗೆ ಸಂಪರ್ಕವು ಕಡಿದು ಹೋದ ನಂತರ ತೆರೆಯು ಲಾಕ್ " +"ಆಗುತ್ತದೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "ಯಾವಾಗ ಸ್ಥಿತಿಯ ಚಿಹ್ನೆಯನ್ನು ತೋರಿಸಬೇಕು" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"ಈ ಕೀಲಿಯು ಸ್ಥಿತಿ ಚಿಹ್ನೆಯ ವರ್ತನೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಇಲ್ಲಿ ಮೂರು ಆಯ್ಕೆಗಳಿವೆ: " +"\"always\" - ಚಿಹ್ನೆಯು ಯಾವಾಗಲೂ ಇರುತ್ತದೆ; \"client\" - ಯಾರಾದರೂ " +"ಸಂಪರ್ಕಿತಗೊಂಡಿದ್ದಲ್ಲಿ ಮಾತ್ರ ಚಿಹ್ನೆಯು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ (ಇದು ಪೂರ್ವನಿಯೋಜಿತವಾದ " +"ವರ್ತನೆಯಾಗಿರುತ್ತದೆ); \"never\" - ಎಂದಿಗೂ ಚಿಹ್ನೆಯನ್ನು ತೋರಿಸುವುದಿಲ್ಲ." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "ಬಳಕೆದಾರರ ಸಂಪರ್ಕಿತಗೊಂಡಾಗ ಗಣಕತೆರೆ ಹಿನ್ನಲೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕೆ" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"true ಆಗಿದ್ದಲ್ಲಿ, ಗಣಕತೆರೆ ಹಿನ್ನಲೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು ಮತ್ತು ಬಳಕೆದಾರರು " +"ಯಶಸ್ವಿಯಾಗಿ ಮರುಸಂಪರ್ಕಿತಗೊಂಡಾಗ ಇದನ್ನು ಒಂದು ಬಣ್ಣದ ಬ್ಲಾಕ್ ಇಂದ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"ಸಂಪರ್ಕಸ್ಥಾನಗಳನ್ನು ಫಾರ್ವಾರ್ಡ್ ಮಾಡಲು ಮತ್ತು ತೆರೆಯಲು UPnP ರೌಟರುಗಳಿಗೆ ಅನ್ನು " +"ಬಳಸಬೇಕೆ" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"true ಆದಲ್ಲಿ, Vino ದಿಂದ ಬಳಸಲಾದ ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ಫಾರ್ವಾರ್ಡ್ ಮಾಡಲು ಮತ್ತು " +"ತೆರೆಯಲು UPnP ರೌಟರುಗಳನ್ನು ಬಳಸುವಂತೆ ಮನವಿ ಮಾಡು." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org ಯ XDamage ವಿಸ್ತರಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕೆ" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +"" +msgstr "" +"true ಆದಲ್ಲಿ, X.org ನ XDamage ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಬೇಡಿ. ಈ ವಿಸ್ತರಣೆಯು 3D " +"ಪರಿಣಾಮಗಳನ್ನು ಬಳಸುವಾಗ ಕೆಲವು ವೀಡಿಯೊ ಕಾರ್ಡುಗಳಲ್ಲಿ ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. " +"ಇದನ್ನು ಈ ಪರಿಸರಗಳಲ್ಲಿ ಅಶಕ್ತಗೊಳಿಸುವುದರ ಅಡ್ಡಪರಿಣಾಮವಾಗಿ Vino ನಿಧಾನಗತಿಯಲ್ಲಿ " +"ರೆಂಡರಿನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "ಸಂಪರ್ಕಗೊಂಡಾಗ ಸೂಚಿಸು" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"true ಆದಲ್ಲಿ, ಬಳಕೆದಾರನು ವ್ಯವಸ್ಥೆಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಾಗ ಒಂದು ಸೂಚನೆಯನ್ನು ತೋರಿಸು." + +#: ../common/vino-keyring.c:54 +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "ದೂರಸ್ಥ ಗುಪ್ತಪದ ಹಂಚಿಕೊಳ್ಳುವ ಗುಪ್ತಪದ" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ಕಡತವು ಒಂದು ಮಾನ್ಯವಾದಂತಹ .desktop ಕಡತವಾಗಿಲ್ಲ" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ಗುರುತಿಸಲಾಗದ ಗಣಕತೆರೆ ಕಡತದ ಆವೃತ್ತಿ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ಅನ್ನು ಆರಂಭಿಸಲಾಗುತ್ತಿದೆ" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ಅನ್ವಯವು ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ದಸ್ತಾವೇಜುಗಳನ್ನು ಅಂಗೀಕರಿಸುವುದಿಲ್ಲ" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ಗುರುತಿಸಲಾಗದ ಆರಂಭದ ಆಯ್ಕೆ: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"ದಸ್ತಾವೇಜಿನ URI ಗಳನ್ನು ಒಂದು 'Type=Link' ಗಣಕತೆರೆ ನಮೂದಿಗೆ ರವಾನಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ಆರಂಭಿಸಬಹುದಾದ ಅಂಶವಾಗಿಲ್ಲ" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ಅಧಿವೇಶನದ ವ್ಯವಸ್ಥಾಪಕನೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "ಉಳಿಸಲಾದ ಸಂರಚನೆಯನ್ನು ಹೊಂದಿರುವ ಕಡತವನ್ನು ಸೂಚಿಸಿ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "ಅಧೀವೇಶನ ವ್ಯವಸ್ಥಾಪನಾ ID ಯನ್ನು ಸೂಚಿಸಿ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ಅಧಿವೇಶನ ನಿರ್ವಹಣಾ ಆಯ್ಕೆಗಳು:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "ಅಧಿವೇಶನ ವ್ಯವಸ್ಥಾಪನಾ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XTest ವಿಸ್ತರಣೆಯವನ್ನು ನಿಮ್ಮ XServer ಬೆಂಬಲಿಸುವುದಿಲ್ಲ - ದೂರಸ್ಥ ಗಣಕತೆರೆ " +"ನಿಲುಕಣೆಯು ಕೇವಲ ಓದಲು ಮಾತ್ರವೆ ಆಗಿರುತ್ತದೆ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "‘ನನ್ನ ಗಣಕತೆರೆಯನ್ನು ಹಂಚಿಕೊ’ ಸವಲತ್ತಿಗಾಗಿ ಟ್ಯೂಬ್ ಸ್ಥಿತಿಯಲ್ಲಿ ಆರಂಭಿಸು" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME ಗಾಗಿನ VNC ಪೂರೈಕೆಗಣಕ" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line " +"options" +msgstr "ಲಭ್ಯವಿರುವ ಆಜ್ಞಾ ಸಾಲಿನ ಆಯ್ಕೆಗಳಿಗಾಗಿ 'vino-server --help' ಅನ್ನು ಚಲಾಯಿಸಿ" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME ಗಣಕತೆರೆ ಹಂಚಿಕೆ" + +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s ನ ದೂರಸ್ಥ ಗಣಕತೆರೆ %s ಯಲ್ಲಿ" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d ಸಂಕೇತವನ್ನು ಪಡೆಯಲಾಗಿದೆ, ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "ತೆರೆ" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ಪ್ರಾಂಪ್ಟನ್ನು ತೋರಿಸಬೇಕಿರುವ ತೆರೆ" + +#: ../server/vino-prompt.c:263 +#: ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify ಅನ್ನು ಆರಂಭಿಸುವಲ್ಲಿ ದೋಷ\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"ಗಣಕ '%s' ದ ಒಬ್ಬ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ದೂರದಿಂದ ನೋಡುತ್ತಿದ್ದಾರೆ ಅಥವ " +"ನಿಯಂತ್ರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರನು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನೋಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "ನಿರಾಕರಿಸು" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "ಅಂಗೀಕರಿಸು" + +#: ../server/vino-server.c:166 +#: ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "ಬಸ್ಗೆ ಸಂಪರ್ಕವನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME ಗಣಕತೆರೆ ಹಂಚಿಕಾ ಪೂರೈಕೆಗಣಕ" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;ಹಂಚಿಕೆ;ದೂರಸ್ಥ;" + +#: ../server/vino-status-icon.c:97 +#: ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ಗಣಕತೆರೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನೋಡುತ್ತಿದ್ದಾರೆ" +msgstr[1] "%d ವ್ಯಕ್ತಿಗಳು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನೋಡುತ್ತಿದ್ದಾರೆ" + +#: ../server/vino-status-icon.c:208 +#: ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "ಆದ್ಯತೆಗಳನ್ನು ತೋರಿಸುವಾಗ ಒಂದು ದೋಷವು ಎದುರಾಗಿದೆ" + +#: ../server/vino-status-icon.c:230 +#: ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ಸಹಾಯವನ್ನು ತೋರಿಸುವಾಗ ಒಂದು ದೋಷವು ಎದುರಾಗಿದೆ" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "ಶಂಕರ್ ಪ್ರಸಾದ್ ಎಂ. ವಿ. <svenkate@redhat.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ಇತರರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ" + +#: ../server/vino-status-icon.c:351 +#: ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s' ನೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ಕಡಿಯಬೇಕು ಎಂದು ನೀವು ಖಚಿತವೆ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' ಯಲ್ಲಿನ ದೂರಸ್ಥ ಬಳಕೆದಾರರೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ಕಡಿದು ಹಾಕಲಾಗುತ್ತದೆ. ನೀವು " +"ಖಚಿತವೆ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "" +"ಎಲ್ಲಾ ಕ್ಲೈಂಟ್ಗಳೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ನೀವು ಖಚಿತವಾಗಿಯೂ ಕಡಿದು ಹಾಕಲು ಬಯಸುತ್ತೀರೆ?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"ಎಲ್ಲಾ ದೂರಸ್ಥ ಬಳಕೆದಾರರೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ಕಡಿದು ಹಾಕಲಾಗುತ್ತದೆ. ನೀವು ಖಚಿತವೆ?" + +#: ../server/vino-status-icon.c:374 +#: ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "ಸಂಪರ್ಕ ಕಡಿದು ಹಾಕು" + +#: ../server/vino-status-icon.c:400 +#: ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "ಆದ್ಯತೆಗಳು(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "ಎಲ್ಲಾ ಸಂಪರ್ಕವನ್ನು ಕಡಿದು ಹಾಕು" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 +#: ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ಸಂಪರ್ಕವನ್ನು ಕಡಿದು ಹಾಕು" + +#: ../server/vino-status-icon.c:460 +#: ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ನೆರವು(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "ಇದರ ಬಗ್ಗೆ(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "ಬೇರೊಬ್ಬ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನೋಡುತ್ತಿದ್ದಾರೆ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "ಗಣಕ '%s' ದ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ದೂರದಿಂದ ನೋಡುತ್ತಿದ್ದಾರೆ." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "ಬೇರೊಬ್ಬ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತಿದ್ದಾರೆ" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "ಗಣಕ '%s' ದ ಬಳಕೆದಾರರು ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ದೂರದಿಂದ ನಿಯಂತ್ರಿಸುತ್ತಿದ್ದಾರೆ." + +#: ../server/vino-status-icon.c:651 +#: ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "ಸೂಚನಾ ಗುಳ್ಳೆಯನ್ನು ತೋರಿಸುವಾಗ ದೋಷವು ಉಂಟಾಗಿದೆ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"ದೂರಸ್ಥ ಬಳಕೆದಾರ '%s' ನೊಂದಿಗಿನ ಸಂಪರ್ಕವನ್ನು ಕಡಿದು ಹಾಕಲಾಗುತ್ತದೆ. ನೀವು ಖಚಿತವೆ?" + +#: ../server/vino-tube-server.c:220 +#: ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "ನನ್ನ ಗಣಕತೆರೆಯನ್ನು ಇತರರೊಂದಿಗೆ ಹಂಚಿಕೊ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "ಗಣಕತೆರೆ ಹಂಚಿಕೊಳ್ಳುವ ಆಹ್ವಾನವನ್ನು '%s' ತಿರಸ್ಕರಿಸಿದ್ದಾರೆ." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' ಸಂಪರ್ಕ ಕಡಿದು ಹೋಗಿದೆ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' ನಿಮ್ಮ ಗಣಕತೆರೆಯನ್ನು ದೂರದಿಂದ ನಿಯಂತ್ರಿಸುತ್ತಿದ್ದಾರೆ." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "ತೆರೆಗೆ ಸಂಪರ್ಕ ಹೊಂದುವಂತೆ '%s' ಗಾಗಿ ಕಾಯಲಾಗುತ್ತಿದೆ." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "ಅನುಮತಿಸು(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "ನಿರಾಕರಿಸು(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ಒಂದು ದೋಷವು ಸಂಭವಿಸಿದೆ:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "ರದ್ದು ಮಾಡಲಾಗಿದೆ" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ದೋಷ: ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಉದ್ದವು %d ಅಕ್ಷರವಾಗಿರಬೇಕು. ದಯವಿಟ್ಟು ಗುಪ್ತಪದವನ್ನು ಮರಳಿ " +"ನಮೂದಿಸಿ." +msgstr[1] "" +"ದೋಷ: ಗುಪ್ತಪದದ ಗರಿಷ್ಟ ಉದ್ದವು %d ಅಕ್ಷರಗಳಾಗಿರಬೇಕು. ದಯವಿಟ್ಟು ಗುಪ್ತಪದವನ್ನು ಮರಳಿ " +"ನಮೂದಿಸಿ." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "ಹೊಸ Vino ಗುಪ್ತಪದವನ್ನು ನಮೂದಿಸಿ: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "ಹೊಸ Vino ಗುಪ್ತಪದವನ್ನು ಮರಳಿ ನಮೂದಿಸಿ: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: ಗುಪ್ತಪದವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "ಕ್ಷಮಿಸಿ ಗುಪ್ತದಗಳು ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino ಆವೃತ್ತಿಯನ್ನು ತೋರಿಸು" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino ಗುಪ್ತಪದದ ಅಪ್ಡೇಟ್ಗಳು" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line " +"options" +msgstr "ಲಭ್ಯವಿರುವ ಆಜ್ಞಾ ಸಾಲಿನ ಆಯ್ಕೆಗಳಿಗಾಗಿ 'vino-passwd --help' ಅನ್ನು ಚಲಾಯಿಸಿ" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO ಆವೃತ್ತಿ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ದೋಷ: Vino ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲು ನಿಮಗೆ ಸಾಕಷ್ಟು ಅನುಮತಿ ಇಲ್ಲ.\n" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..26295f6 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,752 @@ +# vino korean translation +# This file is distributed under the same license as the vino package. +# +# Young-Ho Cha, <ganadist@mizi.com> 2004,2007 +# Changwoo Ryu <cwryu@debian.org> 2008-2013. +# +# 새로 번역하신 분은 아래 "translator-credits"에 추가하세요. +# +# 용어: +# - 이 프로그램의 이름은 "비노"로 음역 +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-17 20:14+0900\n" +"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" +"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "\"%s\" URL을 표시하는데 오류가 발생했습니다" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"도움말을 보는데 오류가 발생했습니다:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "이 컴퓨터의 네트워크 연결을 검사하는 중입니다..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "이 데스크톱은 로컬 네트워크에만 연결할 수 있습니다." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " 혹은 " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "다른 컴퓨터가 이 컴퓨터에 %s 주소로 연결할 수 있습니다." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "다른 컴퓨터에서 이 데스크톱에 연결할 수 없습니다." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "데스크톱 공유" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "다른 사용자가 데스크톱을 보는 방법을 설정합니다" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "데스크톱 공유 기본 설정" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "공유" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "잠겨져 있는 설정이 있습니다" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "다른 사용자가 데스크톱을 볼 수 있도록 합니다(_V)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "데스크톱을 공유합니다" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "다른 사용자가 데스크톱을 제어할 수 있음(_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "원격 사용자가 마우스와 키보드를 조작할 수 있습니다" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "보안" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "매번 이 컴퓨터에 연결할 때마다 확인(_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "사용자가 이 암호를 입력(_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "포트를 열고 포워딩할 때 UPnP 라우터 자동 설정" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "라우터에서 UPnP 기능을 사용해야 합니다" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "알림 영역 아이콘 표시" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "항상 사용(_W)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "누군가 연결되었을 경우에만(_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "하지 않기(_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "데스크톱에 원격 접근 허용" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"참이면 RFB 프로토콜을 통해서 원격으로 데스크톱에 접근을 허용합니다. 원격 컴퓨" +"터의 사용자는 VNC viewer를 써서 데스크톱에 접근할 수 있습니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "연결을 하기전에 사용자에게 물어봄" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"참이면 로컬 사용자가 연결을 허용할 때 까지 원격사용자가 데스크톱에 접근할 수 " +"없습니다. 암호로 접근을 막아두지 않았을 때 쓰는 것이 좋습니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "원격 사용자에게 데스크톱을 보기 전용으로만 허용" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"참이면 원격 사용자가 데스크톱을 보는 것만 허용합니다. 원격 사용자는 마우스나 " +"키보드를 쓸 수 없습니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "연결을 받아들일 네트워크 인터페이스" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"설정하지 않으면 모든 네트워크 인터페이스에 대해 연결을 받아들입니다.\n" +"\n" +"특정 네트워크 인터페이스에서만 연결을 받아들이려면 설정하십시오. 예를 들어 eth0, wifi0, lo 등" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "보조 포트에서 연결 받기" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"참이면 서버가 기본 포트(5900) 대신 다른 포트에서 연결을 받아들입니다. 포트 번" +"호는 'alternative-port' 키에 지정해야 합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "보조 포트 번호" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative-port'키가 참이면 연결을 받아들일 포트 번호입니다. 올바른 범" +"위는 5000에서 50000입니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "암호화 필요" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "참이면 원격사용자가 데스크톱에 접근할 때 암호화가 필요합니다. 외부 네트워크가 신뢰할 수 없다면 암호화를 지원하는 클라이언트를 쓰는 것이 좋습니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "허용된 인증 방법" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"원격 사용자가 데스크톱에 접근할 때 쓰일 인증 방법의 목록입니다.\n" +"\n" +"쓸 수 있는 인증방법은 두가지가 있습니다. \"vnc\"는 원격 사용자가 연결하기 전" +"에 암호 인증을 합니다. (그 암호는 vnc-password 키에서 지정합니다.) \"none" +"\"은 아무 원격 사용자에게 연결을 허용합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" 인증에 필요한 암호" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" 인증방법을 사용하는 경우 원격 사용자에게 물어볼 암호입니다. 이 키에 " +"들어 있는 암호는 base64 인코딩되어 있습니다.\n" +"\n" +"값이 'keyring'인 경우(올바른 base64 값이 아님) 암호를 그놈 키 모음에 저장한다" +"는 뜻입니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "원격 데스크톱 URL을 보낼 전자우편 주소" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"데스크톱 공유 기본 설정 대화상자에서 사용자가 URL을 눌렀을 때 원격 데스크톱 " +"URL을 보낼 메일주소를 지정합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "모든 사용자의 연결이 끊기면 화면 잠그기" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "참이면 원격 클라이언트의 연결이 끊긴 후 화면을 잠급니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "상태 아이콘을 표시해야 할 때" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"이 키는 상태 아이콘의 동작을 지정합니다. 세 가지 중의 하나를 사용할 수 있습니" +"다: \"always\" - 항상 아이콘을 표시합니다, \"client\" - 누군가 연결했을 경우" +"에만 아이콘이 나타납니다(기본 동작), \"never\" - 아이콘을 표시하지 않습니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "사용자가 연결했을 때 배경을 그릴지 여부" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "참이면 사용자가 연결했을 때 바탕 화면 배경을 그리지 않고, 한 가지 색으로 표시합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "포트를 열고 포워드하는데 UPnP 라우터를 사용할지 여부" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "참이면 비노에서 사용하는 포트를 UPnP 가능 라우터에서 열어 전달합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org의 XDamage 확장을 사용하지 않을지 여부" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "참이면 X.org의 XDamage 확장을 사용하지 않습니다. 이 확장 기능은 3D 효과를 사용했을 경우 일부 비디오 드라이버에서 올바르게 동작하지 않습니다. 이 확장 기능을 사용하지 않으면 이러한 비디오 드라이버에서 비노가 동작할 수 있습니다. 단 느리게 동작합니다." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "연결할 때 알림" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "참이면 사용자가 시스템에 연결했을 때 알림을 표시합니다." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "원격 데스크톱 공유 암호" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "올바른 .desktop 파일이 아닙니다" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "desktop 파일 버전을 ('%s') 인식할 수 없습니다" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s 시작" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "명령행에서 문서를 지정할 수 없는 프로그램입니다" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "알 수 없는 실행 옵션: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "문서 URI는 'Type=Link' desktop 항목에 넘길 수 없습니다" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "실행할 수 있는 항목이 없습니다" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "세션 관리자에 연결하지 않습니다" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "설정을 저장할 파일을 지정합니다" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "<파일>" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "세션 관리 ID를 지정합니다" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "<ID>" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "세션 관리 옵션:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "세션 관리 옵션을 표시합니다" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"X서버에서 XTest 확장기능을 지원하지 않습니다 - 원격 데스크톱에 보기전용으로" +"만 접근할 수 있습니다\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "튜브 모드로 시작, '내 데스크톱 공유' 기능을 위해" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- 그놈 데스크톱을 위한 VNC 서버" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"전체 명령행 옵션의 목록을 보려면 'vino-passwd --help' 명령을 실행하십시오" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "그놈 데스크톱 공유" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%2$s에 있는 %1$s의 원격 데스크톱" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "시그널 %d번을 받았습니다, 끝냅니다." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "화면" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "확인을 보여줄 화면" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify 초기화 중 오류\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "컴퓨터 '%s'의 사용자가 원격에서 데스크톱을 보거나 제어하려 합니다." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "다른 사용자가 데스크톱을 보려 합니다." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "거부" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "허용" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "버스로 연결 열기 실패: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "그놈 데스크톱 공유 서버" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;공유;remote;원격;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "데스크톱 공유를 사용합니다" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d명이 데스크톱을 보고 있습니다" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "기본 설정을 표시하는데 오류가 발생했습니다" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "도움말을 표시하는데 오류가 발생했습니다" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"차영호 <ganadist@gmail.com>, 2004, 2007.\n" +"류창우 <cwryu@debian.org>, 2008." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "데스크톱을 다른 사람과 공유합니다" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s'의 연결을 정말로 끊겠습니까?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s'의 원격 사용자 연결을 끊겠습니까?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "모든 클라이언트의 연결을 끊겠습니까?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "모든 원격 사용자의 연결을 끊겠습니까?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "연결 끊기" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "기본 설정(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "모두 연결 끊기" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s의 연결 끊기" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "도움말(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "정보(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "다른 사용자가 데스크톱을 보고 있습니다" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "컴퓨터 '%s'의 사용자가 원격에서 데스크톱을 보고 있습니다." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "다른 사용자가 데스크톱을 제어하고 있습니다" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "컴퓨터 '%s'의 사용자가 원격에서 데스크톱을 제어하고 있습니다." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "알림 상자를 표시하는데 오류: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "'%s' 원격 사용자의 연결이 끊어집니다. 정말 계속 하시겠습니까?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "데스크톱 정보 공유" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' 사용자가 데스크톱 공유 초대를 거절했습니다." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' 사용자가 연결 끊었습니다" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' 사용자가 원격에서 데스크톱을 제어하고 있습니다." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' 사용자가 화면에 연결하길 기다리는 중입니다." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "허용(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "거부(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "오류가 발생했습니다:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "취소함" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "오류: 암호 길이는 최대 %d글자입니다. 암호를 다시 입력하십시오." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "비노 암호를 바꾸는 중입니다.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "새 비노 암호를 입력하십시오: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "새 비노 암호를 다시 입력하십시오: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: 암호를 성공적으로 바꿨습니다.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "암호가 맞지 않습니다.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: 암호를 바꾸지 않았습니다.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "비노 버전 표시" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- 비노 암호를 바꿉니다" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "명령행 옵션 목록을 보려면 'vino-passwd --help' 명령을 실행하십시오" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "비노 버전 %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "오류: 비노 암호를 바꿀 권한이 없습니다.\n" diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 0000000..03ca1bf --- /dev/null +++ b/po/ku.po @@ -0,0 +1,338 @@ +# translation of vino.HEAD.po to Kurdish +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Erdal Ronahi <erdal.ronahi@gmail.com>, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-09 13:44+0200\n" +"PO-Revision-Date: 2005-10-15 16:21+0200\n" +"Last-Translator: Erdal Ronahi <erdal.ronahi@gmail.com>\n" +"Language-Team: Kurdish <gnu-ku-wergerandin@lists.sourceforge.net>\n" +"Language: ku\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10\n" +"Plural-Forms: nplurals=2; plural= n != 1\n" + +#: ../capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "" + +#: ../capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Sermaseya Dûr" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:2 +msgid " " +msgstr "" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Ewlekarî</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Parvekirin</b>" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Vebijêrkên Sermaseya Dûr" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "Şî_fre:" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "" + +#: ../capplet/vino-url.c:158 +msgid "Address" +msgstr "Navnîşan" + +#: ../capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "" + +#: ../capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "" + +#: ../capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "" + +#: ../capplet/vino-url.c:173 +msgid "URL color" +msgstr "" + +#: ../capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "" + +#: ../server/vino-fb.c:954 ../server/vino-prompt.c:144 +#: ../server/vino-server.c:850 +msgid "Screen" +msgstr "Dîmen" + +#: ../server/vino-fb.c:955 +msgid "The screen to be monitored" +msgstr "" + +#: ../server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "" + +#: ../server/vino-prompt.c:390 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Pirs" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Destûr bide" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Red bike" + +#: ../server/vino-server.c:851 +msgid "The screen for which to create a VNC server" +msgstr "" + +#: ../server/vino-server.c:858 +msgid "On Hold" +msgstr "" + +#: ../server/vino-server.c:859 +msgid "Place all clients on hold" +msgstr "" + +#: ../server/vino-server.c:866 +msgid "Prompt enabled" +msgstr "" + +#: ../server/vino-server.c:867 +msgid "Prompt the user about connection attempts" +msgstr "" + +#: ../server/vino-server.c:874 +msgid "View Only" +msgstr "" + +#: ../server/vino-server.c:875 +msgid "Disallow keyboard/pointer input from clients" +msgstr "" + +#: ../server/vino-server.c:882 +msgid "Require Encryption" +msgstr "" + +#: ../server/vino-server.c:883 +msgid "Require clients to use encryption" +msgstr "" + +#: ../server/vino-server.c:890 +msgid "Authentication methods" +msgstr "" + +#: ../server/vino-server.c:891 +msgid "The authentication methods this server should allow" +msgstr "" + +#: ../server/vino-server.c:899 +msgid "VNC Password" +msgstr "" + +#: ../server/vino-server.c:900 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "" + +#: ../server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" + +#: ../server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "" + +#: ../server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: ../server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: ../server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "" + diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..094c3d8 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,801 @@ +# translation of lt.po to Lithuanian +# Lithuanian translation of vino. +# Copyright (C) 2004-2006, 2007, 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# +# Žygimantas Beručka <zygis@gnome.org>, 2004-2007. +# Gintautas Miliauskas <gintas@akl.lt>, 2007, 2008. +# Mantas Kriaučiūnas <mantas@akl.lt>, 2012. +# Aurimas Černius <aurisc4@gmail.com>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-02-09 23:26+0200\n" +"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" +"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Klaida rodant URL „%s“" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Bandant parodyti žinyną įvyko klaida:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Tikrinama šio kompiuterio tinklo jungties būsena..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Kompiuteris pasiekiamas tik per vietinį tinklą." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " arba " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Kiti gali pasiekti šį kompiuterį adresu %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Niekas negali pasiekti šio kompiuterio." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Dalinimasis darbastaliu" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Pasirinkite, kaip kiti žmonės gali matyti ar valdyti Jūsų darbastalį " +"nuotoliniu būdu (per tinklą)" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Dalijimosi darbastaliu nustatymai" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Viešinimas" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Kai kurie iš šių nustatymų yra užrakinti" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "" +"Leisti kitiems naudotojams _matyti jūsų darbastalį ir veikiančias programas" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "" +"Darbastalį bei veikiančias programas per tinklą galės matyti kiti naudotojai" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "" +"_Leisti kitiems naudotojams valdyti jūsų darbastalį bei naudotis programomis" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Jei pažymėta, nutolę naudotojai gali valdyti pelę ir klaviatūrą" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Saugumas" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Turite patvirtinti kiekvieną prisijungimą prie šio kompiuterio" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Naudotojas turi įvesti šį slaptažodį:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automatiškai _konfigūruoti UPnP maršrutizatorių priešakinių prievadų " +"atvėrimui" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Maršrutizatoriuje turi būti įjungtas UPnP palaikymas" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Rodyti pranešimų srities piktogramą" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Visada" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Rodyti _tik kai kas nors yra prisijungęs" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Niekada" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Leisti nutolusiems naudotojams pasiekti darbastalį" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Jei teigiama, nuotolinis priėjimas prie darbastalio per RFB protokolą yra " +"leidžiamas. Naudotojai nutolusiuose kompiuteriuose gali prisijungti prie " +"darbastalio naudodami VNC žiūryklę." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Perspėti naudotoją prieš užbaigiant prisijungimą" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Jei reikšmė teigiama, nutolę naudotojai bandantys prieiti prie darbastalio " +"yra neleidžiami, kol naudotojas vietiniame kompiuteryje nepatvirtins " +"prisijungimo.Ypač rekomenduojama, kada priėjimas yra neapsaugotas " +"slaptažodžiu." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Nutolusiems naudotojams leisti tik matyti darbastalį" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Jei reikšmė teigiama, nutolusiems naudotojams, bandantiems gauti prieigą " +"prie darbastalio, leidžiama tik matyti darbastalį. Nutolę naudotojai negalės " +"naudotis pele ar klaviatūra." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Tinklo sąsaja išoriniams prisijungimams" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Jei nenustatyta, serveris lauks prisijungimų visomis tinklo sąsajomis.\n" +"\n" +"Nustatykite, jei norite priimti prisijungimus tik keliomis konkrečiomis " +"tinklo sąsajomis, pvz., eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Laukti prisijungimų alternatyviu prievadu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Jei teigiama, serveris lauks prisijungimų prie kito prievado, o ne " +"numatytojo (5900). Prievado numeris turi būti nurodytas rakte „alternative-" +"port“." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternatyvus prievado numeris" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Prievadas, kuriame laukiama prisijungimų, jei „use-alternative-port“ reikšmė " +"teigiama. Leistinos reikšmės nuo 5000 iki 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Reikalingas šifravimas" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Jei reikšmė teigiama, nutolusieji naudotojai, bandantys gauti prieigą prie " +"darbastalio, turi palaikyti šifravimą. Labai rekomenduojama, kad naudotomėte " +"klientą, palaikantį šifravimą, nebent tarpinis tinklas yra patikimas." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Leistini tapatumo nustatymo metodai" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Išvardina tapatybės nustatymo metodus, su kuriais nutolę naudotojai gali " +"prieiti prie darbastalio.\n" +"\n" +"Yra du galimi tapatumo nustatymo metodai; „vnc“ – nutolusio naudotojo prieš " +"prisijungiant paprašoma įvesti slaptažodį (slaptažodis nurodomas vnc-" +"password rakte) ir „none“ – leidžia prisijungti visiems nutolusiems " +"naudotojams." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Slaptažodis, reikalingas „vnc“ tapatumo nustatymui" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Slaptažodis, kurio bus paklaustas bandantis prisijungti nutolęs naudotojas, " +"jei naudojamas „vnc“ tapatumo nustatymo metodas. Rakto nurodytas slaptažodis " +"yra užšifruotas base64.\n" +"\n" +"Speciali reikšmė „keyring“ (kuri nėra tinkama base64) reiškia, kad " +"slaptažodis yra saugomas GNOME raktinėje." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"El.pašto adresas į kurį turi būti siunčiamas nuotolinio darbastalio URL" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Šis raktas nurodo el.pašto adresą, į kurį turėtų būti nusiųstas nutolusio " +"darbastalio URL, jeigu naudotojas nutolusio darbastalio nustatymų lange " +"spusteli ant URL." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Užrakinti ekraną, kai atsijungia paskutinis naudotojas" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Jeigu reikšmė teigiama, atsijungus paskutiniam nutolusiam klientui, ekranas " +"bus užrakintas." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Ar rodyti būsenos piktogramą" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Šis nustatymas valdo būsenos piktogramą. Yra trys pasirinkimai: „always“ - " +"piktograma visada rodoma; „client“ - piktograma rodoma tik kai kas nors " +"prisijungęs (numatyta elgsena); „never“ - piktograma niekada nerodoma." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Ar išjungti darbastalio foną prisijungus naudotojui" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Kai teigiama, naudotojui sėkmingai prisijungus išjungti darbastalio foną ir " +"pakeisti jį viena spalva." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Ar naudoti UPnP maršrutizatorių prievadų atvėrimui ir persiuntimui" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Jei teigiama, reikalauti, kad UPnP-gebantis maršrutizatorius atvertų ir " +"persiųstų Vino naudojamą prievadą." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Ar išjungti X.org plėtinį XDamage." + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Jei teigiama, nebus naudojamas X.org plėtinys XDamage. Šis plėtinys su kai " +"kuriomis vaizdo tvarkyklėmis veikia netinkamai, kai naudojami 3D efektai. " +"Išjungimas leis vino veikti tokiose aplinkose, tačiau tai sulėtins " +"atvaizdavimą." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Pranešti, kai prisijungia" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "Jei teigiama, bus pranešta, kai naudotojas prisijungia prie sistemos." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Nuotolinio dalinimosi darbastaliu slaptažodis" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Failas nėra validus .desktop failas" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Neatpažinta .desktop failo versija „%s“" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Paleidžiama %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programa nepriima dokumentų komandinėje eilutėje" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Neatpažintas paleidimo nustatymas: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Negalima perduoti dokumentų URI „Type=Link“ darbastalio elementui" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nepaleidžiamas elementas" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Išjungti prisijungimą prie seansų valdyklės" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Nurodyti failą su įrašytais nustatymais" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FAILAS" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Nurodykite seanso valdymo ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Seanso valdymo nustatymai:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Rodyti seanso valdymo nustatymus" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Jūsų XServeris nepalaiko XTest plėtinio – nutolusio dabastalio prieiga bus " +"tik skaitymui\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Paleisti tube veiksena, savybei „Dalinti darbastaliu“" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC serveris GNOME sistemai" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Paleiskite „vino-server --help“, jei norite pamatyti komandinės eilutės " +"parametrus" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME darbastalio dalijimasis" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Nutolęs %s darbastalis kompiuteryje %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Gautas signalas %d, išeinama." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekranas" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Ekranas, kuriame parodyti kvietinį" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Klaida inicializuojant libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Naudotojas iš nutolusio kompiuterio „%s“ bando pamatyti arba valdyti jūsų " +"darbastalį." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Kitas naudotojas bando pamatyti jūsų darbastalį." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Atmesti" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Priimti" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Nepavyko atverti prisijungimo prie magistralės: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME darbastalio dalijimosi serveris" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;bendrinti;nuotolinis;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Dalijimasis darbastaliu įjungtas" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d asmuo stebi jūsų darbastalį" +msgstr[1] "%d žmonės stebi jūsų darbastalį" +msgstr[2] "%d žmonių stebi jūsų darbastalį" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Klaida bandant parodyti nustatymus" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Klaida rodant žinyną" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Platinama pagal GNU GPL v2\n" +"\n" +"Vino yra laisvoji programinė įranga; galite ją platinti ir / arba " +"modifikuoti GNU Bendrosios Viešosios Licencijos sąlygomis, paskelbtomis " +"Laisvosios Programinės Įrangos Fondo; 2-osios arba (jūsų pasirinkimu) bet " +"kurios vėlesnės licencijos versijos sąlygomis.\n" +"\n" +"Vino yra platinama tikintis, kad ji bus naudinga, tačiau nesuteikiant JOKIŲ " +"GARANTIJŲ; netgi numanomų PARDAVIMO arba TINKAMUMO TAM TIKRAM TIKSLUI " +"garantijų. Išsamesnę informaciją rasite GNU Bendrojoje Viešojoje " +"licencijoje.\n" +"\n" +"Turėjote gauti GNU Bendrosios Viešosios licencijos kopiją kartu su Vino; " +"jeigu negavote, rašykite Free Software Foundation, 59 Temple Place - Suite " +"330, Boston, MA 02111-1307, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Žygimantas Beručka\n" +"Mantas Kriaučiūnas" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Dalintis darbastaliu su kitais naudotojais" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ar tikrai norite atjungti „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Nutolęs naudotojas iš „%s“ bus atjungtas. Ar norite tęsti?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ar tikrai norite atjungti visus klientus?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Visi nutolę naudotojai bus atjungti? Ar tikrai norite tai atlikti?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Atjungti" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Nustatymai" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Atjungti visus" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Atjungti %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Žinynas" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Apie" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Kitas naudotojas stebi jūsų darbastalį" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Naudotojas iš nutolusio kompiuterio „%s“ stebi jūsų darbastalį." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Kitas naudotojas valdo jūsų darbastalį" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Naudotojas iš nutolusio kompiuterio „%s“ valdo jūsų darbastalį." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Klaida rodant pranešimą: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Nutolęs naudotojas „%s“ bus atjungtas. Ar norite tęsti?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Dalintis mano darbastalio informacija" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s“ atmetė darbastalio dalijimosi pakvietimą." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s“ atjungtas" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s“ valdo jūsų darbastalį." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Laukiama, kol „%s“ prisijungs." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Leisti" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Neleisti" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Įvyko klaida:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Atsisakyta" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"KLAIDA: Maksimalus slaptažodžio ilgis yra %d simbolis. Įveskite kitą " +"slaptažodį." +msgstr[1] "" +"KLAIDA: Maksimalus slaptažodžio ilgis yra %d simboliai. Įveskite kitą " +"slaptažodį." +msgstr[2] "" +"KLAIDA: Maksimalus slaptažodžio ilgis yra %d simbolių. Įveskite kitą " +"slaptažodį." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Keičiamas Vino slaptažodis.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Įveskite naują Vino slaptažodį: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Dar kartą įveskite naują Vino slaptažodį: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: slaptažodis sėkmingai pakeistas.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Slaptažodžiai neatitinka.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: slaptažodis nepakeistas.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Rodyti Vino versiją" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Pakeičia Vino slaptažodį" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Paleiskite „vino-passwd --help“, jei norite pamatyti komandinės eilutės " +"parametrus" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO versija %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "KLAIDA: Neturite leidimo keisti Vino slaptažodį.\n" + diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..880c552 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,1022 @@ +# translation of lv.po to Latvian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Eriks <eriks.skipars@gmail.com>, 2006. +# Raivis Dejus <orvils@gmail.com>, 2006. +# Peteris Krisjanis <pecisk@gmail.com>, 2009, 2010. +# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: lv\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-03-11 00:48+0200\n" +"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n" +"Language-Team: Latvian <lata-l10n@googlegroups.com>\n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" +"X-Generator: Lokalize 1.4\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Kļūda, parādot URL “%s”" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"kļūda, parādot palīdzību: \n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Pārbaudīt iespēju savienoties ar šo mašīnu..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Šī darbvirsma ir sasniedzama tikai no lokālā tīkla." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " vai " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Citi var piekļūt jūsu datoram, izmantojot adresi %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Neviens nevar piekļūt šai darbvirsmai." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Darbvirsmas koplietošana" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Izvēlieties, kā ļaut citiem lietotājiem attālināti skatīt jūsu darbvirsmu" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Darbvirsmas koplietošanas iestatījumi" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Koplietošana" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Daži no šiem iestatījumiem ir noslēgti" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Atļaut citiem lietotājiem skatīt jūsu darb_virsmu" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Jūsu darbvirsma tiks koplietota" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Atļaut citiem lietotājiem kontrolēt jūsu darbvirsmu" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Attālinātie lietotāji var kontrolēt peli un tastatūru" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Drošība" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Jums jāapstiprina katra piekļuve savam datoram" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "P_rasīt lietotājam ievadīt paroli:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automātiski _konfigurēt UPnP maršrutētāju, lai atvērtu un pārsūtītu portus" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Maršrutētājā ir jābūt ieslēgtam UPnP atbalstam" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Rādīt paziņojumu lauka ikonu" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Vienmēr" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Tikai, kad kāds ir pievien_ojies" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nekad" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Aktivēt attālinātu pieeju darbvirsmai" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Ja patiess, atļauj attālinātu pieeju darbvirsmai, izmantojot RFB protokolu. " +"Lietotāji no attālinātām mašīnām varēs savienoties ar darbvirsmu, izmantojot " +"VNC klientu." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Vaicāt lietotājam, pirms pabeigt savienojumu" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ja patiess, attālinātiem lietotājiem, kuri piekļūst darbvirsmai, tiek liegta " +"pieeja, kamēr resursdatora lietotājs apstiprina savienojumu. Rekomendēts it " +"īpaši tad, ja pieeja nav aizsargāta ar paroli." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Attālinātiem lietotājiem atļaut tikai apskatīt darbvirsmu" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ja patiess, attālinātiem lietotājiem, kuri piekļūst darbvirsmai, tiek " +"atļauts tikai skatīties uz darbvirsmu. Attālinātie lietotāji nevarēs " +"kontrolēt peli vai tastatūru." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Tīkla saskarne, kuru klausīties" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ja nav iestatīts, serveris klausīsies uz visām tīkla saskarnēm.\n" +"\n" +"Iestatiet šo, ja vēlaties pieņemt savienojumus tikai no noteiktas tīkla " +"saskarnes, piemēram, eth0, wifi0, lo un tā tālāk." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Klausīties uz alternatīva porta" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ja patiess, serveris klausīsies uz cita porta, nevis noklusējuma (5900). " +"Ports jānorāda “alternative-port” atslēgā." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternatīvā porta numurs" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Ports, kuru serveris klausīsies, ja “use-alternative-port” atslēga ir " +"patiesa. Derīgas vērtības ir skaitļi apgabalā no 5000 līdz 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Pieprasīt šifrēšanu" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ja patiess, attālinātiem lietotājiem, kuri piekļūst darbvirsmai, tiek " +"prasīts atbalstīt šifrēšanu. Tas ir īpaši ieteicams, ja izmanto klientu, kas " +"atbalsta šifrēšanu, izņemot ja savienojošais tīkls ir uzticams." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Atļautās autentificēšanas metodes" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Uzskaita autentificēšanas metodes, ar kurām attālinātie lietotāji var " +"piekļūt darbvirsmai.\n" +"\n" +"Ir divas iespējamās autentificēšanas metodes — “vnc”, kas liek attālinātam " +"lietotājam ievadīt paroli (paroli jānorāda ar vnc-passwor key) pirms " +"savienošanās un “none”, kas atļauj izveidot savienojumu jebkuram attālinātam " +"lietotājam." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "“vnc” autentificēšanai nepieciešama parole " + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Parole, kuru pieprasīs attālinātam lietotājam, ja tiks lietota “vnc” " +"autentificēšanas metode. Atslēgas norādītā parole ir base64 kodējumā.\n" +"\n" +"Speciālā “keyring” vērtība (kura nav derīga base64) nozīmē, ka parole tiek " +"saglabāta GNOME atslēgu saišķī." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-pasta adrese, uz kurieni jānosūta attālinātās darbvirsmas URL" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Šī atslēga norāda e-pasta adresi, uz kuru tiks nosūtīts attālinātas " +"darbvirsmas URL, ja lietotājs uzklikšķinās uz URL, kas ir norādītā " +"darbvirsmas koplietošanas iestatījumu dialoglodziņā." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Bloķēt ekrānu pēc pēdējā lietotāja atvienošanās" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ja patiess, ekrāns tiks bloķēts pēc pēdējā attālinātā klienta atvienošanas." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Kad statusa ikonai jābūt parādītai" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Atslēga kontrolē statusa ikonas uzvedību. Tai ir trīs opcijas: “always” — " +"ikona vienmēr būs redzama; “client” — redzēsiet ikonu tikai tad, ja ir " +"savienojums ar kādu lietotāju (noklusējuma uzvedība), un “never” — ikona " +"nekad " +"netiks rādīta." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Vai deaktivēt darbvirsmas fonu, kad lietotājs ir savienojies" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Ja patiess, deaktivēt darbvirsmas fonu un aizvietot to ar vienlaidus krāsu, " +"kad lietotājs ir veiksmīgi savienojies." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Vai vajadzētu izmantot UPNP maršrutētāju, lai pārsūtītu un atvērtu portus" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ja patiess, pieprasīt, lai UPnP spējīgs maršrutētās pārsūta un atver portu, " +"ko izmanto Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Vai vajadzētu deaktivēt X.org paplašinājumu XDamage." + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ja patiess, neizmantojiet X.org paplašinājumu XDamage. Šis paplašinājums " +"nestrādā korekti ar dažiem video draiveriem situācijā, kad tiek izmantoti 3D " +"efekti. Tā atslēgšana atļaus Vino strādāt šādās situācijās, ar lēnāku " +"attēlošanu kā blakusefektu." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Ziņot par savienošanos" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "Ja patiess, rādīt paziņojumu, kad lietotājs savienojas ar sistēmu." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Attālinātās darbvirsmas koplietošanas parole" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datne nav derīga .desktop datne" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Neatpazīta darbvirsmas datnes versija “%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Startē %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Lietotne nepieņem dokumentus no komandrindas" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Neatpazīta palaišanas opcija — %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nevar padot dokumenta URI darbvirsmas ierakstam “Type=Link”" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nav palaižams vienums" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Deaktivēt savienojumu ar sesiju pārvaldnieku" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Norādiet datni, kur saglabāta konfigurācija" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DATNE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Norādiet sesiju pārvaldības ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Sesiju pārvaldības opcijas:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Rādīt sesiju pārvaldības opcijas" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer neatbalsta Xtest paplašinājumu — attālinātās darbvirsmas pieeja būs " +"ar tikai skatīšanos\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Palaist caurules režīmā, lai izmantotu “Darbvirsmas koplietošanu”" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC serveris GNOME videi" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Palaidiet “vino-server --help”, lai redzētu pilnu sarakstu ar pieejamajām " +"komandrindas opcijām" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME darbvirsmas koplietošana" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s attālinātā darbvirsma %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Saņēma signālu %d, iziet." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekrāns" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Ekrāns, kur atvērt paziņojumus" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Kļūda, inicializējot libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Lietotājs no datora “%s” mēģina attālināti apskatīt vai kontrolēt jūsu " +"darbvirsmu." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Cits lietotājs mēģina apskatīt jūsu darbvirsmu." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "No_raidīt" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Pieņemt" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Neizdevās atvērt savienojumu ar kopni — %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME darbvirsmas koplietošanas serveris" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;koplietot;attālināti;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Darbvirsmas koplietošana ir aktivēta" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d lietotājs apskata jūsu darbvirsmu" +msgstr[1] "%d lietotāji apskata jūsu darbvirsmu" +msgstr[2] "%d lietotāju apskata jūsu darbvirsmu" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Kļūda, parādot iestatījumus" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Kļūda, parādot palīdzību" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licencēts saskaņā ar GNU Vispārīgās publiskās licences 2. versiju\n" +"\n" +"Vino ir brīva programmatūra; jūs varat to izplatīt tālāk un/vai\n" +"modificēt saskaņā ar GNU Vispārējās publiskās licences noteikumiem,\n" +"ko publicējis Brīvas programmatūras fonds; izmantojiet licences 2. versiju\n" +"vai (pēc jūsu izvēles) jebkuru vēlāku versiju.\n" +"Šī programma tiek izplatīta cerībā, ka tā būs noderīga, taču BEZ\n" +"JEBKĀDĀM GARANTIJĀM; pat bez šķietamām KOMERCIĀLAS VĒRTĪBAS un\n" +"PIEMĒROTĪBAS KONKRĒTIEM NOLŪKIEM garantijām. Sīkāku informāciju\n" +"meklējiet GNU Vispārējā publiskajā licencē.\n" +"Jums vajadzēja saņemt GNU Vispārējās publiskās licences kopiju kopā\n" +"ar šo programmu; ja jūs to nesaņēmāt, rakstiet uz Brīvas\n" +"programmatūras fondu - Free Software Foundation, Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Raivis Dejus <orvils@gmail.com>\n" +"Pēteris Krišjānis <pecisk@gmail.com>\n" +"Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Lietojiet savu darbvirsmu kopā ar citiem lietotājiem" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Vai tiešām vēlaties atvienoties no “%s”?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Attālinātais lietotājs no “%s” tiks atvienots. Vai vēlaties turpināt?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Vai tiešām vēlaties atvienot visus klientus?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Visi attālinātie lietotāji tiks atvienoti. Vai vēlaties turpināt?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Atvienot" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Iestatījumi" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Atvienot visus" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Atvienot %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Palīdzība" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "P_ar" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Cits lietotājs apskata jūsu darbvirsmu" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Lietotājs no datora “%s” attālināti apskata jūsu darbvirsmu." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Cits lietotājs kontrolē jūsu darbvirsmu" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Lietotājs no datora “%s” attālināti kontrolē jūsu darbvirsmu." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Kļūda, attēlojot paziņojuma burbuli — %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Attālinātais lietotājs no “%s” tiks atvienots. Vai vēlaties turpināt?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Koplietot informāciju par darbvirsmu" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "“%s” atteicās no darbvirsmas koplietošanas uzaicinājuma." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "“%s” atvienots" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "“%s” attālināti kontrolē jūsu darbvirsmu." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Gaida “%s” savienojumu ar ekrānu." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Atļaut" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "No_raidīt" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Gadījās kļūda:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Atcelts" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"KĻŪDA — maksimālais paroles garums ir %d rakstzīme. Lūdzu ievadiet paroli " +"vēlreiz." +msgstr[1] "" +"KĻŪDA — maksimālais paroles garums ir %d rakstzīmes. Lūdzu ievadiet paroli " +"vēlreiz." +msgstr[2] "" +"KĻŪDA — maksimālais paroles garums ir %d rakstzīmju. Lūdzu ievadiet paroli " +"vēlreiz." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Maina Vino paroli.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Ievadiet jauno Vino paroli: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Ievadiet jauno Vino paroli vēlreiz: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd — parole atjaunināta veiksmīgi.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Atvainojiet, paroles nesakrīt.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd — parole nav mainīta.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Parādīt Vino versiju" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Atjaunina Vino paroli" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Palaidiet “vino-passwd --help”, lai redzētu pilnu sarakstu ar pieejamajām " +"komandrindas opcijām" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO versija %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "KĻŪDA — jums nav pietiekamas tiesības, lai mainītu Vino paroli.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Ja patiess, izmantosim UPNP protokolu, lai maršrutētājā automātiski " +#~ "pārsūtītu portu, ko izmanto vino." + +#~ msgid "Question" +#~ msgstr "Jautājums" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Lietotājs no cita datora mēģina attālināti apskatīt vai kontrolēt jūsu " +#~ "darbvirsmu." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Vai vēlaties tam atļaut to darīt?" + +#~ msgid "Remote Desktop" +#~ msgstr "Attālinātā darbvirsma" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Aktivizēta attālinātās darbvirsmas pieeja" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Vienmēr rādīt ikonu" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Konfigurēt tīklu, lai tas automātiski atļautu savienojumus" + +#~ msgid "_Never display an icon" +#~ msgstr "_Nekad nerādīt ikonu" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Rā_dīt ikonu tikai gadījumā, kad kāds ir savienojies" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME attālinātā darbvirsma" + +#~ msgid "_Send address by email" +#~ msgstr "_Nosūtīt adresi pa e-pastu" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Kopēt adresi uz starpliktuvi" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Maksimālais izmērs: 8 simboli" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Jums tiks vaicāts vai atļaut vai arī liegt piekļuvi katram ienākošajam " +#~ "savienojumam" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Attālinātās darbvirsmas serveris jau strādā; iziet ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Kļūda komunicējot ar GConf. Vai jūs esat pieteicies GNOME sesijā?" + +#~ msgid "Error message:" +#~ msgstr "Kļūdas paziņojums:" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Uzstādīt jūsu attālinātās darbvirsmas pieejas preferences" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "Jautāt ap_stiptinājumu" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Lietotāji var apskatīt jūsu darbvirsmu lietojot šo komandu:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "Kad kāds lietotājs cenšas piekļūt vai kontrolēt jūsu darbvirsmu:" + +#~ msgid "_Password:" +#~ msgstr "_Parole:" + +#~ msgid "failed to register with the message bus" +#~ msgstr "neizdevās reģistrēt ar ziņojumu kopni" + +#~ msgid "not connected to the message bus" +#~ msgstr "nav pieslēdzies ziņojumu kopnei" + +#~ msgid "out of memory registering object path" +#~ msgstr "izbeigusies objekta ceļu reģistrējošā atmiņa" + +#~ msgid "Error in dbus" +#~ msgstr "Kļūda iekš dbus" + +#~ msgid "The screen to be monitored" +#~ msgstr "Pārbaudāmais ekrāns" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "Ekrāns kuram uztaisīt VNC serveri" + +#~ msgid "On Hold" +#~ msgstr "Aiztur" + +#~ msgid "Place all clients on hold" +#~ msgstr "Aizturēt visus klientus" + +#~ msgid "Prompt enabled" +#~ msgstr "Aktivizēti paziņojumi" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Paziņot lietotājam par pieslēgšanās mēģinājumiem" + +#~ msgid "View Only" +#~ msgstr "Tikai-skatāms" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Liegt klientam ievadi ar tastatūru/peli" + +#~ msgid "Local Only" +#~ msgstr "Tikai lokāls" + +#~ msgid "Only allow local connections" +#~ msgstr "Atļaut tika ilokālus savienojumus" + +#~ msgid "Require Encryption" +#~ msgstr "Pieprasīt šifrēšanu" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Prasīt klientiem lietot šifrēšanu" + +#~ msgid "Authentication methods" +#~ msgstr "Autentificēšanas metodes" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "Autentificēšanas metodes, kuras šim serverim būtu jāatļauj" + +#~ msgid "VNC Password" +#~ msgstr "VNC parole" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "Parole (base64 šifrēta), kastiek lietota tipu autentifikācijai lietojot " +#~ "VncAuth metodi" + +#~ msgid "Use an alternative port" +#~ msgstr "Izmantot alternatīvu portu" + +#~ msgid "Listen on the port specified by the 'alternative-port' property" +#~ msgstr "Klausīties uz porta, kas norādīts ar 'alternative-port' parametru" + +#~ msgid "" +#~ "Listen on the specified port number if the 'use-alternative-port' " +#~ "property is TRUE" +#~ msgstr "" +#~ "Klausīties uz norādītā porta numura, ja 'use-alternative-port' parametrs " +#~ "ir TRUE" + +#~ msgid "Port server number" +#~ msgstr "Servera porta numurs" + +#~ msgid "The port used by this server" +#~ msgstr "Šī servera izmantotais ports" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Ja patiess serveris pieņems savienojumus tikai no localhost un visi tīkla " +#~ "savienojumu tiks noraidīti. Uzstādiet šo parametru kā patiesu, ja " +#~ "vēlaties izmantot tikai kādu tunelēšanas risinājumu, piemēram ssh, lai " +#~ "pieslēgtos serverim." + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problēma reģistrējot attālinātās darbvirsmas serveri ar bonobo-" +#~ "aktivēšanu; iziet ...\n" + +#~ msgid "" +#~ "There was an error displaying jelp:\n" +#~ " %s" +#~ msgstr "" +#~ "Radusies kļūda parādot jelp:\n" +#~ " %s" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Attālinātās darbvirsmas serveris nomira, restartējas\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "%s aktivizācija neizdevās: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "%s aktivizācija neizdevās: Nezināma kļūda\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "neizdevās aktivizēt darbvirsmas severi: pārāk bieži jau mēģināts\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Startē attālinātās darbvirsmas serveri" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Nestartē attālinātās darbvirsmas serveri" diff --git a/po/mai.po b/po/mai.po new file mode 100644 index 0000000..6d8f088 --- /dev/null +++ b/po/mai.po @@ -0,0 +1,723 @@ +# translation of vino.master.po to Maithili +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sangeeta Kumari <sangeeta09@gmail.com>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: vino.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&component=Preferences Dialog\n" +"POT-Creation-Date: 2009-09-10 06:23+0000\n" +"PO-Revision-Date: 2009-09-11 20:53+0530\n" +"Last-Translator: Sangeeta Kumari <sangeeta09@gmail.com>\n" +"Language-Team: Maithili <maithili.sf.net>\n" +"Language: mai\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n\n" +"X-Generator: KBabel 1.11.4\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +msgid "_Send address by email" +msgstr "" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "" + +#: ../capplet/vino-message-box.c:103 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "" + +#: ../capplet/vino-preferences.c:197 ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "" + +#: ../capplet/vino-preferences.c:804 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"मद्दति देखाबैमे त्रुटि भेल:\n" +"%s" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "" + +#: ../capplet/vino-preferences.c:854 ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " अथवा " + +#: ../capplet/vino-preferences.c:859 ../capplet/vino-preferences.c:933 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "" + +#: ../capplet/vino-preferences.c:1130 ../server/vino-server.c:164 +#: ../server/vino-server.c:194 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "रिमोट डेस्कटाप" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "अहाँक डेस्कटाप देखबाक लेल आन प्रयोक्ताकेँ अनुमति दिअ' (_v)" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Notification Area" +msgstr "नोटिफिकेशन क्षेत्र" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "रिमोट डेस्कटाप वरीयतासभ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Security" +msgstr "सुरक्षा" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Sharing" +msgstr "साझेदारी" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "एकरामेसँ किछु वरीयतासभ लाक अछि" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "Your desktop will be shared" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "अपन डेस्कटापक नियंत्रण दोसर प्रयोक्ताकेँ दिअ'(_A)" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "कहियो प्रतीक नहि देखाबू (_N)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "एहि कूटशब्दकेँ प्रयोक्ता द्वारा देबाक जरूरत अछि (_R):" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "%s शुरू भ' रहल अछि" + +#: ../server/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "चलाबैबला मद नहि अछि " + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "सत्र प्रबंधकसँ संपर्क रद करू" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "फाइल" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "सत्र प्रबंधन आईडी निर्दिष्ट करू" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "सत्र प्रबंधन विकल्प देखाबू" + +#: ../server/vino-dbus-listener.c:460 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "रिमोट डेस्कटाप सर्वर पहिलेसँ चलि रहल अछि; निकलि रहल अछि ...\n" + +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "" + +#: ../server/vino-main.c:75 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "" + +#: ../server/vino-main.c:97 +msgid "GNOME Remote Desktop" +msgstr "GNOME रिमोट डेस्कटाप" + +#: ../server/vino-main.c:107 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"अहाँक XServer XTest विस्तार क' समर्थन नहि करत - रिमोट डेस्कटाप पहुँच सिर्फ देखल " +"जएताह\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:61 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:73 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "" + +#: ../server/vino-prefs.c:607 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "स्क्रीन" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "स्क्रीन जकरापर प्रांप्ट डिसप्ले कएल जएनाइ अछि" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "'%s' कंप्यूटर पर एकटा प्रयोक्ता अहाँक डेस्कटापकेँ रिमोट रूपसँ देखनाइ अथवा नियंत्रित कएनाइ चाहैत अछि." + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "एकटा प्रयोक्ता अथवा आन कंप्यूटर अहाँक डेस्कटापकेँ रिमोट रूपसँ देखनाइ आ नियंत्रित कएनाइ चाहैत अछि." + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "" + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "की अहाँ हुनका एहन करबाक अनुमति देब?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "प्रश्न" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:65 +msgid "_Allow" +msgstr "अनुमति दिअ'(_A)" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:66 +msgid "_Refuse" +msgstr "मना करू (_R)" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "प्रमाणीकरण विधिकेँ अनुमति दिअ'" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "बैकल्पिक पोर्टक सँख्या" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "इमेल पता जकरामे रिमोट डेस्कटाप URL केँ भेजल जएनाइ अछि" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "रिमोट डेस्कटाप पहुँच सक्रिय करू" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"जँ सही अछि RFB प्रोटोकॉल क' द्वारा डेस्कटापमे रिमोट पहुँच क' अनुमति देत अछि रिमोट मसीन " +"पर प्रयोक्ता डेस्कटापसँ vncviewer क' प्रयोगसँ जुड़ि सकैत अछि." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"जँ सही अछि डेस्कटाप तक पहुँच राखै बला रिमोट प्रयोक्ताकेँ पहुँच क' अनुमति नहि अछि जखन तक जे " +"होस्ट मसीन पर प्रयोक्ता संबंधन क' स्वीकृति देत अछि खासकए अनुशंसित जखन पहुँच कूटशब्द संरक्षित " +"नहि अछि." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "बैकल्पिक पोर्ट पर सुनू" + +#: ../server/vino-server.schemas.in.h:15 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"सत्यापन विधि क' सूची देत अछि जकरासँ रिमोट प्रयोक्ता डेस्कटापक पहुँच राखि सकैत अछि. दुइ संभव " +"सत्यापन विधि अछि \"vnc\" रिमोट प्रयोक्ताकेँ एकटा कूटशब्द क'लेल प्रांप्ट करैत अछि (कूटशब्द " +"vnc_password कुंजी क' द्वारा निर्दिष्ट कूटशब्द) संबंधन क' पहिने आओर \"कोनो नहि\" जे कोनो " +"रिमोट प्रयोक्ताकेँ संबंधन क'लेल अनुमति देत अछि." + +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "डेस्कटाप देखब क'लेल सिर्फ रिमोट प्रयोक्ताकेँ अनुमति दिअ'" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" सत्यापन क'लेल जरूरी कूटशब्द" + +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "कनेक्शन समाप्त करबाक पहिने प्रयोक्ता प्रांप्ट करू" + +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "गोपन जरूरी" + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"कूटशब्द जकरा लेल रिमोट प्रयोक्ता प्रांप्ट कएल जएताह जँ \"vnc\" सत्यापन विधि प्रयुक्त " +"हाएत अछि कुंजी द्वारा निर्दिष्ट कूटशब्द base64 एनकोडेड अछि." + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "पोर्ट जकरा सर्वर सुनताह जँ 'use_alternative_port' कुँजीकेँ सही पर सेट कएल गेल अछि बैध मान 5000 सँ 50000 क' बीच क' परिसरमे अछि." + +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" + +#: ../server/vino-server.schemas.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"ई कुँजी ओहि इमेल पताकेँ निर्दिष्ट करैत अछि जकरामे रिमोट डेस्कटाप URL पठाओल जएनाइ चाही जँ " +"प्रयोक्ता URL पर रिमोट डेस्कटाप वरीयता समादमे क्लिक करैत अछि." + +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "" + +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "" + +#: ../server/vino-status-icon.c:102 ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "एकटा व्यक्ति कनेक्टेड अछि" +msgstr[1] "%d व्यक्ति कनेक्टेड अछि" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-tube-icon.c:175 +msgid "Error displaying preferences" +msgstr "" + +#: ../server/vino-status-icon.c:226 ../server/vino-status-tube-icon.c:191 +msgid "Error displaying help" +msgstr "" + +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU जनरल पब्लिक लाइसेंस संस्करण 2 क' अंतर्गत लाइसेंस प्रदत्त\n" +"\n" +"Vino फ्री सोफ्टवेयर अछि अहाँ एकरा पुनर्वितरित कए सकैत छी आओर/अथवा\n" +"एकरा GNU जनरल पब्लिक लाइसेंसक शर्त क' अधीन रूपांतरित कए सकैत छी\n" +"जहिना जे फ्री सोफ्टवेयर फाउंडेशन क' द्वारा प्रकाशित कएल गेल अछि अथवा तँ लाइसेंस क' संस्करण 2\n" +"अथवा कोनो बादबला संस्करण (अहाँक बिकल्प अनुसार).\n" +"\n" +"Vino प्रोग्राम केँ एहि आशा सँ वितरित कएल गेल अछि जे ई उपयोगी हएताह,\n" +"मुदा बिनु कोनो वारंटीक ; एतय तक जे बिनु कोनो मर्केंटेबिलिटी अथवा खास उद्देश्य\n" +"क' लेल फिटनेसक वारंटी क'. GNU जनरल पब्लिक लाइसेंस\n" +"केँ बेसी विस्तार क' लेल देखू.\n" +"\n" +"अहाँक GNU जनरल पब्लिक लाइसेंसक एकटा कापी एहि\n" +"प्रोग्रामक सँग प्राप्त कएनाइ चाही; जँ नहि, Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" +"MA 02110-1301, USA केँ लिखू.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "संगीता कुमारी (sangeeta09@gmail.com)" + +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "अपन डेस्कटाप दोसरा क' सँग साझा करू" + +#: ../server/vino-status-icon.c:339 ../server/vino-status-tube-icon.c:223 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "की अहाँ '%s' केँ डिसकनेक्ट कएनाइ चाहैत छी?" + +#: ../server/vino-status-icon.c:342 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' सँ रिमोट प्रयोक्ता डिसकनेक्टेड कएल जएताह. की अहाँ निश्चित छी?" + +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "की अहाँ सबहि क्लाइंटकेँ विसंबंधित कएनाइ चाहैत छी?" + +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "सबहि रिमोट प्रयोक्ता बिसंबंधित कएल जएताह. की अहाँ निश्चित छी?" + +#: ../server/vino-status-icon.c:362 ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "डिसकनेक्ट करू" + +#: ../server/vino-status-icon.c:388 ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "वरीयतासभ (_P)" + +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "सबहि विसंबंधित करू" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:427 ../server/vino-status-tube-icon.c:275 +#, c-format +msgid "Disconnect %s" +msgstr "%s विसंबंधित करू" + +#: ../server/vino-status-icon.c:448 ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "मद्दति (_H)" + +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "क' संबंधमे (_A)" + +#: ../server/vino-status-icon.c:589 ../server/vino-status-tube-icon.c:391 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:612 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-status-icon.c:642 ../server/vino-status-tube-icon.c:422 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" + +#: ../server/vino-status-tube-icon.c:226 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" + +#: ../server/vino-tube-server.c:311 ../server/vino-tube-server.c:340 +msgid "Share my desktop information" +msgstr "" + +#: ../server/vino-tube-server.c:315 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" + +#: ../server/vino-tube-server.c:319 +#, c-format +msgid "'%s' disconnected" +msgstr "" + +#: ../server/vino-tube-server.c:346 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "" + +#: ../server/vino-tube-server.c:355 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "" + +#: ../server/vino-util.c:116 +msgid "An error has occurred:" +msgstr "" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "रद कएल गेल" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +msgstr[1] "" + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "" + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "" + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "" + +#: ../tools/vino-passwd.c:181 +#, c-format +msgid "Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "" + +#: ../tools/vino-passwd.c:183 +#, c-format +msgid "Error message:" +msgstr "" + +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "" + +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "" + +#: ../tools/vino-passwd.c:219 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "VINO Version %s\n" +msgstr "" + +#: ../tools/vino-passwd.c:238 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" + diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..18c4f45 --- /dev/null +++ b/po/mk.po @@ -0,0 +1,704 @@ +# translation of vino.HEAD.po to Macedonian +# English translation of PACKAGE. +# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# +# Томислав Марковски <tome@users.ossm.org.mk>, 2004. +# Арангел Ангов <ufo@linux.net.mk>, 2005. +# Arangel Angov <ufo@linux.net.mk>, 2006, 2008. +# Jovan Naumovski <jovan@lugola.net>, 2006, 2007. +# Arangel Angov <arangel@linux.net.mk>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-08-18 14:25+0000\n" +"PO-Revision-Date: 2008-08-10 20:26+0200\n" +"Last-Translator: Arangel Angov <ufo@linux.net.mk>\n" +"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural= n==1 || n%10==1 ? 0 : 1\n" + +#: ../capplet/vino-preferences.c:1097 ../capplet/vino-preferences.c:1132 +#: ../capplet/vino-preferences.c:1190 ../server/vino-dbus-listener.c:374 +#: ../server/vino-server.c:151 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Не можам да ја отворам врската до магистралата: %s\n" + +#: ../capplet/vino-preferences.c:1399 +msgid "Send this command by email" +msgstr "Прати ја оваа команда преку е-пошта" + +#: ../capplet/vino-preferences.c:1437 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Се појави грешка при прикажувањето на помош:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Далечна работна површина" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Поставете ги параметрите за далечен пристап на Вашата работна површина" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Network</b>" +msgstr "<b>Мрежа</b>" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Notification Area</b>" +msgstr "<b>Област за известување</b>" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "<b>Security</b>" +msgstr "<b>Безбедност</b>" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Sharing</b>" +msgstr "<b>Делење</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "A_sk you for confirmation" +msgstr "_Прашај за потврда" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Advanced" +msgstr "Напредно" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Al_ways display an icon" +msgstr "Се_когаш прикажувај икона" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Allow other users to _view your desktop" +msgstr "Дозволи им на корисниците да ја _гледаат мојата работна површина" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Disable the _wallpaper when connected" +msgstr "Исклучи _позадина кога некој е врзан" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Disable the wallpaper when successfull connection" +msgstr "Исклучи позадина при успешно врзување" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "General" +msgstr "Општо" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "Remote Desktop Preferences" +msgstr "Преференции за далечна работна површина" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:14 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Далечните корисници можат да го контролираат глушецот и тастатурата" + +#: ../capplet/vino-preferences.glade.h:15 +msgid "" +"Remote users' VNC clients accessing the desktop are required to support " +"encryption" +msgstr "" +"Далечните корисници кои што пристапуваат на работната површина мора да " +"користат енкрипција" + +#: ../capplet/vino-preferences.glade.h:16 +msgid "Screen will be locked after the last remote client disconnect" +msgstr "" +"Екранот ќе биде заклучен откако ќе се одврзе последниот далечен клиент." + +#: ../capplet/vino-preferences.glade.h:17 +msgid "Some of these preferences are locked down" +msgstr "Некои од овие параметри се заклучени" + +#: ../capplet/vino-preferences.glade.h:18 +msgid "The server will only accept connections from localhost" +msgstr "Серверот ќе прифаќа врски само од localhost" + +#: ../capplet/vino-preferences.glade.h:19 +msgid "The server will use another port, instead of the default (5900)" +msgstr "Серверот ќе слуша на друга порта, наместо на стандардната (5900)" + +#: ../capplet/vino-preferences.glade.h:20 +msgid "Users can view your desktop using this command:" +msgstr "" +"Корисниците можат да јa гледаат Вашата работна околина со следнава команда:" + +#: ../capplet/vino-preferences.glade.h:21 +msgid "When a user tries to view or control your desktop:" +msgstr "Кога корисникот ќе се обиде да ја гледа Вашата работна површина:" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:23 +msgid "Your desktop will be shared" +msgstr "Вашата работна површина ќе биде споделена" + +#: ../capplet/vino-preferences.glade.h:24 +msgid "_Allow other users to control your desktop" +msgstr "_Дозволи им на корисниците да ја контролираат мојата работна површина" + +#: ../capplet/vino-preferences.glade.h:25 +msgid "_Lock screen on disconnect" +msgstr "_Заклучи го екранот по исклучувањето" + +#: ../capplet/vino-preferences.glade.h:26 +msgid "_Never display an icon" +msgstr "_Никогаш не прикажувај икона" + +#: ../capplet/vino-preferences.glade.h:27 +msgid "_Only allow local connections" +msgstr "_Дозволи само локални врски" + +#: ../capplet/vino-preferences.glade.h:28 +msgid "_Only display an icon when there is someone connected" +msgstr "_Прикажувај икона само кога некој е поврзан" + +#: ../capplet/vino-preferences.glade.h:29 +msgid "_Password:" +msgstr "_Лозинка:" + +#: ../capplet/vino-preferences.glade.h:30 +msgid "_Require encryption" +msgstr "_Барај енкрипција" + +#: ../capplet/vino-preferences.glade.h:31 +msgid "_Require the user to enter this password:" +msgstr "_Корисниците мора да ја внесат следнава лозинка:" + +#: ../capplet/vino-preferences.glade.h:32 +msgid "_Use an alternative port:" +msgstr "_Користи алтернативна порта" + +#: ../server/vino-dbus-listener.c:188 ../server/vino-dbus-listener.c:218 +#: ../server/vino-dbus-listener.c:249 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr "Немам меморија за справување со пораката „%s“" + +#: ../server/vino-dbus-listener.c:334 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "Немам меморија за регистирирање на патеката на објектот „%s“" + +#: ../server/vino-dbus-listener.c:407 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "Не можам да го добијам D-Bus името „%s“\n" + +#: ../server/vino-main.c:74 +msgid "GNOME Remote Desktop" +msgstr "Оддалечена работна површина за GNOME" + +#: ../server/vino-main.c:84 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Вашиот XServer не ја поддржува екстензијата XTest - далечната работна " +"површина ќе можете само да ја гледате\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:покажи корисничко име" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Далечна работна површина на %s на %s" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "Екран" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "Екранот на кој што треба да биде прикажна сликата" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Корисникот на компјутерот '%s' се обидува да ја гледа или контролира Вашата " +"работна површина." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "" +"<big><b>Друг корисник се обидува да ја гледа Вашата работна површина.</b></" +"big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Корисник на друг компјутер се обидува да ја гледа Вашата работна површина" + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Дали сакате да му дозволите?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Прашање" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "_Дозволи" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "_Одбиј" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Сервер за оддалечена работна површина за GNOME" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Дозволени начини на автентикација" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Број на алтернативна порта" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Адреса за е-пошта каде што треба да биде испратена адресата за далечната " +"работна површина" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Овозможи далечен пристап до работната површина" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Ако е вклучено, се овозможува пристап на работната површина преку протоколот " +"RFB. Корисниците надалечните машини можат да се врзуваат на работната " +"површина со користење на „vncviewer“." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ако е вклучено, далечните корисници кои што пристапуваат на работната " +"површина немаат пристап се додека корисникот на машината која што е хост не " +"им овозможи. Препорачливо, посебно кога при пристапувањето не е потребна " +"лозинка." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ако е вклучено, далечните корисници кои што пристапуваат на работната " +"површина можат само да ја гледаат истата. Далечните корисници нема да можат " +"да ја користат тастатурата или глувчето." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ако е вклучено, далечните корисници кои што пристапуваат на работната " +"површина мора да користат кодирање. Доколку мрежата на која што сте не е " +"поверлива, високо препорачливо е да користите клиент кој што поддржува " +"кодирање." + +#: ../server/vino-server.schemas.in.h:9 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"Ако е штиклирано, екранот ќе биде заклучен откако ќе се одврзе последниот " +"далечен клиент." + +#: ../server/vino-server.schemas.in.h:10 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"Ако е штиклирано, серверот ќе слуша на друга порта, наместо на стандардната " +"(5900). Портата мора да биде одредена во клучот „alternative_port“." + +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will only accept connections from localhost and network " +"connections will be rejected. Set this option to true if you wish to " +"exclusively use a tunneling mechanism to access the server, such as ssh." +msgstr "" +"Ако е штиклирано, серверот ќе прифаќа само врски од локалниот хост и " +"мрежните врски ќе бидат одбиени. Поставете ја оваа опција ако сакате " +"користите посебен механизам за тунелизирање за пристап на серверот, како што " +"е ssh." + +#: ../server/vino-server.schemas.in.h:12 +msgid "Listen an alternative port" +msgstr "Слушај на алтернативна порта" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Ги листа методите за проверка преку кои што далечните корисници можат да " +"пристапат на работната површина. Има два типа на методи за проверка; „vnc“ " +"наметнува дијалог во кој што далечниот корисник мора да внесе лозинка " +"(лозинката се одредува според клучот „vnc_password“) пред да се врзе и " +"„none“ кој што дозволува слободно врзување на секој далечен корисник." + +#: ../server/vino-server.schemas.in.h:14 +msgid "Lock the screen when last user disconnect" +msgstr "Заклучи го екранот по исклучувањето на последниот корисник" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Only allow local connections" +msgstr "Дозволи само локални врски" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Only allow remote users to view the desktop" +msgstr "Дозволувај користење на работната површина само на далечни корисници" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Password required for \"vnc\" authentication" +msgstr "Потребна е лозинка за проверка на „vnc“" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Prompt the user before completing a connection" +msgstr "Прикажи го корисникот пред да завршувањето на врската" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Require encryption" +msgstr "Барај енкрипција" + +#: ../server/vino-server.schemas.in.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Лозинката која што ќе му биде побарана на далечниот корисник ако се користи " +"за проверка се користи „vnc“ методот. Лозинката одредена од клучот е " +"кодирана како base64." + +#: ../server/vino-server.schemas.in.h:21 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"Портата на која ќе слуша ако клучот „use_alternative_port“е поставен на " +"true. Валидните вредности се во опсегот меѓу 5000 и 50000." + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"Ова копче го контролира однесувањето на статусната икона. Постојат три " +"опции: „секогаш“ - Иконата секогаш ќе биде таму; „клиент“ - Ќе ја видите " +"иконата само кога има некој врзан, ова е стандардното однесување; „никогаш“ " +"- Никогаш не ја покажува иконата." + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Клучот ја одредува адресата за е-пошта на која што треба да биде испратена " +"адресата на далечната работна површина доколку корисникот кликне на адресата " +"во параметрите на „Далечна работна површина“." + +#: ../server/vino-server.schemas.in.h:24 +msgid "When the status icon should be shown" +msgstr "Кога треба да биде покажана статусната икона" + +#: ../server/vino-server.schemas.in.h:25 +msgid "When true, disable the background on receive valid session" +msgstr "Кога е штиклирано, исклучи ја позадината при прием на валидна сесија." + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Серверот за далечна работна површина веќе работи; излегувам ...\n" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Проблем при регистрација на далечната површина со bonobo-activation; " +"излегувам ...\n" + +#: ../server/vino-status-icon.c:102 +msgid "Desktop sharing is enabled" +msgstr "Споделувањето на работната површина е вклучено" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "Поврзан е %d" +msgstr[1] "Поврзани се %d" +msgstr[2] "Поврзани се %d" + +#: ../server/vino-status-icon.c:245 +#, c-format +msgid "" +"There was an error displaying preferences:\n" +" %s" +msgstr "" +"Се појави грешка при прикажувањето на преференциите:\n" +" %s" + +#: ../server/vino-status-icon.c:253 +#, c-format +msgid "" +"There was an error displaying help:\n" +" %s" +msgstr "" +"Се појави грешка при прикажувањето на помош:\n" +" %s" + +#: ../server/vino-status-icon.c:276 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Лиценцирано под GNU општата јавна лиценца, верзија 2\n" +"\n" +"Vino е слободен софтвер; можете да го редистрибуирате и/или\n" +"менувате во согласност со општата јавна ГНУ лиценца\n" +"објавена од страна на Фондацијата за слободен софтвер;\n" +"можете да ја разгледате втората или пак некоја понова верзија.\n" +"\n" +"Vino се дистрибуира со надеж дека ќе биде корисен,\n" +"но без БИЛО КАКВИ ГАРАНЦИИ. За повеќе погледнете ја\n" +"општата јавна ГНУ лиценца.\n" +"\n" +"Заедно со Vino треба да добиете и копија од општата и јавна\n" +"ГНУ лиценца; доколку ја нема лиценцата пишете и на\n" +"Фондацијата заслободен софтвер на следнава адреса:\n" +"59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:291 +msgid "translator-credits" +msgstr "" +"Jovan Naumovski <jovan@lugola.net>, 2007\n" +"Arangel Angov <arangel@linux.net.mk>, 2007, 2008" + +#: ../server/vino-status-icon.c:297 +msgid "Share your desktop with other users" +msgstr "Споделете ја Вашата работна површина со другите корисници" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:361 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Дали сте сигурни дека сакате да ја прекинете врскарта „%s“?" + +#: ../server/vino-status-icon.c:363 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Оддалечениот корисник од „%s“ ќе биде исклучен. Дали сте сигурни?" + +#: ../server/vino-status-icon.c:368 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Дали сте сигурни дека сакате да ги исклучите сите клиенти?" + +#: ../server/vino-status-icon.c:369 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Сите оддалечени клиенти ќе бидат исклучени. Дали сте сигурни?" + +#: ../server/vino-status-icon.c:381 +msgid "Disconnect" +msgstr "Исклучи се" + +#: ../server/vino-status-icon.c:407 +msgid "_Preferences" +msgstr "_Преференции" + +#: ../server/vino-status-icon.c:422 +msgid "Disconnect all" +msgstr "Исклучи ги сите" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:446 +#, c-format +msgid "Disconnect %s" +msgstr "Исклучи го %s" + +#: ../server/vino-status-icon.c:466 +msgid "_Help" +msgstr "_Помош" + +#: ../server/vino-status-icon.c:474 +msgid "_About" +msgstr "_За" + +#: ../server/vino-status-icon.c:603 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Грешка во иницијализацијата на libnotify\n" + +#: ../server/vino-status-icon.c:623 +msgid "Another user is viewing your desktop" +msgstr "Друг корисник ја гледа Вашата работна површина" + +#: ../server/vino-status-icon.c:624 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Корисникот на компјутерот '%s' ја гледа Вашата работна површина." + +#: ../server/vino-status-icon.c:629 +msgid "Another user is controlling your desktop" +msgstr "Друг корисник ја контролира Вашата работна површина" + +#: ../server/vino-status-icon.c:630 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Корисникот на компјутерот '%s' ја контролира Вашата работна површина." + +#: ../server/vino-status-icon.c:652 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Грешка при прикажувањето на балончето за известување %s\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Серверот за далечна работна површина умре, рестартирам\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Активирањето на %s неуспеа: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "Активирањето на %s не успеа: Непозната грешка\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" +"Не успеав да го активирам серверот за далечна работна површина: пробав " +"премногу пати\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Подигнувам сервер за далечна работна површина" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Не го подигувам серверот за далечена работа површина" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password.\n" +msgstr "" +"ГРЕШКА: Максимален број на знаци во лозинката е %d. Ве молам повторно " +"внесете лозинка.\n" + +#: ../tools/vino-passwd.c:145 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Ја менувам лозинката за Vino.\n" + +#: ../tools/vino-passwd.c:147 +msgid "Enter new Vino password: " +msgstr "Внесете нова лозинка за Vino: " + +#: ../tools/vino-passwd.c:150 +msgid "Retype new Vino password: " +msgstr "Повторно внесете ја лозинката за Vino: " + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: лозинката е успешно ажурирана.\n" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Извинете, лозинките не се совпаѓаат.\n" + +#: ../tools/vino-passwd.c:161 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: лозинката е непроменета.\n" + +#: ../tools/vino-passwd.c:176 +msgid "Show Vino version" +msgstr "Покажи ја верзијата на Vino" + +#: ../tools/vino-passwd.c:185 +msgid "- Updates Vino password" +msgstr "- Ажурирај ја лозинката за Vino" + +#: ../tools/vino-passwd.c:195 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Извршете 'vino-passwd --help' за да видите целосна листа на сите достапни " +"команди" + +#: ../tools/vino-passwd.c:202 +#, c-format +msgid "VINO Version %s\n" +msgstr "Верзија на VINO %s\n" + +#: ../tools/vino-passwd.c:211 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ГРЕШКА: Немате доволно пермисии за менување на лозинката за Vino.\n" diff --git a/po/ml.po b/po/ml.po new file mode 100644 index 0000000..6ad1301 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,783 @@ +# translation of vino.master.ml.po to +# This file is distributed under the same license as the vino package. +# Copyright (C) 2006-2008 vino'S COPYRIGHT HOLDER. +# Ani Peter <apeter@redhat.com>, 2006, 2012. +# പ്രവീണ് <pravin.vet@gmail.com>,2008. +msgid "" +msgstr "" +"Project-Id-Version: vino.master.ml\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-02-09 21:27+0000\n" +"PO-Revision-Date: 2013-02-10 22:09+0530\n" +"Last-Translator: Hrishikesh K B <hrishi.kb@gmail.com>\n" +"Language-Team: Malayalam <discuss@lists.smc.org.in>\n" +"Language: ml\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" പ്രദര്ശിപ്പിക്കുന്നതില് പിശക്" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"സഹായം ലഭ്യമാക്കുന്നതില് പിശക്:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "ഈ സിസ്റ്റത്തിന്റെ കണക്ഷന് പരിശോധിക്കുന്നു..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "നിങ്ങളുടെ പണിയിടം ലോക്കല് നെറ്റ്വര്ക്കില് മാത്രമേ ലഭ്യമുള്ളൂ." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " അല്ലെങ്കില് " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"മറ്റുള്ളവര്ക്കു് നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് %s വിലാസം ഉപയോഗിച്ചു് പ്രവേശിക്കുവാന് സാധിക്കുന്നു." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "നിങ്ങളുടെ പണിയിടത്തിലേക്ക് ആര്ക്കും പ്രവേശിക്കുവാന് സാധ്യമല്ല." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "പണിയിടം പങ്കിടാനാകും" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "മറ്റുളള ഉപയോക്താക്കള്ക്ക് നിങ്ങളുടെ പണിയിടം കാണുന്നതെങ്ങനെയെന്നു് തെരഞ്ഞെടുക്കുക" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "വിദൂരത്തിലുളള പണിയിടം മുന്ഗണനകള്" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "പങ്കിടല്" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ഇവയില് ചില മുന്ഗണനകള് ലോക്ക്ഡ് ഡൌണ് ആണ്" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "മറ്റുളള ഉപയോക്താക്കള്ക്ക് നിങ്ങളുടെ പണിയിടം കാണുവാന് അനുവദിക്കുക (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "നിങ്ങളുടെ പണിയിടം പങ്കുവയ്കപ്പെടും" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "മറ്റുളള ഉപയോക്താക്കള്ക്ക് നിങ്ങളുടെ പണിയിടം നിയന്ത്രിക്കുവാന് അനുവദിക്കുക (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "വിദൂര ഉപയോക്താക്കള്ക്ക് നിങ്ങളുടെ മൗസും കീബോഡും ഉപയോഗിക്കാനാകും" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "സുരക്ഷ" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "ഈ സിസ്റ്റമിലേക്കുള്ള ഓരോ പ്രവേശനവും _ഉറപ്പാക്കണം" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ഉപയോക്താവ് ഈ പാസ്വേര്ഡ് എന്റര് ചെയ്യേണ്ടതാണ് (_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "പോര്ട്ടുകള് തുറക്കുന്നതിനും അയയ്ക്കുന്നതിനു് സ്വയമായി UPnP റൌട്ടര് ക്രമീ_കരിയ്ക്കുക" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "റൌട്ടറില് UPnP വിശേഷത സജ്ജമാക്കേണ്ടതാണു്" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "അറിയിപ്പുകള്ക്കുള്ള ഇടത്തിനുള്ള പ്രതിരൂപം കാണിയ്ക്കുക" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_എപ്പോഴും" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "ഒരാള് കണക്ട് ചെയ്യുമ്പോള് _മാത്രം" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_ഒരിക്കലുമില്ല" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "വിദൂരത്തുളള ഉപയോക്താക്കള്ക്ക് പണിയിടം കാണുവാന് പ്രവര്ത്തന സജ്ജമാക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"true എന്നാണെങ്കില്, RFB സന്പ്രദായം വഴി ഡസ്ക്-ടോപ്പിലേക്ക് വിദൂരത്തുളള കംപ്യൂട്ടറുകള്ക്ക് " +"പ്രവേശനത്തിനുളള അനുവാദം നല്കുക. ഒരു vncviewer ഉപയോഗിച്ച് പിന്നീട് ഇവയ്ക് " +"പണിയിടത്തിലേക്കു്കണക്ട് ചെയ്യാവുന്നതാണ്. " + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ഒരു കണക്ഷന് പൂര്ത്തിയാക്കുന്നതിന് മുന്പ് ഉപയോക്താവിനെ അറിയിക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"സത്യമെങ്കില്, വിദൂര ഉപയോക്താവിനെ ആഥിതേയന് ബന്ധപ്പെടാന് അനുവദിക്കുന്നത് വരെ കാത്ത് നിര്ത്തുക. " +"പ്രധാനമായി അടയാളവാക്കിനാല് സംരക്ഷിയ്ക്കപ്പെടാത്ത ബന്ധമാണെങ്കില്." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "വിദൂരത്തുളള ഉപയോക്താക്കള്ക്ക് മാത്രം പണിയിടം കാണുന്നതിന് അനുവദിക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"സത്യമെങ്കില്, വിദൂര ഉപയോക്താവിന് പണിയിടം കാണുവാന് മാത്രം അനുവദിച്ചിരിക്കുന്നു. വിദൂര " +"ഉപയോക്താവിന് കീബോഡോ മൗസോ ഉപയോഗിക്കാന് കഴിയുകയില്ല." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ശ്രദ്ധിക്കുന്നതിനുള്ള നെറ്റ്വര്ക്ക് ഇന്റര്ഫെയിസ്" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"സജ്ജമല്ലെങ്കില്, സര്വര് എല്ലാ നെറ്റ്വര്ക്ക് ഇന്റര്ഫെയിസുകളിലും ശ്രദ്ധിക്കുന്നു.\n" +"\n" +"നെറ്റ്വര്ക്ക് ഇന്റര്ഫെയിസില് നിന്നും മാത്രം നിങ്ങള്ക്കു് കണക്ഷന് സ്വീകരിച്ചാല് മതിയെങ്കില്, ഇതു് " +"സജ്ജമാക്കുക.ഉദാ: eth0, wifi0, lo, മുതലായവ" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "മറ്റൊരു പോര്ട്ട് ശ്രദ്ധിക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"true എങ്കില്, തനത് (5900) പോര്ട്ടിന് പകരം,സര്വര് മറ്റൊരു പോര്ട്ട് ശ്രദ്ധിക്കും. ആ പോര്ട്ട് " +"'alternative_port' കീയില് വ്യക്തമാക്കിയിരിക്കണം." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "മറ്റൊരു പോര്ട്ട് നമ്പര്" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use_alternative_port' കീ true ആയി സജ്ജമെങ്കില്, സര്വര് ശ്രദ്ധിക്കുന്ന പോര്ട്ട്. 5000 മുതല് " +"50000 വരെയുള്ള പരിധിയിലുള്ളതാണു് ശരിയായ മൂല്ല്യങ്ങള്." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "എന്ക്രിപ്ഷന് ആവശ്യമുണ്ട്" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"സത്യമെങ്കില്, പണിയിടം ഉപ്യോഗിക്കാന് കഴിയുന്ന വിദൂര ഉപയോക്താക്കക്ക് എന്ക്രിപ്ഷന് കഴിയാണം. " +"കടന്നുവരുന്ന ശൃംഘല വിശ്വസിക്കാവുന്നതല്ലെങ്കില് എന്ക്രിപ്ഷന് സപ്പോര്ട്ട് ചെയ്യുന്ന ഒരു ക്ലയന്റിനെ മാത്രം " +"ഉപയോഗിക്കുക." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ഓഥന്റിക്കേഷന് മാര്ഗ്ഗങ്ങള് അനുവദിക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"റിമോട്ട് ഉപയോക്താക്കള്ക്കു് പണിയിടത്തിലേക്കു് പ്രവേശിക്കുവാന് സഹായിക്കുന്ന ആധികാരികത ഉറപ്പാക്കല് " +"സംവിധാനങ്ങള് ലഭ്യമാക്കുക.\n" +"\n" +"രണ്ടു് മാര്ഗ്ഗങ്ങള്ക്കാണു് സാധ്യത; കണക്ട് ചെയ്യുന്നതിനു് മുമ്പു് \"vnc\" റിമോട്ട് ഉപയോക്താവിനോടു് " +"അടയാളവാക്ക് ആവശ്യപ്പെടുന്നു (vnc_password കീയാണു് അടയാളവാക്കു് നല്കുന്നതു്), കണക്ട് ചെയ്യുന്നതിനു് " +"ഏതു് റിമോട്ട് ഉപയോക്താവിനെയും അനുവദിക്കുന്നതിനുള്ള\"none\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" ഓഥമന്റിക്കേഷന് പാസ്വേര്ഡ് ആവശ്യമുണ്ട്" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" ആധികാരികത ഉറപ്പാക്കല് സംവിധാനം ഉപയോഗിക്കുമ്പോള് റിമോട്ട് ഉപയോക്താവിനോടു് " +"ആവശ്യപ്പെടുന്ന അടയാളവാക്കു്. കീ വ്യക്തമാക്കിയിരിക്കുന്ന അടയാളവാക്കു് base64 എന്കോഡഡ് ആണു്.\n" +"\n" +"'keyring'-ന്റെ (ശരിയായ base64 അല്ല) പ്രത്യേക മൂല്ല്യത്തിനര്ത്ഥം, രഹസ്യവാക്ക് ഗ്നോം കീറിങില് " +"സൂക്ഷിച്ചിരിയ്ക്കുന്നു എന്നാകുന്നു." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "വിദൂരത്തുളള പണിയിടം-ന്റെ URL അയയ്ക്കേണ്ട ഈമെയില് മേല്വിലാസം" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ഈ കീ, വിദൂര പണിടമുന്ഗണനാ ഡയലോഗിലുള്ള URLല് ഉപയോക്താവ് ക്ലിക് ചെയ്യുമ്പോള് ഏത് " +"മിന്നഞ്ചലിലേക്കാണ് പണിയിട URL അയയ്ക്കേണ്ടതെന്ന് സൂചിപ്പിക്കുന്നു" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "അവസാന ഉപയോക്താവും ബന്ധം വിച്ഛേദിക്കുമ്പോള് സ്ക്രീന് പൂട്ടുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "സത്യമെങ്കില്, അവസാന ഉപയോക്താവും ബന്ധം വിച്ഛേദിക്കുന്നതോടെ സ്ക്രീന് പൂട്ടപ്പെടും." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "അവസ്ഥാചിഹ്നങ്ങള് എപ്പോള് കാണിക്കണം" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"ഈ കീ സ്ഥിതിചിഹ്നത്തിന്റെ രീതി നിയന്ത്രിക്കുന്നു.മൂന്ന് വഴികളാണ് ഉള്ളത്: \"എപ്പോഴും\" - ചിഹ്നം " +"എപ്പോഴും അവിടെയുണ്ടാകും; \"ക്ലയന്റ്\" - ആരെങ്കിലും ബന്ധപ്പെട്ടിരിക്കുമ്പോള് മാത്രം ചിഹ്നം " +"കാണിക്കുന്നു,ഇതാണ് തനത് രീതി; \"ഒരിയ്ക്കലും\" - ഒരിയ്ക്കലും ചിഹ്നം കാണിക്കില്ല." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "ഒരു യൂസര് കണക്റ്റ് ചെയ്യുമ്പോള് പണിയിടത്തിന്റെ പശ്ചാത്തലം ഒഴിവാക്കണോയെന്ന് " + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "true എങ്കില് പണിയിട പശ്ചാത്തലം ഒഴിവാക്കി പകരം ഒരു കളര് ബ്ലോക്ക് ഉപയോഗിക്കുക " + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "റൌട്ടറുകളില് പോര്ട്ട് ഫോര്വേഡ് ചെയ്യുന്നതിനു് UPNP ഉപയോഗിക്കണമോ എന്നു്" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"true എങ്കില് വിനോ ഉപയോഗിക്കുന്ന പോര്ട്ട് ഒരു UPnP സജ്ജമായ റൗട്ടര് ഫോര്വേര്ഡ് ചെയ്യുകയും " +"തുറക്കുകയും ചെയ്യണം " + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org-ന്റെ XDamage എക്സ്റ്റെന്ഷന് പ്രവര്ത്തന രഹിതമാക്കണമോ എന്നു്" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"true എങ്കില്, X.org-ന്റെ XDamage എക്സ്റ്റെന്ഷന് നമ്മള് ഉപയോഗിക്കുകയില്ല. ത്രിഡി സംവിധാനങ്ങള് " +"ഉപയോഗിക്കുമ്പോള്, ചില വീഡിയോ ഡ്രൈവറുകളില് ഈ എക്സ്റ്റെന്ഷന് ശരിയായി പ്രവര്ത്തിക്കുന്നതല്ല. ഇവ " +"പ്രവര്ത്തന രഹിതമാക്കിയാല്, ഈ സാഹചര്യങ്ങളില് വിനോ പ്രവര്ത്തിക്കുന്നു, പക്ഷേ ചില തടസ്സങ്ങളുണ്ടാവാം." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "കണക്ട് ചെയ്യുമ്പോള് അറിയിക്കുക" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "true എങ്കില്, സിസ്റ്റത്തിലേക്കു് ഉപയോക്താവു് കണക്ട് ചെയ്യുമ്പോള്, അറിയിയ്ക്കുന്നു." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "വിദൂര പണിയിടം പങ്കിടുന്നതിനുള്ള അടയാളവാക്ക്" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ഫയല് ശരിയായൊരു .desktop ഫയലല്ല." + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "അപരിചിതമായ ഡസ്ക്ടോപ്പ് ഫയല് പതിപ്പു് '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ആരംഭിക്കുന്നു" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "കമാന്ഡ് ലൈനില് പ്രയോഗം രേഖകള് സ്വീകരിക്കുന്നില്ല" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ലഭ്യമാക്കുവാനുള്ള അപരിചിതമായ ഐച്ഛികം: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' ഡസ്ക്ടോപ്പ് എന്ട്രിയിലേക്ക് രേഖയ്ക്കുള്ള URIകള് നല്കുവാന് സാധ്യമല്ല" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ലഭ്യമാക്കുവാന് സാധിക്കുന്ന വസ്തുവല്ല" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "സെഷന് മാനേജറിലേക്കുള്ള കണക്ഷന് പ്രവര്ത്തന രഹിതമാക്കുക" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "സൂക്ഷിച്ചിട്ടുള്ള ക്രമീകരണമടങ്ങുന്ന ഫയല് വ്യക്തമാക്കുക" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "സെഷന് മാനേജ്മെന്റ് ID വ്യക്തമാക്കുക" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "സെഷന് മാനേജ്മെന്റ് ഐച്ഛികങ്ങള്:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "സെഷന് മാനേജ്മെന്റ് ഐച്ഛികങ്ങള് കാണിക്കുക" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"നിങ്ങളുടെ Xserver, XTest extension പിന്തുണയ്ക്കുന്നില്ല - വിദൂര പണിയിടം കാണുവാന്-മാത്രം " +"ആയിരിക്കും\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "'എന്റെ പണിയിടം പങ്കിടുക' എന്ന വിശേഷതയ്ക്കു്, ട്യൂബ് മോഡില് ആരംഭിയ്ക്കുക" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- ഗ്നോമിനുള്ള വിഎന്സി സര്വര്" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"ലഭ്യമായ ആജ്ഞാമേഘലാ ഉത്തരവുകള് ഏതൊക്കെയെന്നറിയാന് 'vino-server --help പ്രവര്ത്തിപ്പിക്കുക" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "ഗ്നോം പണിയിട പങ്കിടല്" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s-ന്റെ %s-ലെ വിദൂര പണിയിടം" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d സിഗ്നല് ലഭിച്ചു, പുറത്തു് കടക്കുന്നു." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "സ്ക്രീന്" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ഏത് സ്ക്രീന് ഉപയോഗിക്കണമെന്ന കാണിക്കുക (പ്രോമ്പ്റ്റ് ഉളള സ്ക്രീന്)" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify തുടങ്ങുന്നതില് പിശക്\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"കംപ്യൂട്ടര് '%s'-ലുളള ഉപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നതിനോ നിയന്ത്രിക്കുന്നതിനോ ശ്രമിക്കുന്നു." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "മറ്റൊരു ഉപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നതിനായി ശ്രമിക്കുന്നു." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "നിഷേധിക്കുക (_R)" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "സ്വീകരിക്കുക" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "പാതയിലേക്കുള്ള ബന്ധം സ്ഥാപിയ്കുവാന് കഴിയുന്നില്ല:%s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "ഗ്നോം പണിയിട പങ്കിടല് സര്വര്" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "പണിയിടം പങ്കിടാനാകും" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "മറ്റൊരുപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നു" +msgstr[1] "%d ഉപയോക്താക്കള് നിങ്ങളുടെ പണിയിടം കാണുന്നു" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "മുന്ഗണനകള് പ്രദര്ശിപ്പിക്കുന്നതില് പിശക്" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "സഹായം ലഭ്യമാക്കുന്നതില് പിശക്" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"ഗ്നു ജനറല് പബ്ലിക് ലൈസന്സ് ലക്കം 2 അനുസരിച്ചുള്ള ലൈസന്സ്\n" +"\n" +"വിനോ ഒരു സ്വതന്ത്ര സോഫ്റ്റ്വെയറാണു്, നിങ്ങള്ക്കതു് പുനര്വിതരണം \n" +"നടത്തുകയോ സ്വതന്ത്ര സോഫ്റ്റ്വെയര് ഫൌണ്ടേഷന് പ്രസിദ്ധീകരിച്ച ഗ്നു ജനറല് പബ്ലിക് \n" +"ലൈസന്സ് ലക്കം 2 അല്ലെങ്കില് അതിനേക്കാള് പുതിയ പതിപ്പോ (നിങ്ങളുടെ ഇഷ്ടപ്രകാരം)\n" +"പ്രകാരം ഭേദഗതി വരുത്താവുന്നതോ ആണു്.\n" +"\n" +"വിനോ നിങ്ങള്ക്കു് പ്രയോജനപ്പെടും എന്ന പ്രതീക്ഷയില് വിതരണം ചെയ്യുന്നതാണു്.\n" +"പക്ഷേ, ഇതിന് ഒരു വാറണ്ടിയും ലഭ്യമല്ല; വ്യാപാരയോഗ്യതയോ ഒരു പ്രത്യേക കാര്യത്തിനു്\n" +"ചേരുന്നതാണെന്നോ ഉള്ള പരോക്ഷമായ ഒരു വാറണ്ടി പോലും ഇല്ല. കൂടുതല് വിവരങ്ങള്ക്കു്\n" +"ഗ്നു ജനറല് പബ്ലിക് ലൈസന്സ് കാണുക. \n" +"\n" +"നിങ്ങള്ക്കു് ഗ്നോം ടെര്മിനലിനൊപ്പം ഗ്നു ജനറല് പബ്ലിക് ലൈസന്സിന്റെ \n" +"ഒരു പകര്പ്പു് ലഭിച്ചിട്ടുണ്ടായിരിയ്ക്കണം; ഇല്ലെങ്കില്, ഈ വിലാസത്തിലേയ്ക്കെഴുതുക:\n" +"Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" +"MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"അനി പീറ്റര് <apeter@redhat.com>\n" +"പ്രവീണ് <pravin.vet@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "നിങ്ങളുടെ പണിയിടം മറ്റെല്ലാ ഉപയോക്താക്കളുമായും പങ്കിടുക" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s'-നെ വിച്ഛേദിയ്ക്കണമെന്ന് ഉറപ്പാണോ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s'-ല് നിന്നുള്ള വിദൂര ഉപയോക്താവുമായുള്ള ബന്ധം വിച്ഛേദിക്കപ്പെടും.വേണോ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "എല്ലാ ക്ലയന്റുകളുമായുമുള്ള ബന്ധം വിച്ഛേദിക്കണമെന്ന് ഉറപ്പാണോ?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "എല്ലാ വിദൂര ഉപയോക്താക്കളുമായുള്ള ബന്ധവും വിച്ഛേദിയ്ക്കപ്പെടും.വേണോ?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "വിച്ഛേദിക്കുക" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "മുന്ഗണനകള് _P" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "എല്ലാം വിച്ഛേദിക്കുക" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "വിച്ഛേദിക്കുക %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_സഹായം" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_സംബന്ധിച്ചു്" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "മറ്റൊരുപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നു" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "കംപ്യൂട്ടര് '%s'-ലുളള ഉപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നു." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "മറ്റൊരുപയോക്താവ് നിങ്ങളുടെ കമ്പ്യൂട്ടര് നിയന്ത്രിക്കുന്നു" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "കംപ്യൂട്ടര് '%s'-ലുളള ഉപയോക്താവ് നിങ്ങളുടെ പണിയിടം നിയന്ത്രിക്കുന്നു" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "അറിയിപ്പ് കുമിള കാണിക്കുന്നതില് പിശക്: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "വിദൂര ഉപയോക്താവു '%s' വിച്ഛേദിക്കപ്പെടും.വേണോ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "പണിയിടം വിവരം പങ്കിടുക" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' പണിയിടം പങ്കിടുന്നതിനുള്ള ക്ഷണം നിരസിച്ചു." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' വിഛേദിച്ചു" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' നിങ്ങളുടെ പണിയിടം നിയന്ത്രിക്കുന്നു." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "സ്ക്രീനിലേക്ക് കണക്ട് ചെയ്യുന്നതിനായി '%s'-നായി കാത്തിരിക്കുന്നു." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "അനുവദിക്കുക (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "നിഷേധിക്കുക (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ഒരു പിശകുണ്ടായിരിക്കുന്നു:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "റദ്ദാക്കിയിരിക്കുന്നു" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "പിശക്: അടയാളവാക്കില് %d അക്ഷരങ്ങളേ പറ്റൂ.ദയവായി അടയാളവാക്ക് ആവര്ത്തിയ്ക്കുക." +msgstr[1] "പിശക്: അടയാളവാക്കില് %d അക്ഷരങ്ങളേ പറ്റൂ.ദയവായി അടയാളവാക്ക് ആവര്ത്തിയ്ക്കുക." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "വീനോ അടയാളവാക്ക് മാറ്റുന്നു.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "പുതിയ അടയാളവാക്ക്:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "പുതിയ അടയാളവാക്ക് വീണ്ടും:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: അടയാളവാക്ക് മാറ്റിയിരിക്കുന്നു.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "ക്ഷമിയ്ക്കണം, അടയാളവാക്കുകള് ഒന്നല്ല.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: അടയാളവാക്കിന് മാറ്റമില്ല.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "ഏത് വീനോ പതിപ്പാണെന്ന് കാട്ടുക" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- വീനോ അടയാളവാക്ക് അപ്ഡേറ്റ് ചെയ്യുന്നു" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"ലഭ്യമായ ആജ്ഞാമേഘലാ ഉത്തരവുകള് ഏതൊക്കെയെന്നറിയാന് 'vino-passwd --help' പ്രവര്ത്തിപ്പിക്കുക" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "വീനോ പതിപ്പ് %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "പിശക്:നിങ്ങള്ക്ക് വീനോയുടെ അടയാളവാക്ക് മാറ്റുവാന്വേണ്ട അനുവാധമില്ല.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "true എങ്കില്, റൌട്ടറില് വിനോ ഉപയോഗിക്കുന്ന പോര്ട്ട് സ്വയമായി ഫോര്വേഡ് ചെയ്യുന്നതിനു് നമ്മള് " +#~ "UPNP സമ്പ്രദായം ഉപയോഗിക്കുന്നു." + +#~ msgid "Question" +#~ msgstr "ചോദ്യം" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "മറ്റൊരു കംപ്യൂട്ടറിലുളള ഉപയോക്താവ് നിങ്ങളുടെ പണിയിടം കാണുന്നതിനോ നിയന്ത്രിക്കുന്നതിനോ " +#~ "ശ്രമിക്കുന്നു." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "നിങ്ങള്ക്ക് ഇതിനായി ഇവരെ അനുവദിക്കണമോ?" diff --git a/po/mn.po b/po/mn.po new file mode 100644 index 0000000..6364a05 --- /dev/null +++ b/po/mn.po @@ -0,0 +1,354 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: GNOME-2.10\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-11-30 07:11+0000\n" +"PO-Revision-Date: 2004-10-24 18:23+0100\n" +"Last-Translator: Badral <badral@openmn.org>\n" +"Language-Team: OpenMN <zealot@openmn.org>\n" +"Language: mn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Mongolian\n" +"X-Poedit-Country: MONGOLIA\n" + +#: capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Уг коммандыг имэйлээр илгээх" + +#: capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Тусламжыг үзүүлэх үед алдаа гарлаа: \n" +"%s" + +#: capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Зайн Дэсктоп" + +#: capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Таны зайн дэсктопд хандах параметрүүдийг тохируулах" + +#: capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Хамгаалалт</b>" + +#: capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Хамтран эзэмших</b>" + +#: capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "Б_аталгаажуулалтыг асуух" + +#: capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Бусад хэрэглэгчдийг таны дэсктопыг _харахыг зөвшөөрөх" + +#: capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Зайн Дэсктопын Параметрүүд" + +#: capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Эдгээр параметрүүдийн заримийг нь түгжих" + +#: capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "Хэрэглэгчид уг коммандыг хэрэглэж таны дэсктопыг харах боломжтой:" + +#: capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Хэрэглэгч таны дэсктопыг харах эсвэл удирдахаар оролдох үед:" + +#: capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "Бусад хэрэглэгчдэд таны дэсктопыг удирдахыг зөвшөөрөх:" + +#: capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "_Нууц үг:" + +#: capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "_Заавал уг нууц үгийг хэрэглэгчид оруулах ёстой:" + +#: capplet/vino-url.c:158 +msgid "Address" +msgstr "Хаяг" + +#: capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "The address pointed to by the widget" + +#: capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Товч тайлбар" + +#: capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Уг URL-ын товч тайлбар" + +#: capplet/vino-url.c:173 +msgid "URL color" +msgstr "URL өнгө" + +#: capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "URL-ын текстны өнгө" + +#: server/vino-fb.c:947 server/vino-prompt.c:144 server/vino-server.c:851 +msgid "Screen" +msgstr "Дэлгэц" + +#: server/vino-fb.c:948 +msgid "The screen to be monitored" +msgstr "Харуулах дэлгэц" + +#: server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Таны XServer нь XTest өргөтгөлийг дэмжихгүй байна - зайн дэсктоп зөвхөн " +"харагдахаар хандах боломжтой\n" + +#: server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Сонордуулга харуулах дэлгэц" + +#: server/vino-prompt.c:385 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' компьютер дэх хэрэглэгч таны дэсктопыг харахаар эсвэл удирдахаар " +"оролдож байна." + +#: server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "" +"<big><b>Өөр нэг хэрэглэгч таны дэсктопыг харахаар оролдож байна.</b></big>" + +#: server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Өөр компьютерийн хэрэглэгч таны дэсктопыг харахаар эсвэл удирдахаар оролдож " +"байна." + +#: server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Та түүнийг уг үйлдэлийг хийхийг нь зөвшөөрөх үү?" + +#: server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Асуулт" + +#: server/vino-prompt.glade.h:5 server/vino-util.c:64 +msgid "_Allow" +msgstr "_Зөвшөөрөх" + +#: server/vino-prompt.glade.h:6 server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Татгалзах" + +#: server/vino-server.c:852 +msgid "The screen for which to create a VNC server" +msgstr "VNC серверээр үүсгэгдэх дэлгэц" + +#: server/vino-server.c:859 +msgid "On Hold" +msgstr "" + +#: server/vino-server.c:860 +msgid "Place all clients on hold" +msgstr "" + +#: server/vino-server.c:867 +msgid "Prompt enabled" +msgstr "Сонордуулга нээгдсэн " + +#: server/vino-server.c:868 +msgid "Prompt the user about connection attempts" +msgstr "Холбогдохоор оролдсон хэрэглэгчийг сонордуулах" + +#: server/vino-server.c:875 +msgid "View Only" +msgstr "Зөвхөн харах" + +#: server/vino-server.c:876 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Клиентүүдийн гар/хулганыг оролтыг хаах" + +#: server/vino-server.c:883 +msgid "Require Encryption" +msgstr "Шифрлэлт Шаардлагатай" + +#: server/vino-server.c:884 +msgid "Require clients to use encryption" +msgstr "Клиентүүд шифрлэлт хэрэглэх шаардлагатай" + +#: server/vino-server.c:891 +msgid "Authentication methods" +msgstr "Нэвтрэлтийн төрлүүд" + +#: server/vino-server.c:892 +msgid "The authentication methods this server should allow" +msgstr "" + +#: server/vino-server.c:900 +msgid "VNC Password" +msgstr "VNC Нууц үг" + +#: server/vino-server.c:901 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"VncAuth-ыг ашигласан нэвтрэх төрлүүдэд base64-оор кодлогдсон нууц үг " +"хэрэглэнэ" + +#: server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Зөвшөөрөгдсөн нэвтрэх төрөлүүд" + +#: server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-mail address to which the remote desktop URL should be sent" + +#: server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Зайн дэсктоп хандалтыг нээх" + +#: server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Үнэн бол, зайн дэсктоп руу RFB протоколоор хандахыг зөвшөөрнө. Зайн машин " +"дахь хэрэглэгчид дэсктопд холбогдохдоо vncviewer-ыг ашиглаж магадгүй." + +#: server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"Үнэн бол, зайн хэрэглэгчид дэсктопд зөвхөн харах боломжтойгоор хандана. Зайн " +"хэрэглэгчид хулгана эсвэл гарыг ашиглах боломжгүй." + +#: server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "Үнэн бол, зайн хэрэглэгчид дэсктопд боломжит шифрлэлттэйгээр хандана." + +#: server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Зөвхөн зайн хэрэглэгчид л дэсктопыг харж болно" + +#: server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" нэвтрэлэлтэд нууц үг шаардлагатай" + +#: server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Холболт биелэгдэхийн өмнө хэрэгдэгчийг сонордуулах" + +#: server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Шифрлэлт шаардлагатай" + +#: server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Зайн Дэсктоп сервер аль хэдийнэ ажиллаж байна; дууслаа ....\n" + +#: server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Зайн дэсктоп сервер bonobo-идэвхжилтийн хамтаар гарсан асуудлууд " +"бүртгэгдлээ. дууслаа ...\n" + +#: session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Зайн дэсктоп сервер уналаа, дахин ачаалж байна\n" + +#: session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "%s-ийн идэвхжүүлэлт амжилтгүй боллоо: %s\n" + +#: session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "%s-ийн идэвхжүүлэлт амжилтгүй боллоо: Тодорхойгүй Алдаа\n" + +#: session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" +"Зайн дэсктоп серверийг идэвхжүүлэж чадсангүй: маш олон удаагийн оролдлого\n" + +#: session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Зайн дэсктоп серверийг ажиллуулах" + +#: session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Зайн дэсктопын серверийг ажиллуулахгүй" diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 0000000..9a1a6fd --- /dev/null +++ b/po/mr.po @@ -0,0 +1,883 @@ +# translation of mr.po to Marathi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# sandeep shedmake <sandeep.shedmake@gmail.com>, 2007. +# Sandeep Shedmake <sshedmak@redhat.com>, 2008, 2009. +# Sandeep Shedmake <sshedmak@redhat.com>, 2009, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: mr\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-19 19:42+0530\n" +"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n" +"Language-Team: Marathi <maajhe-sanganak@freelists.org>\n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 1.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" दाखवतेवेळी त्रुटी आढळली" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"मदत प्रदर्शित करताना चूक झाली:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "या मशीन वरील जुळवणी तपासत आहे..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "तुमचे डेस्कटॉप फक्त स्थानीय जाळं वरील पोहचणेजोगी आहे." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " किंवा " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "पत्ता %s चा वापर करून इतर तुमच्या संगणकावर प्रवेश करू शकतात." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "तुमच्या डेस्कटॉपवर कुणाचेही प्रवेश अशक्य." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "डेस्कटॉपचा मिळून वापर" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "इतर वापरकर्ता तुमचे डेस्कटॉप दूरस्थरित्या कसे पाहू शकतिल ते पसंत करा" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "डेस्कटॉप शेअरिंग पसंती" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "शेअरींग" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "यापैकी काहिक पसंती कुलूपबंद आहेत" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "तुमचे कार्यस्थळ इतर वापरकर्त्यांना पाहू द्या (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "कार्यस्थळ सहभागीय नुरूप वापरले जाईल" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_अन्य वापरकर्त्यांला तुमच्या संगणकस्थानावर नियंत्रित करू द्या" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "दूरस्थ वापरकर्ता माउस व कळफलक नियंत्रीत करू शकतात" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "सुरक्षा" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "तुम्ही या मशीन करीता प्रत्येक प्रवेश निश्चित करायला हवे (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_वापरकर्त्यांला हा परवलीशब्द लिहावा लागेल:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"पोर्टस् उघडणे व फॉरवर्ड करण्यासाठी स्वयंरित्या UPnP राउटर संरचीत करा (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "राऊटर द्वारे UPnP गुणविशेष कार्यान्वीत असायला हवे" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "सूचना क्षेत्र चिन्ह दाखवा" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "नेहमी (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "कुणितरि जोडणी केल्यानंतरच (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "कधिच नाही (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "डेस्कटॉपकरीता रिमोट प्रवेश सुरू करा" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"खरे असल्यास, RFB प्रटोकॉलमार्गे डेस्कटॉपकरीता रिमोट प्रवेश स्वीकारा. रिमोट " +"मशीनवरील " +"वापरकर्ते त्यानंतर VNC दर्शकाचा वापर करून डेस्कटॉपशी जोडणी करून शकतात." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "जोडणी पूर्म करण्यापूर्वी वापरकर्त्याला प्रवृत्त करा" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"जर ठिक असेल तर दूरस्थ वापरकर्त्यांना संगणकस्थानावर जाण्याची मुभा तेव्हाच असेल " +"जेव्हा " +"स्वागतकर्ता संगणकावरील वापरकर्ता जोडणी स्वीकारेल. उपलब्ध मुभा परवली " +"शब्दाद्वारे सुरक्षित " +"झाली नसेल तर ही कृती सुचवली आहे." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "केवळ दूरस्थ वापरकरत्यांना कार्यस्थळावर पाहण्याची सहमती द्या" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"खरे असल्यास, फक्त कार्यस्थळास प्रवेश प्राप्त करणाऱ्या दूरस्थ वापरकर्त्यांना " +"कार्यस्थळ " +"पहाण्याची सहमती दिली जाते. दूरस्थ वापरकर्ते माउस व कळफलकचा वापर करू शकणार " +"नाही." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ऐकण्याकरीता जाळं संवाद" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"ठरवले नसल्यास, सर्व्हर सर्व नेटवर्क इंटरफेसवर ऐकेल.\n" +"\n" +"फक्त ठराविक नेटवर्क संवादपासून जोडणी स्वीकारायचे असल्यास याला सेट करा. " +"उदाहरणार्थ: eth0, wifi0, lo व अशा प्रकारे." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "वैकल्पिक पोर्टवर ऐका" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"खरे असल्यास, सर्व्हर इतर पोर्टवर ऐकतो (पूर्वनिर्धारित 5900 ऐवजी). " +"'alternative-" +"port' किमध्ये पोर्ट निर्देशीत करणे आवश्यक आहे." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "पर्यायी पोर्ट क्रमांक" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative-port' कि यास true असे ठरवल्यास, सर्व्हर त्या पोर्टवर ऐकतो. " +"वैध मूल्ये 5000 ते 50000 च्या व्याप्तिमध्ये असतात." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "सांकेतीकीकरणाची गरज आहे" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"खरे असल्यास, कार्यस्थळास प्रवेश प्राप्त करणाऱ्या दूरस्थ वापरकर्त्यांना " +"ऐंक्रीप्शन समर्थन आवश्यक " +"आहे. असे ठामपणे सुचविले जाते की जोपर्यंत मध्यस्ती संजाळावर विश्वासर्ह नाही " +"तोपर्यंत ऐंक्रीप्शन " +"समर्थन क्लाऐंटच वापरल्या जावे." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "सत्यापन रीती स्वीकारल्या" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"दूरस्थ वापरकर्ता डेस्कटॉप करीता प्रवेश प्राप्त करतेवेळी ऑथेंटिकेशनची सूची " +"दाखवतो.\n" +"\n" +" दोन संभाव्य ऑथेंटिकेशन पद्धती आहेत; जुळवणी पूर्व \"vnc\" दूरस्थ वापरकर्त्यास " +"गुप्तशब्द " +"प्रविष्ट करण्यास प्रवृत्त करतो (पासवर्ड vnc-password कि द्वारे निश्चित केला " +"जातो) व " +"\"काहिच नाही\" कुठल्याही दूरस्थ वापरकर्त्यास जुळवणी स्थपीत करण्यास परवानगी " +"देतो." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" सत्यापनासाठी परवलीची गरज आहे" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" ऑथेंटिंकेशन पद्धतीचा वापर केल्यास विनंतीसाठीचे रिमोट युजरचे पासवर्ड. " +"कितर्फे " +"निर्देशीत पासवर्ड base64 एंकोडेड आहे.\n" +"\n" +"'keyring' (जे वैध base64 नाही) चे विशेष मूल्य म्हणजे पासवर्ड GNOME " +"किरिंगमध्ये साठवले " +"जाईल." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "दूरस्थ संगणकस्थान युआरएल ला पाठविण्यासाठी ई-मेलचा पत्ता" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"डेस्कटॉप शेअरिंग पसंती संवादात वापरकर्ता URL वर क्लिक करत असल्यास, हे कि ईमेल " +"पत्ता " +"निर्देशीत करते ज्याकरीता रिमोट डेस्कटॉप पाठवणे आवश्यक आहे." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "शेवटच्या वापरकर्ताची जुळवणी तुटल्यास पडदा कुलूपबंद करा" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"खरे असल्यास, शेवटचे दूरस्त क्लाएंट्स खंडीत झाल्यानंतर पडदा कुलूपबंद होईल." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "स्थिती चिन्ह कधी दर्शवायचे" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"हे कळ स्थिती चिन्हाचे वर्तन नियंत्रीत करतो. तीन पर्याय आहेत: \"always\" - " +"चिन्ह नेहमी अस्तित्वात राहेल; \"client\" - कोणी जोडणीवर उपलब्ध असल्यानंतरच हे " +"चिन्ह आढळेल (हे पूर्वनिर्धारित वर्तन आहे); \"never\" - चिन्ह आढळणार नाही." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"वापरकर्त्याची जोडणी झाल्यानंतर डेस्कटॉप पार्श्वभूमी बंद करायची किंवा नाही" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"खरे असल्यास, पार्श्वभूमीतील डेस्कटॉप बंद करा व त्यास वापरकर्ता यशस्वीरित्या " +"जुळल्यानंतर एका प्रकारच्या रंगाने अदलाबदल करा." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "पोर्ट फॉर्वड व उघडण्याकरीता UPnP राऊटरचा वापर करायचा का" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"खरे असल्यास, UPnP-सक्षम राऊटरने Vino तर्फे वापर केलेले पोर्ट फॉरवर्ड करायचे व " +"उघडायचे, त्याकरीता विनंती द्या." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org चे XDamage विस्तार खंडीत करायचे" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"खरे असल्यास, X.org चे XDamage एक्सटेंशनचा वापर करू नका. हे एक्सटेंशन, 3D " +"इफेक्टचा वापरतेवेळी काही चलचित्र ड्राइव्हर्सवर हे एक्सटेंशन योग्यरित्या कार्य " +"करत नाही. निष्क्रीय केल्यास दुषपरिणाम स्वरूपी vino या वातावरणात हळु रेंडररींग " +"करेल." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "जोडणीनंतर सूचीत करा" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "खरे असल्यास, प्रणालीशी जोडणी केल्यानंतर सूचना दाखवा." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "रिमोट डेस्कटॉप शेअरिंग पासवर्ड" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "फाइल वैध .desktop फाइल नाही" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "अनोळखी डेस्कटॉप फाइल आवृत्ती '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s सुरू करत आहे" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ऍप्लिकेशन आदेशओळ पासून दस्तऐवड स्वीकारत नाही" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "अनोळखी प्रक्षेपण पर्याय: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' डेस्कटॉप नोंदणी करीता दस्तऐवज URIs पुरवणे अशक्य" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "प्रक्षेपणजोगी घटक आढळले नाही" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "सत्र व्यवस्थापकाशी जुळवणी खंडीत करा" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "साठवलेली संरचना असलेली फाइल निश्चित करा" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "सत्र व्यवस्थापन ID निश्चित करा" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "सत्र व्यवस्थापन पर्याय:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "सत्र व्यवस्थापन पर्याय दाखवा" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"तुमचा एक्स मदतनीस एक्स चाचणी विस्तारासाठी पूरक नाही - दूरस्थ संगणकस्थानावर " +"जाण्याची " +"मुभा केवळ पाहाण्यासाठी आहे\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "‘माझे डेस्कटॉप शेअर करा’ गुणविशेषकरीता, ट्युब मोडमध्ये सुरूवात करा" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME करीता VNC सर्व्हर" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "उपलब्ध आदेश ओळ पर्यायांची पूर्ण सूचीसाठी 'vino-passwd --help' चालवा" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME डेस्कटॉप शेअरिंग" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s वरील %s चे दूरस्थ कार्यस्थळ" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "सिग्नल %d प्राप्त, बाहेर पडत आहे." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "पडदा" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "त्वरीत कृती प्रदर्शित करण्यासाठी पडदा स्थान" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "प्रारंभ करतेवेळी त्रूटी\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' वरील वापरकर्ता तुमचे संगण दुरस्थरित्या पाहण्याचे किंवा नियंत्रण करायचे " +"प्रयत्न करीत आहे." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "इतर वापरकर्ता तुमचे डेस्कटॉप पहण्याचा प्रयत्न करत आहे." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "नकार द्या" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "स्वीकर करा" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "बस करीता जुळवणी उघडण्यास अपयशी: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME डेस्कटॉप शेअरिंग सर्व्हर" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;शेअर;रिमोट;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "कार्यस्थळ सहभाग कार्यान्वीत करा" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "एक वापरकर्ता डेस्कटॉपचे अवलोकन करत आहे" +msgstr[1] "%d वापरकर्ता डेस्कटॉपचे अवलोकन करत आहे" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "आवड निवड दाखवतेवेळी त्रुटी आढळली" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "मदत दाखवतेवेळी त्रुटी आढळली" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"संदिप शेडमाके <sandeep.shedmake@gmail.com>, 2008; संदिप शेडमाके <" +"sshedmak@redhat." +"com> 2009." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "इतर वापरकर्त्यांसह कार्यस्थळ सहभागीय करा" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "तुम्हाला नक्की '%s' जुळवणी तोडायची?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' पासून दूरस्थ वापरकर्त्याची जुळवणी तुटल्या जाईल. तुम्हची खात्री आहे?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "तुम्हाला नक्की सर्व क्लाऐंटची जुळवणी तोडायची?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "सर्व दूरस्थ वापरकर्त्यांची जुळवणी तोडल्या जाईल. तुम्हची खात्री आहे?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "जुळवणी तोडा" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "प्राधान्यता (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "सर्वांची जुळवणी तोडा" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ची जुळवणी तोडा" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "मदत (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "विषयी (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "आणखी वापरकर्ता आपले कार्यस्थळ पहात आहे" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "संगणक '%s' वरील वापरकर्ता दुरस्थरीत्या तुमचे कार्यस्थळ पहात आहे." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "अन्य वापरकर्ता तुमचे कार्यस्थळ नियंत्रीत करीत आहे" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"संगणक '%s' वरील वापरकर्ता दुरस्थरीत्या तुमचे कार्यस्थळ नियंत्रीत करीत आहे." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "सूचना संदेश दर्शवितेवेळी त्रूटी आढळली: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "दूरस्थ वापरकर्ता '%s' खंडीत केला जाईल. तुम्हाला नक्की असे करायचे?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "माझी डेस्कटॉप माहिती इतरांना वापरू द्या" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' ने डेस्कटॉप शेअरींग निमंत्रण नकारले." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' खंडीत" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' दूरस्थप्रमाणे तुमचे डेस्कटॉप नियंत्रीत करत आहे." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s'ची पडद्याशी जुळवणीसाठी प्रतिक्षा करत आहे." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_परवानगी द्या" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_नकार द्या" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "त्रुटी आढळली:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "रद्द केले" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"त्रुटी: परवलीचा शब्दची कमाल लांबी %d अक्षर आहे. कृपया, गुप्तशब्द पुन्हा " +"प्रविष्ट करा." +msgstr[1] "" +"त्रुटी: परवलीचा शब्दची कमाल लांबी %d अक्षर आहे. कृपया, गुप्तशब्द पुन्हा " +"प्रविष्ट करा." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino गुप्तशब्द प्रविष्ट करा.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "नविन Vino गुप्तशब्द प्रविष्ट करा: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Vino गुप्तशब्द पुन्हा टाइप करा: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: गुप्तशब्द यशस्वीरित्या अद्ययावत झाले.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "माफ करा, गुप्तशब्द जुळत नाही.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: गुप्तशब्द मध्ये बदल नाही.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino आवृत्ती दर्शवा" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino गुप्तशब्द अद्ययावतीत करतो" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"उपलब्ध आदेश ओळ पर्यायच्या पूर्णतया यादी करीता 'vino-passwd --help' चालवा" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO आवृत्ती %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"त्रुटी: Vino गुप्तशब्द बदलविण्याकरीता तुमच्याकडे अतिरिक्त परवानगी नाही.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "true असल्यास, UPNP प्रोटोकॉलचा वापर स्वयंरित्या राऊटर अंतर्गत vino द्वारे वापरले " +#~ "गेलेले पोर्ट फॉर्वड करण्याकरीता केला जाईल." + +#~ msgid "Question" +#~ msgstr "प्रश्न" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "अन्य संगणकावरून अन्य एक वापरकर्ता दूरस्थ राहून तुमच्या संणकावरील कार्यस्थळावरील " +#~ "कार्यक्रम पाहतो किंवा नियंत्रित करीत आहे." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "या वापरकर्तयांना तसे करू देण्यास तुमची सहमती आहे काय?" + +#~ msgid "_Send address by email" +#~ msgstr "ई-मेल द्वारे पत्ते पाठवा (_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "क्लिपबोर्डवर पत्ते प्रतिकृत करा (_C)" + +#~ msgid "Remote Desktop" +#~ msgstr "दूरस्थ संकनकस्थान" + +#~ msgid "Al_ways display an icon" +#~ msgstr "नेहमी चिन्ह दर्शवा (_w)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "कमाल आकार: 8 अक्षरं" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "प्रत्येक येणारी जुळवणी स्वीकारणे किंवा नकारण्याकरीता तुम्हाला विचारले जाईल" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "जुळवणी स्वीकारण्याकरीता जाळं स्वयंरित्या संयोजीत करा (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "कधिही चिन्ह दर्शवू नका (_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "कोणहीतरी जुळवणीत असल्यावरच चिन्ह दर्शवा (_O)" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "दूरस्थ संगणकस्थान मदतनीस चालू आहे. बाहेर जात आहे...\n" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME दूरस्थ कार्यस्थळ" + +#~ msgid "Enable remote desktop access" +#~ msgstr "दूरस्थ संगणकावर जाण्याची मुभा सुरू करा" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "GConf शी संपर्क साधतेवेळी त्रुटी आढळली. तुम्ही GNOME सत्रात प्रवेश केला आहे?" + +#~ msgid "Error message:" +#~ msgstr "त्रुटी संदेश:" diff --git a/po/ms.po b/po/ms.po new file mode 100644 index 0000000..cbae883 --- /dev/null +++ b/po/ms.po @@ -0,0 +1,344 @@ +# Kabinet tentukat Hukum Cerai???? +# Copyright (C) 2003 Free Software Foundation, Inc. +# Hasbullah Bin Pit (sebol) <sebol@ikhlas.com>, 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: tsclient\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2004-11-30 07:11+0000\n" +"PO-Revision-Date: 2004-08-19 01:53+0730\n" +"Last-Translator: Hasbullah Bin Pit <sebol@my-penguin.org>\n" +"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.net>\n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Hantar arahan ini menggunakan emel" + +#: capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Terdapat ralat memapar bantuan:\n" +"%s" + +#: capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Desktop Jauh" + +#: capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Tetapkan keutamaan akses desktop jauh anda" + +#: capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Sekuriti</b>" + +#: capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Perkongsian</b>" + +#: capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "_Tanya anda akan kepastian" + +#: capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Izinkan pengguna lain untuk me_lihat desktop anda" + +#: capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Keutamaan Desktop Jauh" + +#: capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Terdapat keutamaan yang dikunci" + +#: capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "Pengguna boleh melihat desktop anda menggunakan arahan ini:" + +#: capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Bila pengguna cuba melihat atau mengawal desktop:" + +#: capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Izinkan pengguna lain untuk mengawal desktop anda" + +#: capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "Kata_laluan:" + +#: capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "Pengguna perlu memasukkan katalaluan ini:" + +#: capplet/vino-url.c:158 +msgid "Address" +msgstr "Alamat" + +#: capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "Alamat dituding oleh wiget" + +#: capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Tooltip" + +#: capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Tooltip bagi URL ini." + +#: capplet/vino-url.c:173 +msgid "URL color" +msgstr "Warna URL" + +#: capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "Warna bagi label URL" + +#: server/vino-fb.c:947 server/vino-prompt.c:144 server/vino-server.c:851 +msgid "Screen" +msgstr "Skrin" + +#: server/vino-fb.c:948 +msgid "The screen to be monitored" +msgstr "Skrin untuk dimonitor" + +#: server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Pelayan X anda tak menyokong sambungan XTest - akses desktop jauh akan " +"menjadi lihat-sahaja\n" + +#: server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Skrin dimana untuk memapar pemakluman" + +#: server/vino-prompt.c:385 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Pengguna pada komputer '%s' cuba melihat atau mengawal desktop anda secara " +"jauh." + +#: server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Pengguna lain cuba melihat desktop anda.</b></big>" + +#: server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Pengguna pada komputer lain cuba melihat atau mengawal desktop anda secara " +"jauh." + +#: server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Adakah anda ingin mengizinkannya?" + +#: server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Soalan" + +#: server/vino-prompt.glade.h:5 server/vino-util.c:64 +msgid "_Allow" +msgstr "_Izin" + +#: server/vino-prompt.glade.h:6 server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Nafi" + +#: server/vino-server.c:852 +msgid "The screen for which to create a VNC server" +msgstr "Skrin dimana hendak mencipta pelayan VNC" + +#: server/vino-server.c:859 +msgid "On Hold" +msgstr "Tunggu" + +#: server/vino-server.c:860 +msgid "Place all clients on hold" +msgstr "Suruh klien menunggu" + +#: server/vino-server.c:867 +msgid "Prompt enabled" +msgstr "Pemakluman dihidupkan" + +#: server/vino-server.c:868 +msgid "Prompt the user about connection attempts" +msgstr "Maklum pengguna tentang cubaan sambungan" + +#: server/vino-server.c:875 +msgid "View Only" +msgstr "Lihat Sahaja" + +#: server/vino-server.c:876 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Larang input papankekunci/pentuding drpd klien" + +#: server/vino-server.c:883 +msgid "Require Encryption" +msgstr "Memerlukan Peng_enkripsian" + +#: server/vino-server.c:884 +msgid "Require clients to use encryption" +msgstr "Memerlukan klien menggunakan pengenkripsian" + +#: server/vino-server.c:891 +msgid "Authentication methods" +msgstr "Kaedah autentikasi" + +#: server/vino-server.c:892 +msgid "The authentication methods this server should allow" +msgstr "Kaedah autentikasi yang pelayan ini izinkan" + +#: server/vino-server.c:900 +msgid "VNC Password" +msgstr "Katalaluan vnc" + +#: server/vino-server.c:901 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"Katalaluan (dienkod oleh base64) digunakan sebagai jenis autentikasi " +"menggunakan kaedah VncAuth" + +#: server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Kaedah autentikasi yang diizinkan" + +#: server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Alamat emel dimana URL desktop jauh patut dihantar" + +#: server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Hidupkan akses desktop jauh" + +#: server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" + +#: server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" + +#: server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "" + +#: server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "" + +#: server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Maklum pengguna sebelum menyempurnakan sambungan" + +#: server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Memerlukan peng_enkripsian" + +#: server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Pelayan Desktop Jauh telah dilaksanakan; keluar...\n" + +#: server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Masalah mendaftar pelayan desktop jauh dengan bonodo-activation; keluar ...\n" + +#: session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Pelayan desktop jauh mati, mengulanghidup\n" + +#: session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Pengaktifan %s gagal: %s\n" + +#: session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "Pengaktifan %s gagal: Ralat tak diketahui\n" + +#: session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "Gagal mengaktifkan desktop jauh: telah cuba banyak kali\n" + +#: session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Memulakan pelayan desktop jauh" + +#: session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Tak memulakan pelayan desktop jauh" diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..34b1fd3 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,590 @@ +# Norwegian bokmål translation of vino. +# Copyright (C) 2004, Red Hat, Inc. +# This file is distributed under the same license as the vino package. +# Kjartan Maraas <kmaraas@gnome.org>, 2004-2014. +# Åka Sikrom <a4NOSPAMPLEASETHANKYOU@hush.com>, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: vino 3.13.x\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-06-24 09:50+0000\n" +"PO-Revision-Date: 2014-07-21 13:20+0200\n" +"Last-Translator: Åka Sikrom <a4NOSPAMPLEASETHANKYOU@hush.com>\n" +"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Spør vertsbruker før en tilkobling gjennomføres" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Eksterne brukere får ikke tilgang til skrivebordet før brukeren på " +"vertsmaskinen godkjenner tilkoblingen. Dette anbefales spesielt når " +"tilgangen ikke er passordbeskyttet." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Bare tillat eksterne brukere å se skrivebordet" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Hvis verdien er sann («true»), kan ikke eksternt tilkoblede brukere som ser " +"dette skrivebordet styre musepekeren eller tastaturet." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Nettverksgrensesnitt det skal lyttes på" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Hvis dette ikke er valgt, lytter tjeneren på alle nettverksgrensesnitt.\n" +"\n" +"Velg dette hvis du bare vil godta tilkoblinger fra enkelte " +"nettverksgrensesnitt som eth0, wifi0, lo osv." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Lytt på en alternativ port" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Hvis verdien er sann («true»), lytter tjeneren på en annen port enn " +"standardporten (5900). Aktuell port må velges med nøkkelen «alternative-" +"port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Nummer på alternativ port" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Porten som tjeneren skal lytte på hvis «use-alternative-port»-nøkkelen er " +"sann («true»). Gyldige verdier er tall mellom 5000 og 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Krev kryptering" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Hvis denne settes til «true», krever Vino at eksterne brukere støtter " +"kryptering. Du anbefales uansett å bruke en klient som støtter kryptering, " +"med mindre det mellomliggende nettverket er sikkert." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Tillatte autentiseringsmetoder" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Viser autentiseringsmetodene som eksterne brukere kan bruke til å få tilgang " +"til skrivebordet.\n" +"\n" +"Det er to mulige autentiseringsmetoder; med «vnc» blir den eksterne brukeren " +"bedt om å oppgi et passord (som lagres i «vnc-password»-nøkkelen) ved " +"tilkobling. «none» tillater alle eksterne brukere å koble til." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Du må oppgi passord for «vnc»-autentisering" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Passordet som den eksterne brukeren må oppgi hvis «vnc»-autentisering " +"brukes. Passordet som velges her kodes med base64.\n" +"\n" +"Hvis du bruker spesialverdien «keyring» (som ikke er gyldig base64), lagres " +"passordet i GNOME-nøkkelringen." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-postadresse som nettadressen til det eksterne skrivebordet skal sendes til" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Denne nøkkelen inneholder e-postadressen som eksternt skrivebord URL-en blir " +"sendt til hvis brukeren klikker på URL-en i brukervalg for deling av " +"skrivebord." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Lås skjermen når siste bruker kobler fra" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Hvis verdien er sann («true»), låses skjermen etter at siste eksterne klient " +"kobler fra." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Kontrollerer når statusikonet skal vises" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Denne nøkkelen kontrollerer statusikonets oppførsel. Du har tre valg: " +"«always» - som viser ikonet hele tiden, «client» - som bare viser ikonet når " +"noen er tilkoblet (dette er standard) og «never» - som aldri viser ikonet." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Hvorvidt bakgrunnen skal deaktiveres når en bruker er tilkoblet" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Hvis verdien er sann («true»), erstattes skrivebordsbakgrunnen med en " +"helfylt farge når en bruker kobler til." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Om en UPNP-ruter skal brukes til å videresende og åpne porter" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Hvis verdien er sann («true»), sender Vino en nettverksforespørsel om at en " +"ruter med UPnP-funksjonalitet skal videresende og åpne porten som programmet " +"bruker." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Om XDamage-utvidelsen for X.org skal slås av" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Hvis verdien er sann («true»), blir XDamage-utvidelsen i X.org ikke brukt. " +"Utvidelsen fungerer ikke korrekt med enkelte grafikkdrivere ved bruk av 3D-" +"effekter. Hvis du slår dette av, fungerer Vino på disse systemene, dog med " +"tregere grafikk." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Varsle ved tilkobling" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Hvis verdien er sann («true»), får du beskjed når en ekstern bruker kobler " +"til skrivebordet ditt." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen er ikke en gyldig .desktop-fil" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "«%s» er en ukjent versjon i .desktop-fil" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Starter %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet tar ikke dokumenter på kommandolinjen" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Oppstartsvalget «%d» er ukjent" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Kan ikke gi dokument-nettadresser til en .desktop-oppføring med «Type=Link»" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Dette elementet kan ikke kjøres" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Slå av tilkobling til sesjonshåndterer" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Oppgi fil med lagret oppsett" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FIL" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Oppgi sesjonshåndterings-ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Valg for sesjonshåndtering:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Vis valg for sesjonshåndtering" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"X-tjeneren din støtter ikke XTest-utvidelsen. Fjerntilgang fungerer derfor " +"bare med visning\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Start i tubemodus for funksjonen «Del mitt skrivebord»" + +#: ../server/vino-main.c:255 +msgid "- VNC Server for GNOME" +msgstr "- VNC-tjener for GNOME" + +#: ../server/vino-main.c:263 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Kjør «vino-server --help» for å se en fullstendig liste med tilgjengelige " +"kommandolinjevalg" + +#: ../server/vino-main.c:275 +msgid "GNOME Desktop Sharing" +msgstr "Deling av GNOME-skrivebord" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Eksternt skrivebord for %s på %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Mottok signal %d. Avslutter." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Skjerm" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Skjermen hvor spørsmålsdialogen skal vises" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Feil ved initiering av libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"En bruker på datamaskinen «%s» prøver å vise eller kontrollere skrivebordet " +"ditt." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "En annen bruker prøver å vise skrivebordet ditt." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Avslå" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Godta" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Kunne ikke åpne tilkobling til buss: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Deling av skrivebord" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Tjener for deling av skrivebord for GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;deling;ekstern;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Deling av skrivebord er aktivert" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "En bruker ser på skrivebordet ditt" +msgstr[1] "%d brukere ser på skrivebordet ditt" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Det oppsto en feil under visning av brukervalg" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Det oppsto en feil under visning av hjelp" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Lisensiert under GNU General Public License versjon 2\n" +"\n" +"Vino er fri programvare. Du kan redistribuere og/eller\n" +"endre programmet under betingelsene gitt i GNU General Public License\n" +"som utgitt av Free Software Foundation; enten versjon 2\n" +"av lisensen, eller (hvis du ønsker det) enhver senere versjon.\n" +"\n" +"Vino distribueres i håp om at programmet er nyttig, men uten NOEN\n" +"GARANTI, ikke engang implisitt garanti om at det er SALGBART eller PASSER " +"ET\n" +"BESTEMT FORMÅL. Se GNU General Public License for detaljer.\n" +"\n" +"Du skal ha mottatt en kopi av GNU General Public License sammen med\n" +"dette programmet. Hvis dette ikke er tilfelle, kan du skrive til Free " +"Software\n" +"Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Kjartan Maraas <kmaraas@gnome.org>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Del skrivebordet ditt med andre brukere" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Er du sikker på at du ønsker å koble fra «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"Ekstern bruker fra «%s» mister tilkoblingen sin hvis du fortsetter. Er du " +"sikker?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Er du sikker på at du vil koble fra alle klienter?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"Alle eksterne brukere mister tilkoblingene sine hvis du fortsetter. Er du " +"sikker?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Koble fra" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Brukervalg" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Koble fra alle" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Koble fra %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Hjelp" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Om" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "En annen bruker ser på skrivebordet ditt" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "En bruker på datamaskin «%s» ser på skrivebordet ditt." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "En annen bruker kontrollerer skrivebordet ditt" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "En bruker på datamaskinen «%s» kontrollerer skrivebordet ditt." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Feil under visning av meldingsboble: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"Ekstern bruker «%s» mister tilkoblingen sin hvis du fortsetter. Er du sikker?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Del skrivebordsinformasjonen min" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» godtok ikke invitasjon til deling av skrivebord." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» koblet fra" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Ekstern bruker «%s» kontrollerer skrivebordet ditt." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Venter på at «%s» skal koble til skjermen." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "Till_at" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Nekt" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Det har oppstått en feil:" diff --git a/po/ne.po b/po/ne.po new file mode 100644 index 0000000..b54107b --- /dev/null +++ b/po/ne.po @@ -0,0 +1,567 @@ +# translation of vino.HEAD.ne.po to Nepali +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Jyotsna Shrestha <jyoshrestha@hotmail.com>, 2005. +# Ganesh Ghimire <gghimire@gmail.com>, 2005. +# Bishnu Adhikari <bsn_adk@hotmail.com>, 2005. +# Shiva Pokharel <pokharelshiva@hotmail.com>, 2005. +# Jaydeep Bhusal <zaydeep@hotmail.com>, 2005. +# Mahesh subedi <submanesh@hotmail.com>, 2006. +# Shiva Prasad Pokharel <pokharelshiva@hotmail.com>, 2006. +# Shyam Krishna Bal <balshyam24@yahoo.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD.ne\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-06-24 09:50+0000\n" +"PO-Revision-Date: 2014-09-21 00:58+0400\n" +"Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n" +"Language-Team: Nepali Translation Team <chautari@gmail.com>\n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Nepali\n" +"X-Poedit-Country: NEPAL\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n !=1\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "जडान पूरा गर्नु पहिले प्रयोगकर्तालाई प्रोम्ट गर्नुहोस्" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "If true, remote users accessing the desktop are not allowed access until the user on the host machine approves the connection. Recommended especially when access is not password protected." +msgstr "यदि सही भएमा, होस्टमा भएको प्रयोगकर्ताले सम्पर्कलाई समर्थन नजनाए सम्म डेस्कटपमा पहुँच गर्न प्रयास गरिरहेका टाढाको प्रयोगकर्तारूलाई पहुँच गर्न अनुमति दिदैन। पहुँच पासवर्ड सुरक्षित नभएको बेलामा विशेषरूपमा सिफारिश गरिन्छ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "डेस्कटप हेर्न टाढा प्रयोगकर्ताहरूलाई मात्र अनुमति दिनुहोस्" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "If true, remote users accessing the desktop are only allowed to view the desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "यदि सही भएमा, डेस्कटपमा पहुँच गर्न प्रयास गरिरहेका टाढा प्रयोगकर्तारूलाई डेस्कटप हेर्न मात्र अनुमति दिइन्छ। टाढा प्रयोगकर्ताहरूले माउस वा कुञ्जीपाटी प्रयोग गर्न सक्ने छैन।" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +#, fuzzy +msgid "Network interface for listening" +msgstr "ताररहित सञ्जाल %s का लागि पासफ्रेज" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network interface. For example, eth0, wifi0, lo and so on." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +#, fuzzy +#| msgid "Listen an alternative port" +msgid "Listen on an alternative port" +msgstr "सर्भर चलाउन पहुँच गर्ने पोर्ट ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +#, fuzzy +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative_port' key." +msgid "If true, the server will listen on another port, instead of the default (5900). The port must be specified in the 'alternative-port' key." +msgstr "यदि सही भएमा, सर्भरले पूर्वनिर्धारित पोर्ट (५९००) को सट्टा अर्को पोर्टमा सुन्नेछ । पोर्ट 'alternative_port' कुञ्जीमा निर्दिष्ट गरेको हुनुपर्छ ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "वैकल्पिक पोर्ट सङ्ख्या" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#, fuzzy +#| msgid "" +#| "The port which the server will listen to if the 'use_alternative_port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "The port which the server will listen to if the 'use-alternative-port' key is set to true. Valid values are in the range of 5000 to 50000." +msgstr "'पोर्ट-वैकल्पिक-प्रयोग' कुञ्जी सहीमा सेट हुँदा सर्भरले सुन्ने पोर्ट । वैध मानहरू ५००० देखि ५०००० को दायरा भित्र छ ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "गुप्तीकरण आवश्यक छ" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted." +msgstr "यदि सही भएमा, डेस्कटपमा पहुँच गर्न टाढाको प्रयोगकर्ताहरूले गुप्तिकरण समर्थन गर्न सक्ने हुनु आवश्यक हुन्छ। बीचमा आउने सञ्जाल भरोसा नगरेसम्म गुप्तिकरण समर्थन गर्ने एउटा ग्राहक प्रयोग गर्न तपाईँलाई उच्च रूपमा सिफारिश गरिन्छ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "अनुमति प्राप्त प्रमाणीकरण विधिहरू" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +#, fuzzy +#| msgid "" +#| "Lists the authentication methods with which remote users may access the " +#| "desktop. There are two possible authentication methods; \"vnc\" causes " +#| "the remote user to be prompted for a password (the password is specified " +#| "by the vnc_password key) before connecting and \"none\" which allows any " +#| "remote user to connect." +msgid "" +"Lists the authentication methods with which remote users may access the desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote user to be prompted for a password (the password is specified by the vnc-password key) before connecting and \"none\" which allows any remote user to connect." +msgstr "टाढा प्रयोगकर्ताले डेस्कटपमा पहुँच गर्न सक्ने प्रमाणीकरण विधिहरू सूचीकृत गर्नुहोस्। त्यहाँ दुई प्रकारका सम्भाव्य प्रमाणीकरण विधिहरू छन्, जडान गर्नु अगाडि पासवर्ड (यो पासवर्ड भि एन सि पासवर्ड कुञ्जी द्वारा निर्दिष्ट गरिएको पासवर्ड हो)का लागि \"vnc\" को कारणले टाढाको प्रयोगकर्ता प्रोम्ट गरिनु पर्दछ र \"none\"जसले कुनै पनि प्रयोगकर्तालाई जडान गर्न अनुमति दिन्छ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" प्रमाणीकरणका लागि पासवर्ड आवश्यक पर्दछ" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +#, fuzzy +#| msgid "" +#| "The password which the remote user will be prompted for if the \"vnc\" " +#| "authentication method is used. The password specified by the key is " +#| "base64 encoded." +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" authentication method is used. The password specified by the key is base64 encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the password is stored in the GNOME keyring." +msgstr "\"vnc\" प्रमाणीकरण विधि प्रयोग गर्दा टाढा प्रयोगकर्तालाई प्रोम्ट गर्ने पासवर्ड। कुञ्जीले निर्दिष्ट गरेको पासवर्ड आधार६४मा सङ्केतन गरिएको छ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "इमेल ठेगाना जसमा टाढाको डेस्कटप यूआरएल पठाउनु पर्दछ" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +#, fuzzy +#| msgid "" +#| "This key specifies the e-mail address to which the remote desktop URL " +#| "should be sent if the user clicks on the URL in the Remote Desktop " +#| "preferences dialog." +msgid "This key specifies the e-mail address to which the remote desktop URL should be sent if the user clicks on the URL in the Desktop Sharing preferences dialog." +msgstr "यो कुञ्जीले यदि प्रयोगकर्ताले टाढाको डेस्कटप प्राथमिकताहरूको संवादको यूआरएलमा क्लिक गर्यो भने टाढाको डेस्कटप यूआरएल पठाउन पर्ने इमेल ठेगाना निर्दिष्ट गर्दछ ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "अन्तिम प्रयोगकर्ता विच्छेदन हुँदा पर्दामा ताल्चा लगाउनुहोस्" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +#, fuzzy +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "If true, the screen will be locked after the last remote client disconnects." +msgstr "यदि सही भएमा, पर्दा अन्तिम टाढाको क्लाइन्ट विच्छेदन भएपछि ताल्चा लगाइनेछ ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "This key controls the behavior of the status icon. There are three options: \"always\" - the icon will always be present; \"client\" - the icon will only be present when someone is connected (this is the default behavior); \"never\" - the icon will not be present." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "When true, disable the desktop background and replace it with a single block of color when a user successfully connects." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "If true, request that a UPnP-capable router should forward and open the port used by Vino." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "If true, do not use the XDamage extension of X.org. This extension does not work properly on some video drivers when using 3D effects. Disabling it will make Vino work in these environments, with slower rendering as a side effect." +msgstr "" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +#, fuzzy +msgid "Notify on connect" +msgstr "सुरुआतमा जडान नगर्नुहोस्" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:165 +#, fuzzy, c-format +msgid "File is not a valid .desktop file" +msgstr "`%s` फाइल वैध स्निपेट फाइल होइन" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, fuzzy, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "डेस्कटप फाइल '%s': %s लोड गर्दा त्रुटि" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s सुरु गर्दै" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, fuzzy, c-format +msgid "Unrecognized launch option: %d" +msgstr "-%c ले एउटा मान लिन्छ" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, fuzzy, c-format +msgid "Not a launchable item" +msgstr "एउटा सुरुआतयोग्य वस्तु छैन" + +#: ../server/smclient/eggsmclient.c:226 +#, fuzzy +msgid "Disable connection to session manager" +msgstr "सत्र प्रबन्धकसँग जडान अक्षम पार्नुहोस्" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "फाईल" + +#: ../server/smclient/eggsmclient.c:232 +#, fuzzy +msgid "Specify session management ID" +msgstr "सत्र प्रबन्ध आईडी निर्दिष्ट गर्नुहोस्" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "आईडी" + +#: ../server/smclient/eggsmclient.c:253 +#, fuzzy +msgid "Session management options:" +msgstr "सत्र प्रबन्ध विकल्प देखाउनुहोस्" + +#: ../server/smclient/eggsmclient.c:254 +#, fuzzy +msgid "Show session management options" +msgstr "सत्र प्रबन्ध विकल्प देखाउनुहोस्" + +#: ../server/vino-main.c:153 +msgid "Your XServer does not support the XTest extension - remote desktop access will be view-only\n" +msgstr "तपाईँको X सर्भरले X पाठ जाँच विस्तारलाई समर्थन गर्दैन - टाढा डेस्कटप पहुँच हेर्न मात्र हुँनेछ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" + +#: ../server/vino-main.c:255 +#, fuzzy +msgid "- VNC Server for GNOME" +msgstr "जिनोमको लागि एक सङ्ग्रह प्रबन्धक ।" + +#: ../server/vino-main.c:263 +msgid "Run 'vino-server --help' to see a full list of available command line options" +msgstr "" + +#: ../server/vino-main.c:275 +#| msgid "GNOME Remote Desktop" +msgid "GNOME Desktop Sharing" +msgstr " जीनोमले मंडलाको साझेदारि" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:प्रयोगकर्ता नाम देखाउनुहोस्" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s को टाढाको डेस्कटप खुल्ला छ %s" + +#: ../server/vino-prefs.c:111 +#, fuzzy, c-format +msgid "Received signal %d, exiting." +msgstr "%d सङ्केत प्राप्त भयो, स्पष्ट रूपमा बन्द हुँदैछ" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "पर्दा" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "प्रोम्प्ट प्रदर्शन गर्ने पर्दा" + +#: ../server/vino-prompt.c:263 +#: ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify सुरुआत गर्दा त्रुटि\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "A user on the computer '%s' is trying to remotely view or control your desktop." +msgstr "'%s' कम्प्यूटरमा भएको एउटा प्रयोगकर्ताले तपाईँको डेस्कटप टाढाबाट हेर्ने वा नियन्त्रणमा लिने प्रयास गरिरहेको छ।" + +#: ../server/vino-prompt.c:285 +#, fuzzy +#| msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgid "Another user is trying to view your desktop." +msgstr "<big><b>अरू प्रयोगकर्ताले तपाईँको डेस्कटप हेर्न प्रयास गरिरहेको छ।</b></big>" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "अस्वीकार गर्नुहोस्" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "स्वीकार गर्नुहोस्" + +#: ../server/vino-server.c:166 +#: ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "बसमा जडान खोल्न असफल भयो: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "डेक्सटप साझेदारी" + +#: ../server/vino-server.desktop.in.in.h:2 +#, fuzzy +msgid "GNOME Desktop Sharing Server" +msgstr "टाढाको डेस्कटप सर्भर सुरु गरिँदैछ" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "भिएनसि;साझेदारि;टाढा;" + +#: ../server/vino-status-icon.c:97 +#: ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "डेक्सटप साझेदारि सक्षम छ" + +#: ../server/vino-status-icon.c:105 +#, fuzzy, c-format +#| msgid "Another user is viewing your desktop" +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "अन्य प्रयोगकर्तालाई तपाईँको डेस्कटप हेरिरहेको छ" +msgstr[1] "अन्य प्रयोगकर्तालाई तपाईँको डेस्कटप हेरिरहेको छ" + +#: ../server/vino-status-icon.c:208 +#: ../server/vino-status-tube-icon.c:172 +#| msgid "" +#| "There was an error displaying preferences:\n" +#| " %s" +msgid "Error displaying preferences" +msgstr "प्राथमिकता प्रदर्शन गर्दा त्रुटि थि" + +#: ../server/vino-status-icon.c:230 +#: ../server/vino-status-tube-icon.c:192 +#| msgid "" +#| "There was an error displaying help:\n" +#| "%s" +msgid "Error displaying help" +msgstr "मद्दत प्रदर्शन गर्न त्रुटि" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"जीएनयू साधारण सार्वजनिक इजाजतपत्र संस्करण २ अन्तर्गत इजाजत दिइयो\n" +"\n" +"भिनो निशुल्क सफ्टवेयर हो; तपाईँ यसलाई स्वतन्त्र सफ्टवेयर संस्थाद्वारा प्रकाशित जीएनयू साधरण सार्वजनिक इजाजतपत्रको\n" +"सर्त अन्तर्गत पुन: वितरण गर्न र/वा\n" +"परिमार्जन गर्न सक्नुहुन्छ\n" +"; चाहे त्यो इजाजतपत्रको\n" +" संस्करण २, वा (विकल्पमा) पछिल्लो कुनै संस्करण ।\n" +"\n" +"भिनो भविष्यमा उपयोगी हुनेछ भन्ने आशामा वितरण गरिएको हो,\n" +"तर कुनै निश्चितता बिना; निश्चित उद्देश्यका लागि मर्कान्टाबिलिटि वा फिटनेसको लागू गरिएको निश्चितता बिना\n" +"वितरण गरिन्छ । विस्तृत विवरणका लागि जीएनयू\n" +"साधरण सार्वजनिक इजाजतपत्र हेर्नुहोस् ।\n" +"\n" +"तपाईँ यो कार्यक्रमको साथसाथै जीएनयू साधरण सार्वजनिक इजाजतपत्रको प्रतिलिपि\n" +"प्राप्त गर्नुपर्नेछ; यदि छैन भने, स्वतन्त्र सफ्टवेयर\n" +"संघ, संस्था., ५१ फ्राङ्कलिन गल्ली, पाँचौ तल्ला, Boston, MA\n" +"02110-1301, USA लाई लेख्नुहोस् ।\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Pawan Chitrakar < chautari@gmail.com >" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "तपाईँ डेस्कटप अन्य प्रयोगकर्तासँग साझेदार गर्नुहोस्" + +#: ../server/vino-status-icon.c:351 +#: ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "तपाईँ साँच्चिकै '%s' विच्छेदन गर्न चाहनुहुन्छ ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' बाट टाढाको प्रयोगकर्ता विच्छेदन हुनेछ । तपाईँ निश्चित हुनुहुन्छ ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "तपाईँ सबै क्लाइन्टहरू विच्छेदन गर्न चाहनुहुन्छ ?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "सबै टाढाका प्रयोगकर्ताहरू विच्छेदन हुनेछ । तपाईँ निश्चित हुनुहुन्छ ?" + +#: ../server/vino-status-icon.c:374 +#: ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "विच्छेदन गर्नुहोस्" + +#: ../server/vino-status-icon.c:400 +#: ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "प्राथमिकता" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "सबै विच्छेदन गर्नुहोस्" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 +#: ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s विच्छेदन गर्नुहोस्" + +#: ../server/vino-status-icon.c:460 +#: ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "मद्दत" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "बारेमा" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "अन्य प्रयोगकर्तालाई तपाईँको डेस्कटप हेरिरहेको छ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "कम्प्युटर '%s' मा प्रयोगकर्ताले टाढैबाट तपाईँको डेस्कटप हेरिरहेको छ ।" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "अर्को प्रयोगकर्ताले तपाईँको डेस्कटप नियन्त्रण गरिरहेको छ" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "'%s' कम्प्यूटरमा भएको एउटा प्रयोगकर्ताले तपाईँको डेस्कटप टाढाबाट नियन्त्रण गरिरहेको छ ।" + +#: ../server/vino-status-icon.c:651 +#: ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "सूचना बबल प्रदर्शन गर्दा त्रुटि: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, fuzzy, c-format +#| msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "'%s' बाट टाढाको प्रयोगकर्ता विच्छेदन हुनेछ । तपाईँ निश्चित हुनुहुन्छ ?" + +#: ../server/vino-tube-server.c:220 +#: ../server/vino-tube-server.c:249 +#, fuzzy +#| msgid "Share your desktop with other users" +msgid "Share my desktop information" +msgstr "तपाईँ डेस्कटप अन्य प्रयोगकर्तासँग साझेदार गर्नुहोस्" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +#| msgid "Disconnect" +msgid "'%s' disconnected" +msgstr "'%s' विच्छेदन भयो" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, fuzzy, c-format +#| msgid "A user on the computer '%s' is remotely controlling your desktop." +msgid "'%s' is remotely controlling your desktop." +msgstr "अर्को प्रयोगकर्ताले तपाईँको डेस्कटप नियन्त्रण गरिरहेको छ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, fuzzy, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' प्रदर्शनपर्दा जडान गर्ने परखाई" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "अनुमति दिनुहोस्" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "अस्वीकार गर्नुहोस्" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "एउटा त्रुटि देखापर्यो ।" + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..082f270 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,1050 @@ +# Dutch translation of Vino +# +# This file is distributed under the same license as the vino package. +# +# Elros Cyriatan <cyriatan@fastmail.fm>, 2004. +# Vincent van Adrighem <adrighem@gnome.org>, 2004. +# Tino Meinen <a.t.meinen@chello.nl>, 2006. +# Ronald van Engelen <vrijschrift.org@lacocina.nl>, 2005. +# Reinout van Schouwen <reinouts@gnome.org>, 2007. +# Wouter Bolsterlee <wbolster@gnome.org>, 2008–2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-09 17:18+0100\n" +"PO-Revision-Date: 2013-02-09 17:18+0100\n" +"Last-Translator: Wouter Bolsterlee <wbolster@gnome.org>\n" +"Language-Team: Dutch <vertaling@nl.linux.org>\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Er is een fout opgetreden bij het tonen van de URL ‘%s’" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Er is een fout opgetreden tijdens het oproepen van het hulpscherm:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Connectiviteit van deze machine controleren…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Uw computer is alleen op het lokale netwerk benaderbaar." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " of " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Anderen kunnen uw computer benaderen op het adres ‘%s’." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Anderen hebben geen toegang tot uw werkomgeving." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Werkomgeving delen" + +# Vrij vertaald (Wouter Bolsterlee) +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Voorkeuren voor uw bureaublad op afstand instellen" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Voorkeuren voor werkomgeving op afstand" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Delen" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "nkele van deze voorkeuren zijn vergrendeld" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "_Andere gebruikers toestaan uw bureaublad te bekijken" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Uw bureaublad wordt gedeeld" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Andere gebruikers toestaan uw bureaublad te _besturen" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Gebruikers op afstand kunnen het toetsenbord en de muis bedienen" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Beveiliging" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "U dient _toestemming te geven voordat toegang wordt verleend" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "De _gebruiker vragen om een wachtwoord in te voeren" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automatisch UPnP-router _configureren voor het openen en doorsturen van " +"poorten" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "De router dient UPnP-ondersteuning te hebben" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Pictogram tonen in mededelingengebied" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "Al_tijd" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Alleen als iemand verbonden is" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nooit" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Gebruikers op afstand toegang tot uw werkomgeving verlenen" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Indien ingeschakeld wordt via het RFB-protocol toegang op afstand verleend " +"tot het bureaublad. Gebruikers van computers op afstand mogen dan met het " +"bureaublad verbinden met een VNC-viewer." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "De gebruiker waarschuwen voordat een verbinding wordt voltooid" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Indien ingeschakeld krijgen gebruikers die op afstand uw bureaublad " +"benaderen, pas toegang als de gebruiker op de host de verbinding goedkeurt. " +"Dit wordt met klem aangeraden, vooral bij toegang zonder " +"wachtwoordbeveiliging." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Gebruikers op afstand alleen toestaan het bureaublad te bekijken" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Indien ingeschakeld krijgen gebruikers die op afstand het bureaublad " +"benaderen slechts toestemming om het bureaublad te zien. Gebruikers op " +"afstand kunnen niet de muis of het toetsenbord bedienen." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Netwerkverbinding waarop geluisterd wordt" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Indien leeggelaten zal de server luisteren op alle netwerkverbindingen.\n" +"\n" +"Stel deze waarde in als u alleen op bepaalde netwerkverbindingen " +"binnenkomende verbindingen wilt accepteren, bijv. ‘etho’, ‘wlan0’, ‘lo’, …" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Op een alternatieve poort luisteren" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Indien ingeschakeld luistert de server naar een andere poort in plaats van " +"de standaardpoort (5900). De poort dient ingesteld te worden onder " +"‘alternative-port’." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternatief poortnummer" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"De poort waarop de server luistert als de instelling ‘use-alternative-port’ " +"ingeschakeld is. Geldige waarden bevinden zich tussen 5000 en 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Gegevenscodering vereisen" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Indien ingschakeld worden gebruikers die op afstand het bureaublad " +"benaderenvereist gegevenscodering te ondersteunen. Het wordt sterk " +"aangeraden datu een client gebruikt die gegevenscodering ondersteunt, tenzij " +"hettussenliggende netwerk vertrouwd wordt." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Toegestane methoden voor aanmeldingscontrole" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Somt de methoden voor aanmeldingscontrole op waarmee gebruikers op afstand " +"toegang mogen krijgen tot het bureaublad.\n" +"\n" +"Er zijn twee mogelijke controlemethoden; ‘vnc’ zorgt dat de gebruiker op " +"afstand om een wachtwoord wordt gevraagd voor de verbinding (het wachtwoord " +"opgegeven in ‘vnc-password’) en ‘none’ dat elke gebruiker op afstand " +"toestaat om te verbinden." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Wachtwoord vereist voor ‘vnc’-aanmeldingscontrole" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Het wachtwoord waar de gebruiker op afstand naar wordt gevraagd als de " +"methode ‘vnc’wordt gebruikt voor aanmeldingscontrole. Het wachtwoord " +"aangegeven door de sleutel wordt base64 gecodeerd.\n" +"\n" +"De speciale waarde ‘keyring’ (geen geldige base64) betekent dat het " +"wachtwoord in de Gnome-sleutelbox wordt opgeslagen." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-mailadressen waarheen de URL voor bureaublad-op-afstand moet worden " +"gestuurd" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Deze sleutel geeft het e-mailadres aan waarnaar de bureaublad-op-afstand URL " +"moet worden verstuurd als de gebruiker klikt op de URL in de voorkeuren van " +"werkomgeving-op-afstand." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Scherm vergrendelen na verbreken verbinding door laatste gebruiker" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Indien ingeschakeld wordt het scherm vergrendeld nadat de laatste client de " +"verbinding heeft verbroken." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "" +"Geeft aan of het pictogram in het mededelingengebied getoond moet worden" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Deze sleutel bepaalt het bedrag van het pictogram in het mededelingengebied. " +"Er zijn die opties: ‘always’ zorgt ervoor dat het pictogram altijd getoond " +"wordt; ‘client’ toont het pictogram alleen als iemand verbinding heeft " +"(standaard); ‘never’ zorgt ervoor dat het pictogram nooit getoond wordt." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indien ingeschakeld wordt de bureaubladachtergrond uitgeschakeld als een " +"gebruiker is verbonden." + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Indien ingeschakeld wordt de bureaubladachtergrond uitgeschakeld en door een " +"egale kleur vervangen als een gebruiker verbinding maakt." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Of een UPnP-router gebruikt dient te worden om netwerkpoorten te openen en " +"door te sturen." + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Indien ingeschakeld zal de UPnP-router gebruikt worden voor het openen en " +"doorsturen van de door Vino gebruikte poort." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Of de de XDamage-uitbreiding van X.org uitgeschakeld dient te worden" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Indien ingeschakeld zal de XDamage-uitbreiding van X.org niet gebruikt " +"worden. Deze extensie werkt niet goed met sommige videokaarten bij het " +"gebruik van bepaalde 3D-effecten. Uitschakelen van deze optie zorgt ervoor " +"dat Vino werkt in zulke omgevingen, maar met een tragere weergave." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Melding bij verbinding" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Indien ingeschakeld wordt een melding gemaakt als een gebruiker met het " +"systeem verbindt." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Wachtwoord voor bureaublad op afstand" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Bestand is geen geldig .desktop-bestand" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Onbekende versie ‘%s’ voor .desktop-bestand" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s starten…" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "De toepassing ondersteunt geen opdrachtparameters" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Onbekende opstartoptie: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan geen document-URI's sturen naar een desktop-item met ‘Type=Link’" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Onuitvoerbaar item" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Verbinding met sessiebeheer uitschakelen" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Bestand met opgeslagen configuratie opgeven" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "BESTAND" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Sessiebeheer-ID opgeveven" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opties voor sessiebeheer:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Opties voor session tonen" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Uw X-server ondersteunt de XTest uitbreiding niet - het bureaublad kan niet " +"op afstand bestuurd worden\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"In ‘tube’-modus starten, voor de functionaliteit ‘mijn bureaublad delen’" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "– VNC-server voor Gnome" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Voer ‘vino-server --help’ uit voor een volledig overzicht van " +"opdrachtregelparameters." + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Gnome-bureaublad op afstand" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Bureaublad van %s op %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Signaal %d ontvangen; afsluiten." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Scherm" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Het scherm waarop de melding wordt weergegeven" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Initialiseren van libnotify mislukt\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Een gebruiker van computer '%s' wil op afstand uw bureaublad bekijken of " +"besturen." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Een andere gebruiker wil uw bureaublad bekijken." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Weigeren" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Toestaan" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Het openen van de verbinding naar de bus is mislukt: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server voor Gnome-bureaublad op afstand" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;delete;share;remote;afstand;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Bureaublad-op-afstand ingeschakeld" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Een ander persoon bekijkt uw bureaublad" +msgstr[1] "%d andere personen bekijken uw bureaublad" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Fout bij tonen van voorkeuren" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Fout bij tonen van hulp" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Gnome-NL\n" +"\n" +"Elros Cyriatan \n" +"Vincent van Adrighem \n" +"Tino Meinen \n" +"Ronald van Engelen\n" +"Reinout van Schouwen \n" +"Wouter Bolsterlee" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Uw bureaublad delen met andere gebruikers" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Weet u zeker dat u de verbinding met ‘%s’ wilt verbreken?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"De verbinding met de gebruiker op afstand vanaf ‘%s’ zal worden verbroken. " +"Weet u het zeker?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Weet u zeker dat u de verbinding met alle clients wilt verbreken?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"De verbinding met alle gebruikers op afstand zal worden verbroken. Weet u " +"het zeker?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Verbinding verbreken" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Voorkeuren" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Alle verbindingen verbreken" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Verbinding met %s verbreken" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Hulp" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "In_fo" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Een andere gebruiker bekijkt uw bureaublad" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Een gebruiker van computer ‘%s’ bekijkt op afstand uw bureaublad." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Een andere gebruiker bestuurt uw bureaublad" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Een gebruiker van computer ‘%s’ bestuurt op afstand uw bureaublad." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" +"Er is een fout opgetreden bij het tonen van de mededelingentekstballon: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"De verbinding met de gebruiker ‘%s’ zal worden verbroken. Weet u het zeker?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Mijn bureaubladinformatie delen" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "‘%s’ heeft de uitnodiging voor het delen van het bureaublad geweigerd." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "‘%s’ heeft de verbinding verbroken" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "‘%s’ bestuurt op afstand uw bureaublad." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Wachten totdat ‘%s’ verbinding maakt met het scherm." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Toestaan" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Weigeren" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Een fout is opgetreden:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Geannuleerd" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"FOUT: De maximale lengte van een wachtwoord is %d tekens. Geef een ander " +"wachtwoord op." +msgstr[1] "" +"FOUT: De maximale lengte van een wachtwoord is %d tekens. Geef een ander " +"wachtwoord op." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino-wachtwoord wijzigen.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Geef een nieuw Vino-wachtwoord: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Nieuw Vino-wachtwoord (nogmaals): " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: wachtwoord succesvol veranderd.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Wachtwoorden komen niet overeen.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: wachtwoord is niet gewijzigd.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino-versie tonen" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "— Wijzigt het Vino-wachtwoord" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Voer ‘vino-passwd --help’ uit voor een volledig overzicht van " +"opdrachtregelparameters." + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Vino versie %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"FOUT: U heeft geen toegangsrechten om het Vino-wachtwoord te wijzigen.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Indien ingeschakeld zal Vino automatisch de gebruikte poort in uw router " +#~ "doorschakelen via het UPnP-protocol." + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Een gebruiker van een andere computer probeert uw bureaublad te bekijken " +#~ "of te besturen." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Wilt u dit toestaan?" + +#~ msgid "Question" +#~ msgstr "Vraag" + +#~ msgid "Remote Desktop" +#~ msgstr "Bureaublad op afstand" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Bureaublad-op-afstand inschakelen" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Pictogram altijd tonen" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "Netwerk _configureren voor automatisch accepteren van verbindingen" + +#~ msgid "_Never display an icon" +#~ msgstr "Pictogram _nooit tonen" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Pictogram alleen tonen als iemand _verbinding heeft gemaakt" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Gnome-bureaublad op afstand" + +#~ msgid "_Send address by email" +#~ msgstr "Adres via e-mail _versturen" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "Adres naar klembord _kopiëren" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Maximale grootte: 8 tekens" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "U wordt bij iedere binnenkomende verbinding gevraagd of u deze wilt " +#~ "accepteren" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Bureaublad-op-afstand server draait al; afsluiten…\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Fout tijdens de communicatie met GConf. Bent u in een Gnome-sessie " +#~ "aangemeld?" + +#~ msgid "Error message:" +#~ msgstr "Foutmelding:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Geheugen vol bij het afhandelen van het bericht ‘%s’" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Geheugen vol bij het registreren van objectpad ‘%s’" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Verkrijgen van D-Busnaam ‘%s’ is mislukt \n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Uw bureaublad-op-afstand toegangsvoorkeuren instellen" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Netwerk</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "U om bevestiging _vragen" + +#~ msgid "Advanced" +#~ msgstr "Geavanceerd" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "_Achtergrondafbeelding uitschakelen bij verbinding" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Achtergrondafbeelding uitschakelen na het maken van een verbinding" + +#~ msgid "General" +#~ msgstr "Algemeen" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Gebruikers op afstand dienen verplicht gegevenscodering te ondersteunen" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Het scherm wordt vergrendeld nadat de laatste client de verbinding heeft " +#~ "verbroken." + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "De server accepteert alleen verbindingen vanaf ‘localhost’" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "" +#~ "De server gebruikt een andere poort in plaats van de standaardpoort " +#~ "(5900)." + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Gebruikers kunnen uw bureaublad zien met deze opdracht:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "Als een gebruiker uw bureaublad wil bekijken of besturen:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Scherm vergrendelen na verbreken verbinding" + +#~ msgid "_Only allow local connections" +#~ msgstr "Alleen l_okale verbindingen toestaan" + +#~ msgid "_Password:" +#~ msgstr "_Wachtwoord:" + +#~ msgid "_Require encryption" +#~ msgstr "_Gegevenscodering vereisen" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Alternatieve poort gebruiken:" + +#~ msgid "Only allow local connections" +#~ msgstr "Alleen lokale verbindingen toestaan" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Probleem bij registeren van bureaublad-op-afstand server met bonobo-" +#~ "activering; afsluiten…\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Bureaublad-op-afstand server gedood, opnieuw opstarten\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Activeren van %s mislukt: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Activeren van %s mislukt: Onbekende fout\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Het activeren van de bureaublad-op-afstand server is mislukt: te vaak " +#~ "geprobeerd\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Opstarten van bureaublad-op-afstand server" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "De bureaublad-op-afstand server wordt niet gestart" + +# Typo in msgid: moet "disconnects" of "disconnected" zijn -- Wouter Bolsterlee +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Indien ingeschakeld wordt het scherm vergrendeld nadat de laatste " +#~ "gebruiker op afstand de verbinding heeft verbroken" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Address" +#~ msgstr "Adres" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "Het adres waarnaar door het element wordt gewezen" + +#~ msgid "Tooltip" +#~ msgstr "Hulpballon" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Een hulpballon voor deze URL" + +#~ msgid "URL color" +#~ msgstr "URL-kleur" + +#~ msgid "The screen to be monitored" +#~ msgstr "Het bij te houden scherm" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "Het scherm waarvoor een VNC-server moet worden aangemaakt" + +#~ msgid "On Hold" +#~ msgstr "In wachtstand" + +#~ msgid "Place all clients on hold" +#~ msgstr "Alle clients in wachtstand plaatsen" + +#~ msgid "Prompt enabled" +#~ msgstr "Melding aangezet" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "De gebruiker waarschuwen bij verbindingspogingen" + +#~ msgid "View Only" +#~ msgstr "Alleen-bekijken" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Toetsenbord/muisinvoer van clients niet toestaan" + +#~ msgid "Require Encryption" +#~ msgstr "Gegevenscodering vereisen" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Vereisen dat clients gegevenscodering gebruiken" + +#~ msgid "Authentication methods" +#~ msgstr "Authentificatiemethoden" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "De authentificatiemethoden die de server moet toestaan" + +#~ msgid "VNC Password" +#~ msgstr "VNC-wachtwoord" diff --git a/po/nn.po b/po/nn.po new file mode 100644 index 0000000..a36e020 --- /dev/null +++ b/po/nn.po @@ -0,0 +1,1027 @@ +# translation of nn.po to Norwegian Nynorsk +# This file is distributed under the same license as the Vino package. +# Copyright (C) 2004, 2008 The Free Software Foundation +# +# Åsmund Skjæveland <aasmunds@fys.uio.no>, 2004. +# Eskild Hustvedt <eskildh@gnome.org>, 2008. +# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: nn\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=vino&component=Preferences Dialog\n" +"POT-Creation-Date: 2009-08-12 18:01+0000\n" +"PO-Revision-Date: 2010-02-27 19:57+0100\n" +"Last-Translator: Torstein Adolf Winterseth <kvikende@fsfe.org>\n" +"Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Open Link +#: ../capplet/sexy-url-label.c:183 +#| msgid "Send this command by email" +msgid "_Send address by email" +msgstr "_Send adresse via e-post" + +#. Copy Link Address +#: ../capplet/sexy-url-label.c:195 +msgid "_Copy address to clipboard" +msgstr "_Kopier adressa til utklippstavle" + +#: ../capplet/vino-message-box.c:103 +#, c-format +#| msgid "" +#| "There was an error displaying help:\n" +#| " %s" +msgid "There was an error showing the URL \"%s\"" +msgstr "Det oppstod ein feil under vising av URL-en «%s»" + +#: ../capplet/vino-preferences.c:197 ../capplet/vino-preferences.c:1000 +msgid "Checking the connectivity of this machine..." +msgstr "Ser om maskina kan kopla seg til …" + +#: ../capplet/vino-preferences.c:804 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Ein feil oppstod under framsyning av hjelp:\n" +"%s" + +#: ../capplet/vino-preferences.c:834 +msgid "Your desktop is only reachable over the local network." +msgstr "Skrivebordet ditt er berre tilgjengeleg over det lokale nettverket." + +#: ../capplet/vino-preferences.c:854 ../capplet/vino-preferences.c:929 +msgid " or " +msgstr " eller " + +#: ../capplet/vino-preferences.c:859 ../capplet/vino-preferences.c:933 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Andre kan få tilgang til maskina di ved å bruka adressa %s." + +#: ../capplet/vino-preferences.c:986 +msgid "Nobody can access your desktop." +msgstr "Ingen kan få tilgang til skrivebordet itt" + +#: ../capplet/vino-preferences.c:1130 ../server/vino-server.c:164 +#: ../server/vino-server.c:195 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Klarte ikkje opna tilkopling til buss: %s\n" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#| msgid "Allow other users to _view your desktop" +msgid "Choose how other users can remotely view your desktop" +msgstr "Vel korleis andre brukarar kan sjå skrivebordet ditt over nettet" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Skrivebord over nettet" + +# +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "All_tid vis eit ikon" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "Lat andre brukarar _sjå skrivebordet ditt" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Maximum size: 8 characters" +msgstr "Maksimal storleik: 8 teikn" + +#: ../capplet/vino-preferences.ui.h:4 +#| msgid "<b>Notification Area</b>" +msgid "Notification Area" +msgstr "Varslingsområde" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote Desktop Preferences" +msgstr "Innstillingar for skrivebord over nettet" + +#: ../capplet/vino-preferences.ui.h:6 +#| msgid "If checked, remote users are able to control your mouse and keyboard" +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Eksterne brukarar kan ta kontroll over musa og tastaturet ditt" + +#: ../capplet/vino-preferences.ui.h:7 +#| msgid "<b>Security</b>" +msgid "Security" +msgstr "Tryggleik" + +#: ../capplet/vino-preferences.ui.h:8 +#| msgid "<b>Sharing</b>" +msgid "Sharing" +msgstr "Deling" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Some of these preferences are locked down" +msgstr "Somme av desse brukarvala er låste" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "The router must have the UPnP feature enabled" +msgstr "Ruteren må ha UPnP slått på" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "You will be queried to allow or to refuse every incoming connection" +msgstr "" +"Du vil verta spurt om du vil tillata eller nekta kvar forsøk på tilkopling" + +#: ../capplet/vino-preferences.ui.h:12 +#| msgid "If checked, your desktop will be shared" +msgid "Your desktop will be shared" +msgstr "Skrivebordet ditt vil verta delt" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Allow other users to control your desktop" +msgstr "L_at andre brukarar styre skrivebordet ditt" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Configure network automatically to accept connections" +msgstr "_Still inn nettverket til å automatisk tillata tilkoplingar" + +# +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Never display an icon" +msgstr "A_ldri vis eit ikon" + +# +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Only display an icon when there is someone connected" +msgstr "Berre vis ik_on når nokon er tilkopla" + +#: ../capplet/vino-preferences.ui.h:17 +msgid "_Require the user to enter this password:" +msgstr "K_rev at brukaren skriv dette passordet:" + +#: ../capplet/vino-preferences.ui.h:18 +msgid "_You must confirm each access to this machine" +msgstr "_Du må bekrefta kvar tilgang til denne maskina" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fila er ikkje ei gyldig .desktop-fil" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Ugjenkjent skrivebordsfilversjon «%s»" + +#: ../server/smclient/eggdesktopfile.c:958 +#, c-format +msgid "Starting %s" +msgstr "Startar %s" + +#: ../server/smclient/eggdesktopfile.c:1100 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet tek ikkje mot dokument gjennom kommandolinja" + +#: ../server/smclient/eggdesktopfile.c:1168 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Kjente ikkje igjen oppstartsvalet: %d" + +#: ../server/smclient/eggdesktopfile.c:1373 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Klarte ikkje senda dokumentet si adresse til ei «Type=Link» " +"skrivebordsoppføring" + +#: ../server/smclient/eggdesktopfile.c:1392 +#, c-format +msgid "Not a launchable item" +msgstr "Ikkje eit køyrbart element" + +#: ../server/smclient/eggsmclient.c:225 +msgid "Disable connection to session manager" +msgstr "Slå av tilkopling til økthandsamar" + +#: ../server/smclient/eggsmclient.c:228 +msgid "Specify file containing saved configuration" +msgstr "Oppgje fil som inneheld lagra innstillingar" + +#: ../server/smclient/eggsmclient.c:228 +msgid "FILE" +msgstr "FIL" + +#: ../server/smclient/eggsmclient.c:231 +msgid "Specify session management ID" +msgstr "Oppgje økthandsamings-ID" + +#: ../server/smclient/eggsmclient.c:231 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:252 +msgid "Session management options:" +msgstr "Innstillingar til økthandsaming:" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Show session management options" +msgstr "Vis innstillingar til økthandsaming" + +# +#: ../server/vino-dbus-listener.c:456 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Eksternt skrivebord køyrer allereie; avsluttar …\n" + +#: ../server/vino-main.c:67 +msgid "- VNC Server for GNOME" +msgstr "- VNC-tenar for GNOME" + +#: ../server/vino-main.c:75 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Køyr «vino-server --help» for å sjå ei komplett liste over alle " +"kommandolinjeval" + +# +#: ../server/vino-main.c:97 +msgid "GNOME Remote Desktop" +msgstr "Eksternt skrivebord" + +#: ../server/vino-main.c:107 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"X-tenaren din støttar ikkje utvidinga «XTest». Skrivebordet ditt vil kunna " +"visast, men ikkje styrast, over nettet.\n" + +# +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Eksternt skrivebord for %s på %s" + +#: ../server/vino-prefs.c:606 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "Mottok signal %d, avsluttar …\n" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "Skjerm" + +# +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "Skjermen kor spørsmålsdialogen skal vert viste" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Ein brukar på datamaskinen %s prøver å sjå eller styra skrivebordet ditt " +"over nettverket." + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Ein brukar på ein annan datamaskin prøver å sjå eller styra skrivebordet " +"ditt over nettverket." + +#: ../server/vino-prompt.ui.h:2 +#| msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgid "Another user is trying to view your desktop." +msgstr "Ein annan brukar prøver å sjå på skrivebordet ditt." + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Vil du tillata det?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "Spørsmål" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Tillat" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Nekt" + +#: ../server/vino-server.desktop.in.in.h:1 +#| msgid "GNOME Remote Desktop" +msgid "GNOME Remote Desktop Server" +msgstr "Eksternt skrivebord tenar" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Tillatne autentiserinsmetodar" + +# +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Portnummer for alternativ port" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-post-adresse som adressa til det eksterne skrivebordet skal sendast til" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Slå på tilgang til skrivebordet over nettverket" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" +"Dersom ikkje oppgjeven vil tenaren høyra på alle nettverksgrensesnitt. Oppgje " +"om du berre vil tillate tilkoplingar frå eit spesifikt nettverksgrensesnitt, " +"td: eth0, wifi0, lo. osv." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Dersom sann, vert det opna for tilgang til skrivebordet over nettverket ved " +"hjelp av RFB-protokollen. Brukarar på andre maskinar kan då kopla til " +"skrivebordet med ein VNC-framvisar." + +# +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Eksterne brukarar får ikkje tilgang til skrivebordet før brukaren på " +"vertsmaskinen godkjenner tilkoplinga. Spesielt anbefalt når tilgangen ikkje " +"er passordbeskyttet." + +# +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Viss sann, så kan eksterne brukarar som er tilkopla skrivebordet, berre sjå " +"skrivebordet. Dei vil ikkje vera i stand til å bruka verken musa eller " +"tastaturet." + +# +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Viss denne setjes til «true» kreves det at eksterne brukarar må støtte " +"kryptering. Det er anbefalt å bruka ein klient som støttar kryptering med " +"mindre det mellomliggende nettverket er sikkert." + +# +#: ../server/vino-server.schemas.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"Viss denne setjes til true vil skjermen låses etter at siste eksterne klient " +"koplar frå." + +# +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"Viss «true» er sett vil tenaren lytte på ein annan port enn forvald port " +"(5900). Porten må oppgivast i nøkkelen «alternative_port»." + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"Dersom sat til sann, vil vi ikkje bruka XDamage-utvidinga til X.org. Denne " +"utvidinga fungerer ikkje som ho skal på nokre grafikkdrivarar når 3D effektar " +"er slått på. Å slå henne av vil gjera så vino vil fungera i desse miljøa, men " +"med tregare teikning som biverknad." + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" +"Dersom sat til sann, vil vi bruka UPNP-protokollen for å automatisk opna " +"porten " +"brukt av vino i ruteren." + +# +#: ../server/vino-server.schemas.in.h:14 +msgid "Listen an alternative port" +msgstr "Lytt på ei alternativ port" + +# +#: ../server/vino-server.schemas.in.h:15 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Listar autentiseringsmetodene som eksterne brukarar kan få tilgang på " +"skrivebordet med. Det er to moglege autentiseringsmetoder; med «vnc» vert den " +"eksterne brukaren spurd etter eit passord (passordet er lagra i " +"«vnc_password»-nøkkelen) før tilkopling. «none» tillater alle eksterne " +"brukarar å kopla til." + +# +#: ../server/vino-server.schemas.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "Lås skjermen når siste brukar koplar frå" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Network interface for listening" +msgstr "Nettverksgrensesnitt for å lytta" + +# +#: ../server/vino-server.schemas.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "Berre tillat eksterne brukarar å sjå skrivebordet" + +# +#: ../server/vino-server.schemas.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Passord kreves for «vnc»-autentisering" + +# +#: ../server/vino-server.schemas.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "Spør brukar før ein tilkopling fullførast" + +# +#: ../server/vino-server.schemas.in.h:21 +msgid "Require encryption" +msgstr "Krev kryptering" + +# +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Passordet som den eksterne brukaren vil verta spurd etter viss «vnc»-" +"autentisering vert brukt. Passordet som vert spesifisert har base64 " +"kryptering." + +# +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"Porten som tenaren vil lytte på viss «use_alternative_port»-nøkkelen er sett " +"til «true». Gyldige verdiar er i området frå 5000 til 50000." + +# +#: ../server/vino-server.schemas.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"Denne nøkkelen kontrollerer oppførsel for statusikonet. Det finst tre " +"alternativ: «always» - Ikonet vert viste heile tida; «client» - Ikonet vert " +"viste berre når nokon er tilkopla; dette er forvald oppførsel; «never» - " +"Ikonet vert viste aldri." + +# +#: ../server/vino-server.schemas.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Denne nøkkelen inneheld e-postadressa som eksternt skrivebord URL-ein vert " +"sendt til viss brukaren klikkar på URL-ein i instillingane." + +# +#: ../server/vino-server.schemas.in.h:26 +msgid "When the status icon should be shown" +msgstr "Kontrollerer når statusikonet skal vert viste" + +#: ../server/vino-server.schemas.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "" +"Dersom set til sann så vil bakgrunnen verta slått av når ei gyldig økt har " +"vorte motteken" + +#: ../server/vino-server.schemas.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Om vi skal slå av XDamage-utvidinga til X.org" + +#: ../server/vino-server.schemas.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "Om vi skal bruka UPNP for å opna porten i ruterar" + +# +#: ../server/vino-status-icon.c:102 ../server/vino-status-tube-icon.c:95 +msgid "Desktop sharing is enabled" +msgstr "Deling av skrivebord er aktivert" + +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "Ein person er kopla til" +msgstr[1] "%d personar er kopla til" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-tube-icon.c:175 +#| msgid "" +#| "There was an error displaying preferences:\n" +#| " %s" +msgid "Error displaying preferences" +msgstr "Det oppsto ein feil under vising av innstillingar" + +#: ../server/vino-status-icon.c:226 ../server/vino-status-tube-icon.c:191 +#| msgid "" +#| "There was an error displaying help:\n" +#| "%s" +msgid "Error displaying help" +msgstr "Ein feil oppstod under framsyning av hjelp" + +# +#: ../server/vino-status-icon.c:253 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Lisensiert under GNU General Public License versjon 2\n" +"\n" +"Vino er fri programvare. Du kan redistribuera og/eller\n" +"endra programmet under vilkåra gjeven i GNU General Public License\n" +"som utgjeven av Free Software Foundation; anten versjon 2\n" +"av lisensen, eller (viss du ynskjer det) ein kvar seinare versjon.\n" +"\n" +"Vino vert distribuert i håp om at programmet er nyttig, men utan NOKON\n" +"GARANTI, ikkje eingong implisitt garanti om at det er SALBART eller PASSER " +"EIT\n" +"BESTEMT FORMÅL. Sjå GNU General Public License for detaljar.\n" +"\n" +"Du skal ha motteke ein kopi av GNU General Public License saman med\n" +"dette programmet. Viss dette ikkje er tilfelle, kan du skriva til Free " +"Software\n" +"Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.\n" + +# +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:268 +msgid "translator-credits" +msgstr "" +"Kjartan Maraas <kmaraas@gnome.org>\n" +"Eskild Hustvedt <eskildh@gnome.org>\n" +"Torstein Adolf Winterseth <kvikende@fsfe.org>" + +# +#: ../server/vino-status-icon.c:274 +msgid "Share your desktop with other users" +msgstr "Del ditt skrivebord med andre brukarar" + +#: ../server/vino-status-icon.c:339 ../server/vino-status-tube-icon.c:223 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Er du sikker på at du ynskjer å kopla frå «%s»?" + +#: ../server/vino-status-icon.c:342 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Ekstern brukar frå «%s» vil verta frakopla. Er du sikker?" + +# +#: ../server/vino-status-icon.c:348 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Er du sikker på at du ynskjer å kopla frå alle klienter?" + +# +#: ../server/vino-status-icon.c:350 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Alle eksterne brukarar vil verta frakopla. Er du sikker?" + +# +#: ../server/vino-status-icon.c:362 ../server/vino-status-tube-icon.c:237 +msgid "Disconnect" +msgstr "Kopla frå" + +# +#: ../server/vino-status-icon.c:388 ../server/vino-status-tube-icon.c:262 +msgid "_Preferences" +msgstr "_Innstillingar" + +# +#: ../server/vino-status-icon.c:403 +msgid "Disconnect all" +msgstr "Kopla frå alle" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:427 ../server/vino-status-tube-icon.c:275 +#, c-format +msgid "Disconnect %s" +msgstr "Kopla frå %s" + +# +#: ../server/vino-status-icon.c:448 ../server/vino-status-tube-icon.c:294 +msgid "_Help" +msgstr "_Hjelp" + +# +#: ../server/vino-status-icon.c:456 +msgid "_About" +msgstr "_Om" + +#: ../server/vino-status-icon.c:589 ../server/vino-status-tube-icon.c:391 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Feil ved klargjering av libnotify\n" + +# +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:610 +msgid "Another user is viewing your desktop" +msgstr "Ein annan brukar ser på ditt skrivebord" + +#: ../server/vino-status-icon.c:612 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Ein brukar på datamaskin «%s» ser på ditt skrivebord." + +# +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is controlling your desktop" +msgstr "Ein annan brukar kontrollerer ditt skrivebord" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Ein brukar på datamaskin «%s» kontrollerer ditt skrivebord." + +#: ../server/vino-status-icon.c:642 ../server/vino-status-tube-icon.c:422 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Feil under vising av meldingsboble: %s\n" + +#: ../server/vino-status-tube-icon.c:226 +#, c-format +#| msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Ekstern brukar «%s» vil verta frakopla. Er du sikker?" + +#: ../server/vino-tube-server.c:313 ../server/vino-tube-server.c:342 +#| msgid "Share your desktop with other users" +msgid "Share my desktop information" +msgstr "Del skrivebordsinformasjonen min" + +#: ../server/vino-tube-server.c:317 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» avslo invitasjonen til å dela skrivebord." + +#: ../server/vino-tube-server.c:321 +#, c-format +#| msgid "Disconnect" +msgid "'%s' disconnected" +msgstr "«%s» kopla frå" + +#: ../server/vino-tube-server.c:348 +#, c-format +#| msgid "A user on the computer '%s' is remotely controlling your desktop." +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» kontrollerer ditt skrivebord." + +#: ../server/vino-tube-server.c:357 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Ventar på at «%s» skal kopla til skjermen." + +#: ../server/vino-util.c:115 +msgid "An error has occurred:" +msgstr "Ein feil har oppstått:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Avbrote" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"FEIL: Maksimal lengd av passord er %d teikn. Skriv inn passordet på nytt." +msgstr[1] "" +"FEIL: Maksimal lengd av passord er %d teikn. Skriv inn passordet på nytt." + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Endrar passord til Vino.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Skriv inn nytt passord til Vino: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Skriv inn nytt passord til Vino ein gong til: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: Passord oppdatert.\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Passord samsvarar ikkje.\n" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: passord uendra.\n" + +#: ../tools/vino-passwd.c:181 +#, c-format +msgid "" +"Error while communicating with GConf. Are you logged into a GNOME session?" +msgstr "Feil under kommunikasjon med GConf. Er du logga inn i ei GNOME-økt?" + +#: ../tools/vino-passwd.c:183 +#, c-format +msgid "Error message:" +msgstr "Feilmelding:" + +#: ../tools/vino-passwd.c:200 +msgid "Show Vino version" +msgstr "Vis versjon av Vino" + +#: ../tools/vino-passwd.c:209 +msgid "- Updates Vino password" +msgstr "– Oppdaterer passord til Vino" + +#: ../tools/vino-passwd.c:219 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Køyr «vino-passwd --help» for å sjå ei fullstendig liste av tilgjengelege " +"kommandolinjeval" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versjon av VINO %s\n" + +#: ../tools/vino-passwd.c:238 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "FEIL: Du har ikkje løyve til å endra passordet til Vino.\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Innstillingar for skrivebord over nettet" + +# +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Nettverk</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "B_e om stadfesting" + +# +#~ msgid "Advanced" +#~ msgstr "Avansert" + +# +#~ msgid "General" +#~ msgstr "Generelt" + +# +#~ msgid "" +#~ "If checked, remote users accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "Kryss av her for å krevja at eksterne brukarar støttar kryptering" + +# +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Viss denne aktiverast vil skjermen låses etter at siste eksterne klient " +#~ "koplar frå" + +# +#~ msgid "If checked, the server will only accept connections from localhost" +#~ msgstr "" +#~ "Kryss av her for berre å tillate tilkoplingar frå denne datamaskinen" + +# +#~ msgid "" +#~ "If checked, the server will use another port, instead of the default " +#~ "(5900)" +#~ msgstr "" +#~ "Kryss av her for å la tenaren lytte på ein annan port enn forvald port " +#~ "(5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Brukarar kan sjå skrivebordet ditt med denne kommandoen:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "Når ein brukar prøver å sjå eller styra skrivebordet ditt:" + +# +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Lås skjermen når siste brukar koplar frå" + +# +#~ msgid "_Only allow local connections" +#~ msgstr "Tillat berre l_okale tilkoplingar" + +#~ msgid "_Password:" +#~ msgstr "_Passord:" + +# +#~ msgid "_Require encryption" +#~ msgstr "K_rev kryptering" + +# +#~ msgid "_Use an alternative port:" +#~ msgstr "Br_uk ei alternativ port:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Slutt på minne under handtering av «%s»-melding" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "slutt på minne ved registrering av objektstig «%s»" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Klarte ikkje å henta D-Bus-namn «%s»\n" + +# +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Viss denne verdien er «true» vil tenaren berre godta tilkoplingar frå " +#~ "localhost, og tilkoplingar via nettverket vil nektes. Set dette " +#~ "alternativet til «true» viss du utelukkende ynskjer å bruka ein " +#~ "tunneleringsmekanisme, slik som ssh, til å aksessere tenaren" + +# +#~ msgid "Only allow local connections" +#~ msgstr "Tillat berre lokale tilkoplingar" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problem under registrering av eksternt skrivebord-tenaren i bonobo-" +#~ "activation. Avsluttar.\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Eksternt skrivebord-tenaren døydde. Startar på nytt\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Aktivering av %s feila: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Aktivering av %s feila: Ukjend feil\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Klarte ikkje aktivera eksternt skrivebord-tenar: Prøvd for mange gongar\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Startar eksternt skrivebord-tenar" + +# +#~ msgid "Not starting remote desktop server" +#~ msgstr "Startar ikkje eksternt skrivebord-tenar" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Address" +#~ msgstr "Adresse" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "Adressa skjermelementet peikar på" + +#~ msgid "Tooltip" +#~ msgstr "Verktøytips" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Eit verktøytips til denne adressa" + +#~ msgid "URL color" +#~ msgstr "URL-farge" + +#~ msgid "The color of the URL's label" +#~ msgstr "Fargen på merkelappen til URL-en" + +#~ msgid "The screen to be monitored" +#~ msgstr "Skerm å overvaka" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "Skjermen det skal lagast ein VNC-tenar til" + +#~ msgid "On Hold" +#~ msgstr "På vent" + +#~ msgid "Place all clients on hold" +#~ msgstr "Sett alle klientane på vent" + +#~ msgid "Prompt enabled" +#~ msgstr "Spør" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Spør brukaren om forsøk på tilkopling" + +#~ msgid "View Only" +#~ msgstr "Berre sjå" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Sperr tastatur og peikar for klientar" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Krev at klientar brukar kryptering" + +#~ msgid "Authentication methods" +#~ msgstr "Autentiseringsmetodar" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "Autentiseringsmetodane denne tenaren skal tillata" + +#~ msgid "VNC Password" +#~ msgstr "VNC-passord" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "Passordet (koda i base64) som vert brukt til å autentisera typar som " +#~ "brukar VncAuth-metoden" diff --git a/po/oc.po b/po/oc.po new file mode 100644 index 0000000..e537362 --- /dev/null +++ b/po/oc.po @@ -0,0 +1,754 @@ +# translation of vino.po to Occitan (lengadocian) +# Translation of oc.po to Occitan +# Occitan translation of vino. +# Copyright (C) 2004-2007, 2008 The Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2006-2008. +# Cédric Valmary (Tot en òc) <cvalmary@yahoo.fr>, 2015. +# Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>, 2016. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2016-05-10 16:55+0000\n" +"PO-Revision-Date: 2016-05-08 18:52+0200\n" +"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n" +"Language-Team: Tot En Òc\n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" +"X-Launchpad-Export-Date: 2015-05-20 17:08+0000\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Demandar a l'utilizaire abans de procedir a una connexion" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Se verai, los utilizaires a distància qu'accedisson al burèu se veson " +"refusar tot accès fins a moment que l'utilizaire sus l'ordenador òste " +"aprovarà la connexion. Recomandat particularament quand l'accès es pas " +"protegit per un senhal." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Autorizar los utilizaires a distància unicament a veire lo burèu" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se verai, los utilizaires a distància qu'accedisson al burèu son unicament " +"autorizats a veire lo burèu. Pòdon utilizar ni la mirga ni lo clavièr." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Interfàcia ret a escotar" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se pas definit, lo servidor escota totas las interfàcias ret.\n" +"\n" +"Definissètz aqueste paramètre se volètz limitar las connexions a certanas " +"interfàcias ret. Per exemple : eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Escotar sus un autre pòrt" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se verai, lo servidor escotarà sus un autre pòrt, al luòc del pòrt per " +"defaut (5900). Lo pòrt deu èsser indicat per la clau « alternative-port »." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Numèro de pòrt alternatiu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Lo pòrt sul qual lo servidor escota se la clau « use-alternative-port » es " +"definida a verai. Las valors validas son dins la plaja 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Requerís lo chiframent" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se verai, los utilizaires distants qu'accedisson al burèu devon poder prene " +"en carga lo chiframent. Es bravament recomandat qu'utilizetz un client que " +"prenga en carga lo chiframent a mens que la ret en question siá fisabla." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Metòdes d'autentificacion autorizadas" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Fa la lista dels metòdes d'autentificacion amb l'ajuda dels quals los " +"utilizaires a distància pòdon accedir al burèu.\n" +"\n" +"Existisson dos metòdes d'autentificacion possibles ; « vnc » farà en sòrta " +"qu'un senhal siá demandat a l'utilizaire (lo senhal es indicat per la clau " +"vnc-password) abans la connexion e « none » permet a totes los utilizaires a " +"distància de se connectar." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Senhal requesit per l'autentificacion « vnc »" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Lo senhal que serà demandat a l'utilizaire se lo metòde d'autentificacion « " +"vnc » es utilizat. Lo senhal indicat per la clau es encodat en base64.\n" +"\n" +"La valor especiala « keyring » (qu'es pas valida en base64) significa que lo " +"senhal es enregistrat dins lo trossèl de clau GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adreça electronica a la quala cal mandar l'URL del burèu a distància" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Aquesta clau indica l'adreça electronica a la quala cal mandar l'URL del " +"burèu a distància se l'utilizaire clica sus l'URL dins la bóstia de dialòg " +"de preferéncias del partiment de burèu." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Verrolhar l'ecran aprèp la desconnexion del darrièr utilizaire" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se verai, l'ecran serà verrolhat aprèp la desconnexion del darrièr " +"utilizaire." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Indica se l'icòna d'estat deu èsser afichada" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Aquesta clau contraròtla lo comportament de l'icòna d'estat. Tres opcions " +"son disponibles : « always » - l'icòna es totjorn afichada ; « client » - " +"l'icòna es afichada unicament quand qualqu'un es connectat (comportament per " +"defaut) ; « never » - l'icòna es pas jamai afichada." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Indica se cal desactivar lo rèireplan del burèu quand un utilizaire es " +"connectat" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Se verai, lo rèireplan del burèu es desactivat e remplaçat per un sol blòt " +"colorat quand un utilizaire se connècta." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Indica se cal utilizar un rotador UPnP per propagar e dobrir los pòrts" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se verai, demandar a un rotador compatible UPnP de propagar e de dobrir lo " +"pòrt utilizat per Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Indica se cal desactivar l'extension XDamage de X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se verai, l'extension XDamage de X.org es pas utilizada. Aquesta extension " +"fonciona pas corrèctament amb certans pilòts grafics quand los efèits 3D son " +"activats. Sa desactivacion permet a vino de foncionar dins aqueles cases de " +"figura, amb coma consequéncia un alentiment d'afichatge." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Notificacion a la connexion" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se verai, Vino aficha una notificacion quand un utilizaire se connècta al " +"sistèma." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Lo fichièr es pas un fichièr .desktop valid" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Version « %s » del fichièr desktop pas reconeguda" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Aviada de %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "L'aplicacion accèpta pas de documents en linha de comanda" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opcion d'aviada pas reconeguda : %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossible de transmetre d'URI de documents cap a una entrada de burèu de " +"tipe « Type=Link »" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "L'element es pas executable" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desactiva la connexion al gestionari de sessions" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Indica un fichièr que conten la configuracion enregistrada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FICHIÈR" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Indica l'ID de la gestion de sessions" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcions de gestion de sessions :" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Aficha las opcions de gestion de session" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Vòstre servidor XServer pren pas en carga l'extension XTest - l'accès al " +"burèu a distància serà en vista-sola\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Aviar en mòde tub, per la foncionalitat « Partejar mon burèu »" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC per GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Aviatz « vino-server --help » per veire la lista completa de las opcions " +"disponiblas en linha de comanda" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Partiment de burèu GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Burèu a distància de %s sus %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Senhal %d recebut, fin." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ecran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "L'ecran sul qual cal afichar lo convit" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Error al moment de l'inicializacion de libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utilizaire sus l'ordenador « %s » ensaja de veire o contrarotlar a " +"distància vòstre burèu." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Un autre utilizaire ensaja d'accedir a vòstre burèu." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Refusar" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Acceptar" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "La dobertura de la connexion al bus a fracassat : %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Partiment de burèu" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de partiment de burèu GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;partiment;distant;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Lo partiment del burèu es activat" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Una persona es a veire vòstre burèu" +msgstr[1] "%d personas son a veire vòstre burèu" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Una error s'es produita al moment de l'afichatge de las preferéncias" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Una error s'es produita al moment de l'afichatge de l'ajuda" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Vino es un logicial liure ; lo podètz redistribuir e/o lo\n" +"modificar segon los tèrmes de la Licéncia Publica Generala GNU, tala\n" +"coma publicada per la Free Software Foundation ; version 2 de la licéncia,\n" +"o (a vòstra discreccion) tota version ulteriora.\n" +"\n" +"Vino es distribuit dins l'esper que serà utile, mas SENS CAP DE GARANTIDA ; " +"sens la quita garantida implicita de VALOR MERCANDA o D'ADEQÜACION A UN " +"BESONH PARTICULAR. Per mai de detalhs, veire la Licéncia Publica Generala " +"GNU.\n" +"\n" +"Un exemplar de la Licéncia Publica Generala GNU deu èsser provesit amb " +"aqueste programa ; se es pas lo cas, escrivètz a la Free Software " +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " +"USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Partejatz vòstre burèu amb d'autres utilizaires" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Sètz segur que volètz desconnectar « %s » ?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "L'utilizaire distant de « %s » serà desconnectat. Sètz segur ?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Sètz segur que volètz desconnectar totes los clients ?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Totes los utilizaires distants seràn desconnectats. Sètz segur ?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Desconnectar" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferéncias" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Desconnectar tot" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Desconnectar %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "A_juda" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "A _prepaus" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "Un autre utilizaire es a veire vòstre burèu" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un utilizaire sus l'ordenador « %s » es a veire vòstre burèu a distància." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "Un autre utilizaire es a contrarotlar vòstre burèu" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un utilizaire sus l'ordenador « %s » contraròtla actualament vòstre burèu a " +"distància." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Error al moment de l'afichatge de la bulla de notificacion : %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "L'utilizaire distant « %s » serà desconnectat. Sètz segur ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Partejar mon burèu" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "« %s » a regetat lo convit de partiment del burèu." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "« %s » s'es desconnectat" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "« %s » contraròtla actualament vòstre burèu a distància." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "En espèra de la connexion de « %s » a aqueste ecran." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Autorizar" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Refusar" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Una error s'es produita :" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Una error s'es produita en affichant l'URL « %s »" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Una error s'es produita al moment de l'afichatge de l'ajuda :\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Verificacion de la connectivitat d'aqueste ordenador..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Vòstre burèu es pas accessible qu'a partir de la ret locala." + +#~ msgid " or " +#~ msgstr " o " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "" +#~ "D'autras personas pòdon accedir a vòstre ordenador en utilizant l'adreça " +#~ "%s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Personne ne pòt accedir a vòstre burèu." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "" +#~ "Causir cossí d'autres utilizaires pòdon veire vòstre burèu a distància" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Preferéncias de partiment de burèu" + +#~ msgid "Sharing" +#~ msgstr "Partiment" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Certanas d'aquelas preferéncias son verrolhadas" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Autorizar d'autres utilizaires a _voir vòstre burèu" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Vòstre burèu serà partejat" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Autorizar d'autres utilizaires a contrarotlar vòstre burèu" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "" +#~ "Los utilizaires distants pòdon contrarotlar vòstra mirga e vòstre clavièr" + +#~ msgid "Security" +#~ msgstr "Seguretat" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "Cada accès a aqueste _ordenador deu èsser confirmat" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "L'utilizaire deu pica_r aqueste senhal :" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "_Configurar automaticament lo rotador UPnP per dobrir e redirigir de pòrts" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "La foncionalitat UPnP deu èsser activada sul rotador" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Afichar l'icòna dins la zòna de notificacion" + +#~ msgid "Al_ways" +#~ msgstr "_Totjorn" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Solament se qualqu'un es connectat" + +#~ msgid "_Never" +#~ msgstr "Pas _jamai" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Activar l'accès distant al burèu" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Se verai, permet l'accès a distància al burèu via lo protocòl RFB. Les " +#~ "utilizaires sus des ordenadors a distància pòdon alara se connectar al " +#~ "burèu amb l'ajuda d'un visionador VNC." + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Senhal del partiment de burèu a distància" + +#~ msgid "Cancelled" +#~ msgstr "Anullat" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "ERROR : la talha maximala dels senhals es de %d caractèr. Picatz tornamai " +#~ "lo senhal." +#~ msgstr[1] "" +#~ "ERROR : la talha maximala dels senhals es de %d caractèrs. Picatz " +#~ "tornamai lo senhal." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Cambiament del senhal de Vino.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Picatz lo novèl senhal Vino : " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Confirmatz lo novèl senhal Vino : " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd : lo senhal es estat mes a jorn.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "O planhèm, los senhals correspondon pas.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd : lo senhal demòra incambiat.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Afichar la version de Vino" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Mesa a jorn dels senhals de Vino" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Aviatz « vino-passwd --help » per veire la lista completa de las opcions " +#~ "disponiblas en linha de comanda" + +#~ msgid "VINO Version %s\n" +#~ msgstr "Version de Vino %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "ERROR : avètz pas la permission de cambiar lo senhal de Vino.\n" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Un utilizaire sus un autre ordenador ensaja de veire o contrarotlar a " +#~ "distància vòstre burèu." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Los volètz autorizar a contunhar ?" diff --git a/po/or.po b/po/or.po new file mode 100644 index 0000000..04ba281 --- /dev/null +++ b/po/or.po @@ -0,0 +1,900 @@ +# translation of vino.master.or.po to Oriya +# Oriya translation of vino.HEAD.pot. +# Copyright (C) 2004, 2006, 2008, 2009, Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# $Id: or.po,v 1.5 2006/03/20 18:48:28 gmohanty Exp $ +# +# Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004, 2006. +# Manoj Kumar Giri <mgiri@redhat.com>, 2008, 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino.master.or\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-24 18:19+0530\n" +"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n" +"Language-Team: Oriya <oriya-it@googlegroups.com>\n" +"Language: or\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" କୁ ଦର୍ଶାଇବାରେ ତ୍ରୁଟି ଘଟିଥିଲା" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"ସହାୟତା ଦେଖାଇବାରେ ତ୍ରୁଟି:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "ଏହି ଯନ୍ତ୍ରର ସଂଯୋଜକତା ଯାଞ୍ଚ କରୁଅଛି..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ସ୍ଥାନୀୟ ନେଟୱର୍କରେ ପହଞ୍ଚିହେବ।" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " କିମ୍ବା " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "" +"ଠିକଣା %s କୁ ବ୍ୟବହାର କରି ଅନ୍ୟମାନେ ଆପଣଙ୍କର କମ୍ପୁଟର ମଧ୍ୟରେ ପ୍ରବେଶ କରିପାରିବେ।" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "ଆପଣଙ୍କ ଡେସ୍କଟପ ମଧ୍ଯରେ କେହି ପ୍ରବେଶ କରିପାରିବେ ନାହିଁ।" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ଡେସ୍କଟପ ସହଭାଗ" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "ଅନ୍ଯ ଚାଳକମାନେ କିପରି ଦୂରରେ ରହି ଆପଣଙ୍କ ଡେସ୍କଟପକୁ ଦେଖିପାରିବେ ତାହା ବାଛନ୍ତୁ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ଡେସ୍କଟପ ସହଭାଗ ପସନ୍ଦଗୁଡ଼ିକ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ସହଭାଗ" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ଏହା ମଧ୍ଯରୁ କିଛି ପସନ୍ଦଗୁଡ଼ିକୁ ଅପରବର୍ତ୍ତିତ କରାଯାଇଛି" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "ଅନ୍ଯ ଚାଳକକୁ ଆପଣଙ୍କ ଡେସ୍କଟପ ଦେଖିବାର ଅନୁମତି ଦିଅନ୍ତୁ (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ସହଭାଗ କରାଯିବ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "ଅନ୍ଯ ଚାଳକକୁ ଆପଣଙ୍କ ଡେସ୍କଟପ ନିୟନ୍ତ୍ରିତ କରିବାର ଅନୁମତି ଦିଅନ୍ତୁ (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "ସୁଦୂର ଚାଳକମାନେ ଆପଣଙ୍କର ମାଉସ ଏବଂ କିବୋର୍ଡ ନିୟନ୍ତ୍ରଣ କରିବାରେ ସମର୍ଥ" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "ସୁରକ୍ଷା" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "ଏହି କମ୍ପୁଟର ମଧ୍ୟରେ ସମସ୍ତ ପ୍ରବେଶକୁ ଆପଣ ନିଶ୍ଚିତ କରନ୍ତୁ (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ଚାଳକକୁ ଏହି ପ୍ରବେଶ ସଙ୍କେତ ଭର୍ତ୍ତି କରିବାକୁ ବାଧ୍ଯ କରନ୍ତୁ (_R)" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"ସ୍ୱୟଂଚାଳିତ ଭାବରେ UPnP router କୁ ପୋର୍ଟଗୁଡ଼ିକୁ ଖୋଲିବା ଏବଂ ଅଗ୍ରସର କରାଇବାକୁ " +"ବିନ୍ୟାସ କରନ୍ତୁ" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "ରାଉଟରରେ UPnP ଗୁଣଟିକୁ ସକ୍ରିୟ କରାଯାଇଛି" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "ବିଜ୍ଞପ୍ତି କ୍ଷେତ୍ର ଚିତ୍ରସଂକେତକୁ ଦର୍ଶାନ୍ତୁ" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ସର୍ବଦା ସ୍ଥାନାନ୍ତରିତ କରନ୍ତୁ (_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "କେବଳ ଯଦି କୌଣସି ବ୍ୟକ୍ତି ସଂଯୁକ୍ତ ହୋଇଥାଏ (_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "କଦାପି ନୁହଁ (_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "ଡେସ୍କଟପରେ ସୁଦୂର ପ୍ରବେଶାନୁମତିକୁ ସକ୍ରିୟ କରନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"ସତ ଥିଲେ, RFB ପ୍ରୋଟୋକଲ ଦ୍ବାରା ଡେସ୍କଟପକୁ ଦୂରରୁ ପ୍ରବେଶାନୁମତି ଦିଏ। ଏହା ଫଳରେ, ଦୂର " +"ଯନ୍ତ୍ରର ଚାଳକ " +"ଗୋଟିଏ VNC ଦର୍ଶକ ବ୍ଯବହାର କରି ଡେସ୍କଟପକୁ ସଂଯୋଗ କରିପାରିବେ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ସଂଯୋଗ ପୂର୍ଣ୍ଣ କରିବା ପୁର୍ବରୁ ଚାଳକକୁ ପଚାରନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"ସତ ଥିଲେ, ହୋଷ୍ଟ ଯନ୍ତ୍ରର ଚାଳକ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦେଲେ ହିଁ ଦୂର ଚାଳକକୁ " +"ଡେସ୍କଟପକୁ ପ୍ରବେଶାନୁମତି " +"ଦିଆ ଯାଏ. ପ୍ରବେଶାନୁମତି ସଙ୍କେତ ଦ୍ବାରା ସୁରକ୍ଷିତ ନ ଥିଲେ, ଏହା ବିଶେଷତଃ ଭାବରେ " +"ସୁପାରିଶ କରାଯାଏ." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "ଦୂର ଚାଳକକୁ କେବଳ ଡେସ୍କଟପକୁ ଦେଖିବାର ଅନୁମତି ଦିଅନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"ଯଦି true, ଡେସ୍କଟପକୁ ବ୍ଯବହାର କରୁଥିବା ଦୂର ଚାଳକକୁ କେବଳ ଡେସ୍କଟପ ଦେଖିବାକୁ ଅନୁମତି " +"ଦିଆଯାଏ. ଦୂର " +"ଚାଳକ ମାଉସ୍ ବା କିବୋର୍ଡ ବ୍ଯବହାର କରିପାରିବେ ନାହିଁ." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ଶୁଣିବା ପାଇଁ ନେଟୱର୍କ ଅନ୍ତରାପୃଷ୍ଠ" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"ଯଦି ସେଟ କରାହୋଇନାହିଁ, ସର୍ଭର ସମସ୍ତ ନେଟୱର୍କ ଅନ୍ତରାପୃଷ୍ଠଗୁଡ଼ିକୁ ଶୁଣିବ। \n" +"\n" +"ଯଦି ଆପଣ କିଛି ନିର୍ଦ୍ଦିଷ୍ଟ ନେଟୱର୍କ ଅନ୍ତରାପୃଷ୍ଠର ସଂଯୋଗ ଗ୍ରହଣ କରିବାକୁ ଚାହୁଁଛନ୍ତି, " +"ତେବେ ଏହାକୁ ସେଟ " +"କରନ୍ତୁ। ଉଦାହରଣ ସ୍ୱରୂପ: eth0, wifi0, lo ଏବଂ ସେହିପରି।" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "ଗୋଟିଏ ବୈକଳ୍ପିକ ସଂଯୋଗିକୀ ଉପରେ ଧ୍ୟାନଦିଅନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"ଯଦି true, ତେବେ ସର୍ଭର ପୂର୍ବନିର୍ଦ୍ଧାରିତ (5900) ପରିବର୍ତ୍ତେ, ଅନ୍ୟ ଏକ ସଂଯୋଗିକୀକୁ " +"ଧ୍ୟାନ ଦେବ। " +"ସଂଯୋଗିକୀଟି 'ବୈକଳ୍ପିକ_ସଂଯୋଗିକୀ' ରେ ଉଲ୍ଲେଖ କରାଯିବା ଉଚିତ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "ବୈକଳ୍ପିକ ସଂଯୋଗିକୀ ସଂଖ୍ୟା" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"ଯଦି 'use_alternative_port' କିକୁ true ବୋଲି ବିନ୍ୟାସ କରୁଥିବା ସମୟରେ ସର୍ଭର ଯେଉଁ " +"ସଂଯୋଗିକୀକୁ " +"ଧ୍ଯାନ ଦେଇଥାଏ। ବୈଧ ମୂଲ୍ୟଗୁଡ଼ିକ 5000 ରୁ 50000 ସୀମା ମଧ୍ୟରେ ଅଛି।" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "ଗୁପ୍ତ ସଙ୍କେତ ବ୍ଯବହାର କରିବାକୁ ବାଧ୍ଯ କରନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"ଯଦି true, ଡେସ୍କଟପକୁ ବ୍ଯବହାର କରୁଥିବା ଦୂର ଚାଳକକୁ ଗୁପ୍ତ ସଙ୍କେତ ସହାୟକ କରିବାକୁ " +"ବାଧ୍ଯ କରାଯିବ. ଏହା " +"ବିଶେଷତଃ ଭାବରେ ସୁପାରିଶ କରାଯାଏ କି ଯଦି ମଝିରେ ସ୍ଥିତ ନେଟୱର୍କ ଉପରେ ନିର୍ଭର କରିହେବ " +"ନାହିଁ, ଆପଣ ଗୁପ୍ତ " +"ସଙ୍କେତ ସହାୟକ କରୁଥିବା ଗ୍ରାହକ ବ୍ଯବହାର କରନ୍ତୁ." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ବୈଧିକରଣ ଧାରାଗୁଡ଼ିକ ଯାହାକୁ ଅନୁମତି ଦିଆଯାଇଛି" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"ଡେସ୍କଟପକୁ ପ୍ରବେଶ ପାଇବାକୁ ଦୂର ଚାଳକ ଦ୍ବାରା ବ୍ଯବହାର କରାଯାଇପାରିବା ବୈଧିକରଣ " +"ଧାରାଗୁଡ଼ିକ ଉଲ୍ଲେଖିତ " +"କରେ।\n" +"\n" +"ଦୁଇଟି ବୈଧିକରଣ ଧାରା ସମ୍ଭବ; \"vnc\" ଯେଉଁଟାକି ଦୂର ଚାଳକକୁ ସଂଯୋଗ କରିବା ପୁର୍ବରୁ " +"ପ୍ରବେଶ ସଙ୍କେତ " +"ପଚାରେ (ପ୍ରବେଶ ସଙ୍କେତଟି vnc_password ଚାବି ଦ୍ବାରା ଉଲ୍ଲେଖିତ), ଓ \"none\" " +"ଯେଉଁଟାକି ଯେକୌଣସି " +"ଦୂର ଚାଳକକୁ ସଂଯୋଗ କରିବାକୁ ଅନୁମତି ଦିଏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" ବୈଧିକରଣ ପାଇଁ ଆବଶ୍ଯକ ପ୍ରବେଶ ସଙ୍କେତ" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" ବୈଧିକରଣ ଧାରାରେ ବ୍ଯବହୃତ ପ୍ରବେଶ ସଙ୍କେତ ଯେଉଁଟାକି ଦୂର ଚାଳକକୁ ପଚାରାଯିବ। " +"ଏହି କି ଦ୍ବାରା " +"ଉଲ୍ଲେଖିତ ପ୍ରବେଶ ସଙ୍କେତଟି ଆଧାର64 ସଙ୍କେତରେ ସଞ୍ଚିତ ହୁଏ। \n" +"\n" +"'କିରିଙ୍ଗ' ର ସେହି ବିଶିଷ୍ଟ ମୂଲ୍ୟ (ଯାହାକି ବୈଧ ଆଧାର 64 ନୁହଁ) ଏହା ଅର୍ଥ ସେହି ପ୍ରବେଶ " +"ସଂକେତଟି GNOME " +"କିରିଙ୍ଗରେ ସଂରକ୍ଷିତ ହୋଇଥାଏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ଦୂର ଡେସ୍କଟପର ୟୁ.ଆର.ଏଲ. ପଠାଇବା ପାଇଁ ଇ-ଡାକ ଠିକଣା" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ଏହି କି ଇ-ମେଲ ଠିକଣା ଉଲ୍ଲେଖିତ କରେ, ଯେଉଁଟାକି ଦୂର ଡେସ୍କଟପ URL ପଠାଇବାକୁ ବ୍ଯବହାର " +"କରାଯିବ, ଯଦି ଦୂର " +"ଡେସ୍କଟପ ପସନ୍ଦରେ ସ୍ଥିତ URLରେ ଚାଳକ ମାଉସ୍ ଚାବି ଦବାଏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "" +"ଶେଷ ସୁଦୂର ଗ୍ରାହକ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହେବା ମାତ୍ରେ ପରଦାକୁ ଅପରିବର୍ତ୍ତନୀୟ " +"କରିଦିଅନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"ଯଦି true, ତେବେ ଶେଷ ସୁଦୂର ଗ୍ରାହକ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହେବା ପରେ ପରଦା " +"ଅପରିବର୍ତ୍ତନୀୟ ହୋଇଯିବ." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "କେତେବେଳେ ସ୍ଥିତି ଚିତ୍ରସଂକେତକୁ ଦର୍ଶାଯିବ" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"ଏହି କି ଟି ସ୍ଥିତି ଚିତ୍ରସଂକେତର ଆଚରଣକୁ ନିୟନ୍ତ୍ରଣ କରିଥାଏ। ଏହାର ତିନୋଟି ବିକଳ୍ପ ଅଛି: " +"\"ସର୍ବଦା\" - " +"ଚିତ୍ରସଂକେତଟି ସର୍ବଦା ରହିବ; \"କ୍ଲାଏଣ୍ଟ\" - କେବଳ କେହିଜଣେ ସଂଯୁକ୍ତ ହେଲେହିଁ ଆପଣ " +"ଚିତ୍ରସଂକେତ " +"ଦେଖିପାରିବେ, ଏହ ହେଉଛି ପୂର୍ବନିର୍ଦ୍ଧାରିତ ଆଚରଣ; \"କଦାପି ନୁହଁ\" - କଦାପି ଚିତ୍ରସଂକେତ " +"ଦର୍ଶାନ୍ତୁ ନାହିଁ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"ବ୍ୟବହାରକାରୀ ସଂଯୁକ୍ତ ହେବା ମାତ୍ରେ ଡେସ୍କଟପ୍ ପୃଷ୍ଠଭୂମିକୁ ନିଷ୍କ୍ରିୟ କରିବା ଉଚିତ କି" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"true ଥିବା ସମୟରେ, ଡେସ୍କଟପ୍ ପୃଷ୍ଠଭୂମିକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ ଏବଂ ତାହାକୁ କୌଣସି " +"ବ୍ୟବହାରକାରୀ ସଫଳତାର " +"ସହିତ ସଂଯୋଗ ହେବା ମାତ୍ରେ ଗୋଟିଏ ରଙ୍ଗ ବିଶିଷ୍ଟ ବ୍ଲକରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"ପୋର୍ଟ୍ଗୁଡ଼ିକୁ ଅଗ୍ରସର କରିବା ଏବଂ ଖୋଲିବା ପାଇଁ ଆମେ UPnP କୁ ବ୍ୟବହାର କରିବା ଉଚିତ କି" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"ଯଦି true ହୋଇଥାଏ, ତେବେ ଏକ UPnP-ସକ୍ଷମ ରାଉଟର ଦ୍ୱାରା ଅନୁରୋଧ ପଠାଇବା ଉଚିତ ଏବଂ " +"Vino ଦ୍ୱାରା ବ୍ୟବହୃତ ପୋର୍ଟ୍କୁ ଖୋଲିଥାଏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org ର XDamage ଅନୁଲଗ୍ନକୁ ନିଷ୍କ୍ରିୟ କରିବା ଉଚିତ କି" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"ଯଦି true, ତେବେ ଆମେ X.org ର XDamage ଅନୁଲଗ୍ନକୁ ବ୍ୟବହାର କରିବା ଉଚିତ ନୁହଁ। ଏହି " +"ଅନୁଲଗ୍ନ କିଛି ଭିଡିଓ " +"ଡ୍ରାଇଭର ସହିତ 3D ପ୍ରଭାବଗୁଡ଼ିକୁ ବ୍ୟବହାର କରି ଠିକ ଭାବରେ କାର୍ଯ୍ୟ କରିନଥାଏ। ଏହାକୁ " +"ନିଷ୍କ୍ରିୟ କରିବା " +"ଦ୍ୱାରା ଏହି ପରିବେଶରେ Vino କାର୍ଯ୍ୟ ପାର୍ଶ୍ୱ ପ୍ରଭାବ ଆକାରରେ ମନ୍ଥର ଚିତ୍ରଣ କରିଥାଏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "ସଂଯୋଗ ହେବାମାତ୍ରେ ସୂଚନା ଦିଅନ୍ତୁ" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"ଯଦି true ହୋଇଥାଏ, ତେବେ ବ୍ୟବହାରକାରୀ ତନ୍ତ୍ରରେ ସଂଯୋଗ ହେବାମାତ୍ରେ ଆମେ ସୂଚାଇବୁ।" + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "ସୁଦୂର ଡେସ୍କଟପ ସହଭାଗ ପ୍ରବେଶ ସଂକେତ" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ଫାଇଲଟି ଗୋଟିଏ ବୈଧ .desktop ଫାଇଲ ନୁହଁ" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ଅଚିହ୍ନା ଡେସ୍କଟପ ଫାଇଲ ସଂସ୍କରଣ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%sକୁ ଆରମ୍ଭ କରୁଅଛି" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ନିର୍ଦ୍ଦେଶ ନାମାରେ ପ୍ରୟୋଗ ଦଲିଲ ଗ୍ରହଣ କରେନାହିଁ" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ଅଚିହ୍ନା ଆରମ୍ଭ ବିକଳ୍ପ: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ଦଲିଲ URI ଗୁଡ଼ିକୁ 'Type=Link' ଡେସ୍କଟପ ଭରଣ ମଧ୍ଯଦେଇ ପାସ କରିହେବ ନାହିଁ" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ଗୋଟିଏ ଆରମ୍ଭଯୋଗ୍ୟ ବସ୍ତୁ ନୁହଁ" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ଅଧିବେଶନ ପରିଚାଳକଙ୍କ ସହ ସମ୍ପର୍କ ବନ୍ଦ କରିଦିଅନ୍ତୁ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "ସଂରକ୍ଷିତ ବିନ୍ୟାସ ଧାରଣ କରିଥିବା ଫାଇଲକୁ ଉଲ୍ଲେଖ କରନ୍ତୁ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "ଅଧିବେଶନ ପରିଚାଳନା ID ଉଲ୍ଲେଖ କରନ୍ତୁ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ଅଧିବେଶନ ପରିଚାଳନା ବିକଳ୍ପଗୁଡ଼ିକ:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "ଅଧିବେଶନ ପରିଚାଳନା ବିକଳ୍ପଗୁଡ଼ିକୁ ଦର୍ଶାନ୍ତୁ" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"ଆପଣଙ୍କ ଏକ୍ସ ସେବକ XTest ଏକକାଂଶକୁ ସହାୟକ କରେ ନାହିଁ - ଆପଣ ଦୂର ଡେସ୍କଟପକୁ କେବଳ " +"ଦେଖିପାରିବେ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "'ମୋର ଡେସ୍କଟପକୁ ସହଭାଗ କରନ୍ତୁ' ବିଶେଷତା ପାଇଁ, ଟ୍ୟୁବ ଧାରାରେ ଆରମ୍ଭ କରନ୍ତୁ" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME ପାଇଁ VNC ସର୍ଭର" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"ଉପଲବ୍ଧ ନିର୍ଦ୍ଦେଶନାମା ବିକଳ୍ପଗୁଡ଼ିକର ସମ୍ପୂର୍ଣ୍ଣ ତାଲିକା ଦେଖିବା ପାଇଁ 'vino-server " +"--help' ଚଲାନ୍ତୁ" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME ଡେସ୍କଟପ ସହଭାଗ" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%sରେ %s ର ସୁଦୂର ଡେସ୍କଟପ" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "ସଂକେତ %d କୁ ଗ୍ରହଣ କରାଯାଇଛି, ପ୍ରସ୍ଥାନ କରୁଅଛି।" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "ପରଦା" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ପରଦା ଯେଉଁଟାରେ ସୂଚକ ପ୍ରଦର୍ଶିତ କରାଯିବ" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotifyକୁ ଆରମ୍ଭ କରିବା ସମୟରେ ତ୍ରୁଟି\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' କମ୍ପ୍ଯୁଟରରୁ ଗୋଟିଏ ଚାଳକ ଦୂରରୁ ଆପଣଙ୍କ ଡେସ୍କଟପ ଦେଖିବାକୁ ବା ନିୟନ୍ତ୍ରିତ " +"କରିବାକୁ ଚେଷ୍ଟା କରୁଛି." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "ଅନ୍ଯ ଚାଳକ ଆପଣଙ୍କ ଡେସ୍କଟପ ଦେଖିବାକୁ ଚେଷ୍ଟା କରୁଛି।" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "ମନା କରନ୍ତୁ" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "ଗ୍ରହଣ କରନ୍ତୁ" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "ବସକୁ ସଂଯୋଗ କରିବାରେ ବିଫଳ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME ଡେସ୍କଟପ ସହଭାଗ ସର୍ଭର" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;ସହଭାଗ;ସୁଦୂର;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ଡେସ୍କଟପ ସହଭାଗକୁ ସକ୍ରିୟକରାଯାଇଛି" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "ଜଣେ ବ୍ୟକ୍ତି ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ଦେଖୁଅଛି" +msgstr[1] "%d ଜଣ ବ୍ୟକ୍ତି ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ଦେଖୁଛନ୍ତି" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "ପସନ୍ଦ ଦେଖାଇବାରେ ତ୍ରୁଟି" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ସହାୟତା ଦେଖାଇବାରେ ତ୍ରୁଟି" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "ମନୋଜ କୁମାର ଗିରି <mgiri@redhat.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "ଅନ୍ୟ ଚାଳକମାନଙ୍କ ସହିତ ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ସହଭାଗ କରନ୍ତୁ" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s' ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରିବେ ବୋଲି ଆପଣ ନିଶ୍ଚିତ କି?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s'ରୁ ଥିବା ସୁଦୂର ଚାଳକ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରାଯିବ. ଆପଣ ନିଶ୍ଚିତ କି?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "ସମସ୍ତ ଗ୍ରାହକ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରିବେ ବୋଲି ଆପଣ ନିଶ୍ଚିତ କି?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "ସମସ୍ତ ସୁଦୂର ଚାଳକ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରାଯିବ. ଆପଣ ନିଶ୍ଚିତ କି?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହୋଇଛି" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "ପସନ୍ଦ (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "ସମସ୍ତଙ୍କ ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ସହାୟତା (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "ବିବରଣୀ (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "ଅନ୍ଯ ଏକ ଚାଳକ ଆପଣଙ୍କର ଡେସ୍କଟପକୁ ଦେଖୁଅଛି" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "'%s' କମ୍ପ୍ଯୁଟରରେ ଗୋଟିଏ ଚାଳକ ଦୂରରୁ ଆପଣଙ୍କ ଡେସ୍କଟପ ଦେଖୁଅଛି." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "ଅନ୍ଯ ଏକ ଚାଳକ ଆପଣଙ୍କ ଡେସ୍କଟପକୁ ନିୟନ୍ତ୍ରଣ କରୁଅଛି" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "'%s' କମ୍ପ୍ଯୁଟରରୁ ଗୋଟିଏ ଚାଳକ ଦୂରରୁ ଆପଣଙ୍କ ଡେସ୍କଟପକୁ ନିୟନ୍ତ୍ରଣ କରୁଅଛି." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "ବିଜ୍ଞପ୍ତି ବବଲ ଦର୍ଶାଇବା ସମୟରେ ତ୍ରୁଟି: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "ସୁଦୂର ଚାଳକ '%s' ସହିତ ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ କରାଯିବ। ଆପଣ ନିଶ୍ଚିତ କି?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "ମୋର ଡେସ୍କଟପ ସୂଚନାକୁ ସହଭାଗ କରନ୍ତୁ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' ଡେସ୍କଟପ ସହଭାଗ ଆମନ୍ତ୍ରଣକୁ ପ୍ରତ୍ୟାଖାନ କରିଥିଲା।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' ସଂଯୋଗ ବିଚ୍ଛିନ୍ନ ହୋଇଛି" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' ଦୂରରୁ ଆପଣଙ୍କ ଡେସ୍କଟପକୁ ନିୟନ୍ତ୍ରଣ କରୁଅଛି।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' କୁ ପରଦା ସହିତ ସଂଯୋଗ ହେବା ପାଇଁ ଅପେକ୍ଷା କରିଅଛି।" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "ଅନୁମତି ଦିଅନ୍ତୁ (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "ମନା କରନ୍ତୁ (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ଗୋଟିଏ ତ୍ରୁଟି ଘଟିଛି:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "ବାତିଲ ହୋଇଛି" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERROR: ପ୍ରବେଶ ସଂକେତର ସର୍ବାଧିକ ଆକାର ହେଉଛି %d ଅକ୍ଷର। ଦୟାକରି, ପ୍ରବେଶ ସଂକେତକୁ " +"ପୁଣି " +"ଥରେଭରଣକରନ୍ତୁ।" +msgstr[1] "" +"ERROR: ପ୍ରବେଶ ସଂକେତର ସର୍ବାଧିକ ଆକାର ହେଉଛି %d ଅକ୍ଷର। ଦୟାକରି, ପ୍ରବେଶ ସଂକେତକୁ " +"ପୁଣିଥରେ " +"ଭରଣକରନ୍ତୁ।" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino ପ୍ରବେଶ ସଂକେତକୁ ପରିବର୍ତ୍ତନ କରୁଅଛି.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "ନୂତନ Vino ପ୍ରବେଶ ସଂକେତ ଭରଣକରନ୍ତୁ: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "ନୂତନ Vino ପ୍ରବେଶ ସଂକେତକୁ ପୁଣି ଟାଇପକରନ୍ତୁ: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "Vino ପ୍ରବେଶ ସଂକେତ: ପ୍ରବେଶ ସଂକେତ ସଫଳତାର ସହିତ ଅଦ୍ୟତିତ ହୋଇସାରିଛି.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "କ୍ଷମା କରିବେ, ପ୍ରବେଶ ସଂକେତ ମେଳଖାଉନାହିଁ.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-ପ୍ରବେଶ ସଂକେତ: ପ୍ରବେଶ ସଂକେତ ଅପରିବର୍ତ୍ତିତ.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino ପ୍ରବେଶ ସଂକେତକୁ ଅଦ୍ୟତନ କରେ" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"ଉପଲବ୍ଧ ନିର୍ଦ୍ଦେଶନାମା ବିକଳ୍ପଗୁଡ଼ିକର ସମ୍ପୂର୍ଣ୍ଣ ତାଲିକା ଦେଖିବା ପାଇଁ 'vino-passwd " +"--help' ଚଲାନ୍ତୁ" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO ସଂସ୍କରଣ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"ERROR: Vino ପ୍ରବେଶ ସଂକେତକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପଣଙ୍କ ପାଖରେ ଯଥେଷ୍ଟ ସ୍ଥାନ " +"ନାହିଁ.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "ଯଦି true, ତେବେ ରାଉଟରରେ vino ଦ୍ୱାରା ବ୍ୟବହାର କରି ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଅଗ୍ରସର କରିବା ପାଇଁ " +#~ "ଆମେ UPNP ପ୍ରୋଟୋକଲ ବ୍ୟବହାର କରିପାରିବୁ।" + +#~ msgid "Question" +#~ msgstr "ପ୍ରଶ୍ନ" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "ଅନ୍ଯ କମ୍ପ୍ଯୁଟରରୁ ଗୋଟିଏ ଚାଳକ ଦୂରରୁ ଆପଣଙ୍କ ଡେସ୍କଟପ ଦେଖିବାକୁ ବା ନିୟନ୍ତ୍ରିତ କରିବାକୁ ଚେଷ୍ଟା କରୁଛି." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "ଆପଣ ସେମାନଙ୍କୁ ଅନୁମତି ଦେବାକୁ ଚାହାନ୍ତି କି?" + +#~ msgid "Remote Desktop" +#~ msgstr "ଦୂର ଡେସ୍କଟପ" + +#~ msgid "Enable remote desktop access" +#~ msgstr "ଦୂର ଡେସ୍କଟପ ଦ୍ବାରା ପ୍ରବେଶ ସମର୍ଥ କରନ୍ତୁ" + +#~ msgid "Al_ways display an icon" +#~ msgstr "ସର୍ବଦା ଚିତ୍ରସଂକେତରେ ପ୍ରଦର୍ଶନକରନ୍ତୁ (_w)" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "ସଂଯୋଗଗୁଡ଼ିକୁ ଗ୍ରହଣ କରିବା ପାଇଁ ନେୟୱର୍କକୁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ବିନ୍ୟାସ କରାଯାଇଛି (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "ଚିତ୍ରସଂକେତରେ କେବେବି ପ୍ରଦର୍ଶନକରନ୍ତୁ ନାହିଁ (_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "ଯଦି କେହି ସଂଯୁକ୍ତ ଅଛି ତେବେ କେବଳ ଗୋଟିଏ ଚିତ୍ରସଂକେତ ପ୍ରଦର୍ଶନକରନ୍ତୁ (_O)" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME ସୁଦୂର ଡେସ୍କଟପ" + +#~ msgid "_Send address by email" +#~ msgstr "ଏହି ନିର୍ଦ୍ଦେଶକୁ ଇ-ଡାକରେ ପଠାନ୍ତୁ (_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "କ୍ଲିପବୋର୍ଡରେ ଏହି ଠିକଣାକୁ ନକଲ କରନ୍ତୁ (_C)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "ସର୍ବାଧିକ ଆକାର: 8 ଅକ୍ଷର ବିଶିଷ୍ଟ" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "ପ୍ରତ୍ୟେକ ଆସୁଥିବା ସଂଯୋଗକୁ ଅନୁମତି ଦେବା କିମ୍ବା ମନାକରିବା ପାଇଁ ଆପଣଙ୍କୁ ପଚରାଯିବ" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "ଦୂର ଡେସ୍କଟପ ସେବକ ପୂର୍ବରୁ ଚାଲୁଛି; ପ୍ରସ୍ଥାନ କରୁଛି ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "GConf ସହିତ ଯୋଗାଯୋଗ କରିବା ସମୟରେ ତ୍ରୁଟି। ଆପଣ ଗୋଟିଏ GNOME ଅଧିବେଶନରେ ଲଗଇନ ହୋଇଛନ୍ତି କି?" + +#~ msgid "Error message:" +#~ msgstr "ତ୍ରୁଟି ସନ୍ଦେଶ:" diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 0000000..b304ca8 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,887 @@ +# translation of vino.HEAD.po to Punjabi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Amanpreet Singh Alam <amanlinux@netscpe.net>, 2004. +# Amanpreet Singh Alam <aalam@users.sf.net>,2005, 2006, 2007 2008, 2009. +# A S Alam <aalam@users.sf.net>, 2009, 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-02-22 03:52+0000\n" +"Last-Translator: A S Alam <aalam@users.sf.net>\n" +"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL \"%s\" ਵੇਖਾਉਣ ਦੌਰਾਨ ਗਲਤੀ ਸੀ" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"ਮੱਦਦ ਵੇਖਾਉਣ ਵਿੱਚ ਗਲਤੀ ਹੈ।\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "ਇਸ ਮਸ਼ੀਨ ਲਈ ਕੁਨੈਕਸ਼ਨ ਚੈੱਕ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਕੇਵਲ ਲੋਕਲ ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਹੀ ਪਹੁੰਚਯੋਗ ਹੈ।" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ਜਾਂ " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "ਹੋਰ ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਨੂੰ %s ਐਡਰੈੱਸ ਨਾਲ ਵਰਤ ਸਕਦੇ ਹਨ।" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "ਤੁਹਾਡੇ ਡੈਸਕਟਾਪ ਨੂੰ ਕੋਈ ਨਹੀਂ ਵਰਤ ਸਕਦਾ ਹੈ।" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ਡੈਸਕਟਾਪ ਸ਼ੇਅਰਿੰਗ" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "ਚੋਣ ਕਰੋ ਕਿ ਹੋਰ ਯੂਜ਼ਰ ਤੁਹਾਡੇ ਡੈਸਕਟਾਪ ਰਿਮੋਟ ਉੱਤੇ ਕਿੰਝ ਵੇਖ ਸਕਣ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ਡੈਸਕਟਾਪ ਸ਼ੇਅਰਿੰਗ ਪਸੰਦ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ਸਾਂਝ" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ਇਹਨਾਂ 'ਚੋਂ ਕੁਝ ਪਸੰਦ ਲਾਕ ਕੀਤੀਆਂ ਜਾ ਚੁੱਕੀਆਂ ਹਨ" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "ਹੋਰ ਯੂਜ਼ਰ ਨੂੰ ਆਪਣਾ ਡੈਸਕਟਾਪ ਵੇਖਣ ਦੀ ਇਜ਼ਾਜਤ ਦਿਓ(_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਸਾਂਝਾ ਕੀਤਾ ਜਾਵੇਗਾ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "ਹੋਰ ਯੂਜ਼ਰਾਂ ਨੂੰ ਆਪਣਾ ਡੈਸਕਟਾਪ ਕੰਟਰੋਲ ਕਰਨ ਦੀ ਇਜ਼ਾਜਤ ਦਿਓ(_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "ਰਿਮੋਟ ਯੂਜ਼ਰ ਤੁਹਾਡੇ ਮਾਊਂਸ ਅਤੇ ਕੀਬੋਰਡ ਨੂੰ ਕੰਟਰੋਲ ਕਰ ਸਕਦੇ ਹਨ" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "ਸੁਰੱਖਿਆ" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "ਤੁਹਾਨੂੰ ਇਸ ਮਸ਼ੀਨ ਹਰ ਵਾਰ ਵਰਤਣ ਲਈ ਪੁਸ਼ਟੀ ਕਰਨੀ ਲਾਜ਼ਮੀ(_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ਲੋੜੀਦਾ ਯੂਜ਼ਰ ਪਾਸਵਰਡ ਵੀ ਇੱਥੇ ਦਿਓ(_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "ਖੁੱਲ੍ਹੀਆਂ ਅਤੇ ਫਾਰਵਰਡ ਪੋਰਟਾਂ ਲਈ UPnP ਰਾਊਂਟਰ ਨੂੰ ਆਟੋਮੈਟਿਕ ਸੰਰਚਿਤ ਕਰੋ(_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "ਰਾਊਂਟਰ ਉੱਤੇ UPnP ਫੀਚਰ ਚਾਲੂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਖੇਤਰ ਆਈਕਾਨ ਵੇਖਾਓ" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ਹਮੇਸ਼ਾ(_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "ਸਿਰਫ਼ ਤਾਂ, ਜਦੋਂ ਕੋਈ ਕੁਨੈਕਟ ਹੋਵੇ(_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ਕਦੇ ਨਹੀਂ(_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "ਡੈਸਕਟਾਪ ਲਈ ਰਿਮੋਟ ਅਸੈਸ ਚਾਲੂ ਕਰੋ" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, RFB ਪਰੋਟੋਕਾਲ ਰਾਹੀਂ ਡੈਸਕਟਾਪ ਲਈ ਰਿਮੋਟ ਅਸੈਸ ਦਿੱਤਾ ਜਾ ਸਕੇਗਾ। " +"ਰਿਮੋਟ ਮਸ਼ੀਨਾਂ ਉੱਤੇ " +"ਯੂਜ਼ਰ ਡੈਸਕਟਾਪ ਨਾਲ VNC viewer ਦੀ ਮੱਦਦ ਨਾਲ ਕੁਨੈਕਟ ਹੋ ਸਕਦੇ ਹਨ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ਕੁਨੈਕਸ਼ਨ ਪੂਰਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਯੂਜ਼ਰ ਤੋਂ ਪੁਸ਼ਟੀ ਕਰਵਾਓ" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ ਯੂਜ਼ਰ ਨੂੰ ਤਦ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਮਿਲੇਗੀ, ਜਦ ਤੱਕ ਕਿ ਹੋਸਟ ਮਸ਼ੀਨ ਉੱਤੇ " +"ਕੁਨੈਕਸ਼ਨ ਸਵੀਕਾਰ ਨਹੀਂ " +"ਕਰਦਾ ਹੈ। ਇਹ ਖਾਸ ਤੌਰ ਤੇ ਤਾਂ ਸਵੀਕਾਰ ਹੈ, ਜੇਕਰ ਅਸੈੱਸ ਪਾਸਵਰਡ ਨਾਲ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹੈ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "ਰਿਮੋਟ ਯੂਜ਼ਰ ਕੇਵਲ ਡੈਸਕਟਾਪ ਹੀ ਵੇਖ ਸਕਦੇ ਹਨ" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"ਜੇਕਰ ਸਹੀ ਕੀਤਾ ਗਿਆ ਤਾਂ ਡੈਸਕਟਾਪ ਵਰਤ ਰਹੇ ਰਿਮੋਟ ਯੂਜ਼ਰ ਕੇਵਲ ਡੈਸਕਟਾਪ ਵੇਖ ਸਕਦੇ ਹਨ। " +"ਉਹਨਾਂ ਨੂੰ " +"ਕੀਬੋਰਡ ਜਾਂ ਮਾਊਸ ਵਰਤਣ ਦੀ ਇਜ਼ਾਜਤ ਨਹੀਂ ਹੋਵੇਗੀ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "ਸੁਣਨ ਲਈ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸ" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"ਜੇ ਸੈੱਟ ਨਾ ਕੀਤਾ ਤਾਂ ਸਰਵਰ ਸਭ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸਾਂ ਤੋਂ ਸੁਣੇਗਾ।\n" +"\n" +"ਇਹ ਸੈੱਟ ਕਰੋ, ਜੇ ਤੁਸੀਂ ਕੁਨੈਕਸ਼ਨ ਕਿਸੇ ਖਾਸ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸ ਤੋਂ ਹੀ ਕੁਨੈਕਸ਼ਨ ਮਨਜ਼ੂਰ " +"ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਜਿਵੇਂ " +"eth0, wifi0, lo, ਆਦਿ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "ਇੱਕ ਬਦਲਵੀਂ ਪੋਰਟ ਉੱਤੇ ਸੁਣੋ" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"ਜੇ ਚੁਣਿਆ ਗਿਆ ਤਾਂ ਸਰਵਰ ਡਿਫਾਲਟ ਪੋਰਟ (5900) ਦੀ ਬਜਾਏ ਹੋਰ ਪੋਰਟ ਤੋਂ ਸੁਣੇਗਾ। ਪੋਰਟ " +"'alternative-" +"port' ਕੁੰਜੀ ਦੇਣੀ ਪਵੇਗੀ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "ਬਦਲਵਾਂ ਪੋਰਟ ਨੰਬਰ" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"ਪੋਰਟ, ਜਿਸ ਰਾਹੀਂ ਸਰਵਰ ਸੁਣੇਗਾ, ਜੇ 'use-alternative-port' ਕੁੰਜੀ ਦੀ ਚੋਣ ਕੀਤੀ ਗਈ " +"ਹੈ। ਠੀਕ " +"ਮੁੱਲ 5000 ਤੋਂ 50000 ਤੱਕ ਹਨ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "ਇੰਕ੍ਰਿਪਸ਼ਨ ਲੋੜੀਦੀ ਹੈ" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"ਜੇਕਰ ਸੱਚ ਹੈ ਤਾਂ, ਡੈਸਕਟਾਪ ਵਰਤ ਰਹੇ ਰਿਮੋਟ ਯੂਜ਼ਰ ਲਈ ਇੰਕ੍ਰਿਪਸ਼ਨ ਮੱਦਦ ਚਾਲੂ ਹੋ " +"ਜਾਵੇਗੀ। ਇਸ ਦੀ ਸਲਾਹ " +"ਦਿੱਤੀ ਜਾਦੀ ਹੈ, ਤੁਹਾਨੂੰ ਇੱਕ ਕਲਾਈਟ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ, ਜੋ ਕਿ ਇੰਕ੍ਰਿਪਸ਼ਨ ਲਈ ਸਹਾਇਕ " +"ਹੋਵੇ, ਜਦੋਂ ਤੱਕ " +"ਕਿ ਆਪਸੀ ਨੈੱਟਵਰਕ ਟਰੱਸਟਡ ਨਾ ਹੋਵੇ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "ਮਨਜ਼ੂਰਸ਼ੁੱਦਾ ਪਰਮਾਣਕਿਤ ਢੰਗ" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"ਪ੍ਰਮਾਣਿਤ ਢੰਗ, ਜਿਨ੍ਹਾਂ ਨਾਲ ਰਿਮੋਟ ਯੂਜ਼ਰ ਡੈਸਕਟਾਪ ਖੋਲ੍ਹ ਸਕਦੇ ਹਨ।\n" +"\n" +"ਇਥੇ ਪ੍ਰਮਾਣਕਿਤਾ ਦੇ ਦੋ ਢੰਗ ਹਨ, \"vnc\" ਯੂਜ਼ਰ ਤੋਂ ਕੁਨੈਕਟ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਪਾਸਵਰਡ " +"ਕੋਲ ਦੀ ਪੁਸ਼ਟੀ " +"ਕਰਾਏਗਾ (ਪਾਸਵਰਡ vnc-password ਕੁੰਜੀ ਨਾਲ ਸੈੱਟ ਹੁੰਦਾ ਹੈ) ਅਤੇ \"ਕੋਈ ਨਹੀਂ (none)\" " +"ਨਾਲ ਕਿਸੇ " +"ਵੀ ਰਿਮੋਟ ਯੂਜ਼ਰ ਨੂੰ ਕੁਨੈਕਟ ਨਹੀਂ ਹੋਣ ਦੇਵੇਗਾ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" ਪਰਮਾਣਿਕਤਾ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਦਾ ਹੈ" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"ਜੇਕਰ \"vnc\" ਪਰਮਾਣਕਿਤਾ ਢੰਗ ਵਰਤਿਆ ਜਾਵੇ ਤਾਂ ਪਾਸਵਰਡ ਰਿਮੋਟ ਯੂਜ਼ਰ ਨੂੰ ਪੁੱਛਿਆ " +"ਜਾਵੇਗਾ। ਇਹ " +"ਪਾਸਵਰਡ ਇੰਕੋਡਿੰਗ base64 ਤੇ ਅਧਾਰਿਤ ਕੁੰਜੀ ਨਾਲ ਦਿੱਤਾ ਗਿਆ ਹੈ।\n" +"\n" +"'keyring' (ਜੋ ਕਿ ਢੁੱਕਵਾਂ base64 ਨਹੀਂ ਹੈ) ਦਾ ਖਾਸ ਮੁੱਲ ਹੋਣ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਪਾਸਵਰਡ " +"ਨੂੰ ਗਨੋਮ " +"ਕੀਰਿੰਗ ਵਿੱਚ ਸੰਭਾਲਿਆ ਜਾਵੇਗਾ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ਈ-ਮੇਲ ਐਡਰੈੱਸ, ਜਿਸ ਲਈ ਰਿਮੋਟ ਡੈਸਕਟਾਪ URL ਭੇਜਿਆ ਜਾਵੇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"ਇਹ ਕੁੰਜੀ ਈਮੇਲ ਐਡਰੈਸ ਤਹਿ ਕਰਦੀ ਹੈ, ਜਿਸ ਉੱਤੇ ਰਿਮੋਟ ਡੈਸਕਟਾਪ URL ਭੇਜਿਆ ਜਾਵੇ, ਜੇਕਰ " +"ਯੂਜ਼ਰ ਨੇ " +"ਡੈਸਕਟਾਪ ਸ਼ੇਅਰਿੰਗ ਪਸੰਦ ਡਾਈਲਾਗ ਉੱਤੇ URL ਨੂੰ ਦਬਾਇਆ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "ਜਦੋਂ ਆਖਰੀ ਯੂਜ਼ਰ ਡਿਸਕੁਨੈਕਟ ਹੋਵੇ ਤਾਂ ਸਕਰੀਨ ਲਾਕ ਕਰੋ" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"ਜੇ ਸਹੀਂ ਹੈ ਤਾਂ ਆਖਰੀ ਰਿਮੋਟ ਕਲਾਈਟ ਡਿਸ-ਕੁਨੈਕਟ ਕਰਨ ਦੇ ਬਾਅਦ ਸਕਰੀਨ ਨੂੰ ਲਾਕ ਕਰ ਦਿੱਤਾ " +"ਜਾਵੇਗਾ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "ਜਦੋਂ ਹਾਲਤ ਆਈਕਾਨ ਵੇਖਾਇਆ ਜਾਵੇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"ਇਹ ਕੁੰਜੀ ਹਾਲਤ ਆਈਕਾਨ ਦਾ ਰਵੱਈਆ ਕੰਟਰੋਲ ਕਰਦੀ ਹੈ। ਤਿੰਨ ਚੋਣਾਂ ਹਨ: \"always\" - " +"ਆਈਕਾਨ ਹਮੇਸਾਂ " +"ਰਹੇਗਾ; \"client\" - ਤੁਸੀਂ ਆਈਕਾਨ ਕੇਵਲ ਤਾਂ ਵੇਖੋਗੇ, ਜੇ ਕੋਈ ਜੁੜਿਆ ਹੋਇਆ ਹੋਵੇਗਾ (ਇਹ " +"ਡਿਫਾਲਟ ਹੈ); " +"\"never\" - ਆਈਕਾਨ ਕਦੇ ਨਾ ਵੇਖੋ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "ਕੀ ਯੂਜ਼ਰ ਕੁਨੈਕਟ ਹੋਣ ਸਮੇਂ ਬੈਕਗਰਾਊਂਡ ਆਯੋਗ ਕਰਨੀ ਹੈ" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"ਜੇ ਸਹੀਂ ਹੋਇਆ ਤਾਂ ਯੂਜ਼ਰ ਕੁਨੈਕਟ ਹੋਣ ਸਮੇਂ ਬੈਕਗਰਾਊਂਡ ਆਯੋਗ ਹੁੰਦੀ ਹੈ ਅਤੇ ਇਸ ਨੂੰ ਇੱਕ " +"ਰੰਗ ਨਾਲ " +"ਬਦਲਿਆ ਜਾਵੇਗਾ, ਜੇ ਯੂਜ਼ਰ ਠੀਕ ਤਰ੍ਹਾਂ ਕੁਨੈਕਟ ਹੋ ਗਿਆ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"ਕੀ UPnP ਰਾਊਟਰ ਨੂੰ ਵਿੱਚ ਪੋਰਟ ਅੱਗੇ ਭੇਜਣ ਅਤੇ ਪੋਰਟਾਂ ਖੋਲ੍ਹਣ ਲਈ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"ਜੇ ਸਹੀਂ ਕੀਤਾ ਤਾਂ UPnP-ਅਨੁਕੂਲ ਰਾਊਟਰ ਨੂੰ ਵਿੱਚ ਪੋਰਟ ਅੱਗੇ ਭੇਜਣ ਅਤੇ ਪੋਰਟਾਂ ਖੋਲ੍ਹਣ " +"ਲਈ ਵੀਨੋ ਵਲੋਂ " +"ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "ਕੀ ਅਸੀਂ X.org ਦੀ ਇਕਸਟੈਨਸ਼ਨ XDamage ਨੂੰ ਆਯੋਗ ਕਰ ਦੇਈਏ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"ਜੇ ਸਹੀਂ ਹੋਇਆ ਤਾਂ X.org ਦੀ XDamage ਇਕਸਟੈਨਸ਼ਨ ਨੂੰ ਨਾ ਵਰਤੋਂ। ਇਸ ਇਕਸਟੈਨਸ਼ਨ ਕੁਝ " +"ਵੀਡਿਓ " +"ਡਰਾਇਵਰਾਂ ਨਾਲ ਠੀਕ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ, ਜਦੋਂ 3D ਪਰਭਾਵ ਵਰਤੇ ਜਾਣ। ਇਸ ਨੂੰ ਆਯੋਗ ਕਰਨ " +"ਨਾਲ ਵੀਨੋ " +"ਇਹਨਾਂ ਵਾਤਾਵਰਨ ਵਿੱਚ ਕਮੀਂ ਵਜੋਂ ਹੌਲੀ ਕੰਮ ਕਰਨ ਲੱਗੇਗਾ।" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "ਕੁਨੈਕਟ ਕਰਨ ਸਮੇਂ ਸੂਚਨਾ" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"ਜੇ ਸਹੀਂ ਹੈ ਤਾਂ ਸੂਚਨਾ ਵੇਖਾਈ ਜਾਵੇਗੀ, ਜਦੋਂ ਯੂਜ਼ਰ ਸਿਸਟਮ ਨਾਲ ਕੁਨੈਕਟ ਹੁੰਦਾ ਹੈ।" + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਸਾਂਝ ਪਾਸਵਰਪ" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ਫਾਇਲ ਢੁੱਕਵੀਂ .desktop ਫਾਇਲ ਨਹੀਂ ਹੈ" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "'%s' ਉੱਤੇ ਬੇਪਛਾਣ ਡੈਸਕਟਾਪ ਫਾਇਲ ਵਰਜਨ " + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ਐਪਲੀਕੇਸ਼ਨ ਕਮਾਂਡ ਲਾਈਨ ਉੱਤੇ ਡੌਕੂਮੈਂਟ ਮਨਜ਼ੂਰ ਨਹੀਂ ਕਰਦੀ ਹੈ" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ਬੇਪਛਾਣ ਲਾਂਚ ਚੋਣ: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ਡੌਕੂਮੈਂਟ URIs 'Type=Link' ਡੈਸਕਟਾਪ ਐਂਟਰੀ ਲਈ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕੀ" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ਕੋਈ ਚਲਾਉਣਯੋਗ ਆਈਟਮ ਨਹੀਂ" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ਸ਼ੈਸ਼ਨ ਮੈਨੇਜਰ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਆਯੋਗ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "ਸੰਭਾਲੀ ਸੰਰਚਨਾ ਰੱਖਣ ਵਾਲੀ ਫਾਇਲ ਦਿਓ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ਫਾਇਲ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧ ID ਦਿਓ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧ ਚੋਣਾਂ:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "ਸ਼ੈਸ਼ਨ ਪਰਬੰਧ ਚੋਣਾਂ ਵੇਖੋ" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"ਤੁਹਾਡਾ XServer XTest ਐਕਸਟੇਸ਼ਨ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ - ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਅਸੈੱਸ ਸਿਰਫ਼ ਵੇਖਣ " +"ਲਈ " +"ਹੋਵੇਗੀ।\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "'ਮੇਰਾ ਡੈਸਕਟਾਪ ਸਾਂਝਾ ਕਰੋ' ਫੀਚਰ ਲਈ ਟਿਊਬ ਮੋਡ ਵਿੱਚ ਸ਼ੁਰੂ" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- ਗਨੋਮ ਲਈ VNC ਸਰਵਰ" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "ਉਪਲੱਬਧ ਕਮਾਂਡ ਲਾਈਨ ਦੀ ਪੂਰੀ ਲਿਸਟ ਵੇਖਣ ਵਾਸਤੇ 'vino-server --help ਚਲਾਓ" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "ਗਨੋਮ ਡੈਸਕਟਾਪ ਸ਼ੇਅਰਿੰਗ" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%2$s ਉੱਤੇ %1$s ਦਾ ਰਿਮੋਟ ਡੈਸਕਟਾਪ" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "ਸਿਗਨਲ %d ਮਿਲਿਆ, ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "ਸਕਰੀਨ" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ਸਕਰੀਨ, ਜੋ ਕਿ ਪਰਾਉਟ ਵੇਖਾਏਗਾ" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify ਸ਼ੁਰੂ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' ਕੰਪਿਊਟਰ ਯੂਜ਼ਰ ਤੁਹਾਡੇ ਡੈਸਕਟਾਪ ਨੂੰ ਵੇਖਣ ਜਾਂ ਕੰਟਰੋਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ ਕਰ ਰਿਹਾ ਹੈ।" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "ਇੱਕ ਹੋਰ ਯੂਜ਼ਰ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖਣ ਦੀ ਕੋਸ਼ਿਸ ਕਰ ਰਿਹਾ ਹੈ।" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "ਇਨਕਾਰ" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "ਮਨਜ਼ੂਰ" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "ਬੱਸ ਨਾਲ ਕੁਨੈਕਸ਼ਨ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "ਗਨੋਮ ਡੈਸਕਟਾਪ ਸ਼ੇਅਰਿੰਗ ਸਰਵਰ" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "ਵੀਐਨਸੀ;ਸਾਂਝ;ਰਿਮੋਟ;vnc;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ਡੈਸਕਟਾਪ ਸਾਂਝ ਯੋਗ ਹੈ" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "ਇੱਕ ਵਿਅਕਤੀ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖ ਰਿਹਾ ਹੈ" +msgstr[1] "%d ਵਿਅਕਤੀ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖ ਰਹੇ ਹਨ" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "ਪਸੰਦ ਵੇਖਾਉਣ ਦੌਰਾਨ ਗਲਤੀ" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ਮੱਦਦ ਵੇਖਾਉਣ ਵਿੱਚ ਗਲਤੀ ਹੈ" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU ਜਰਨਲ ਪਬਲਿਕ ਲਾਈਸੈਂਸ ਵਰਜਨ 2 ਅਧੀਨ ਜਾਰੀ ਕੀਤਾ ਗਿਆ\n" +"\n" +"ਵੀਨੋ ਇੱਕ ਮੁਫਤ ਸਾਫਟਵੇਅਰ ਹੈ, ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਗਨੂ ਜਰਨਲ ਪਬਲਿਕ\n" +"ਲਾਈਸੈਂਸ,ਜਿਸ ਨੂੰ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਊਨਡੇਸ਼ਨ ਨੇ ਤਿਆਰ ਕੀਤਾ ਹੈ,\n" +"ਦੇ ਵਰਜਨ 2 ਜਾਂ ਨਵੇਂ ਦੀਆਂ ਸ਼ਰਤਾਂ (ਉਹ ਤੁਹਾਡੀ ਆਪਣੀ ਮਰਜ਼ੀ ਹੈ)\n" +"ਅਧੀਨ ਵੰਡ ਅਤੇ/ਜਾਂ ਸੋਧ ਸਕਦੇ ਹੋ।\n" +"\n" +"ਵੀਨੋ ਨੂੰ ਇਹ ਮੰਨ ਕੇ ਵੰਡਿਆ ਜਾ ਰਿਹਾ ਹੈ ਕਿ ਇਹ ਫਾਇਦੇਮੰਦ ਰਹੇਗਾ,\n" +"ਪਰ ਇਸ ਦੀ ਕੋਈ ਵਾਰੰਟੀ ਨਹੀਂ ਲਈ ਜਾ ਰਹੀ ਹੈ, ਕਿਸੇ ਖਾਸ ਕੰਮ ਲਈ ਅਨੁਕੂਲ ਹੋਣ ਜਾਂ\n" +"ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਦੀ ਵੀ ਕੋਈ ਗਾਰੰਟੀ ਨਹੀਂ ਹੈ। ਹੋਰ ਵੇਰਵੇ ਲਈ ਗਨੂ ਜਰਨਲ\n" +"ਪਬਲਿਕ ਲਾਈਸੈਂਸ ਨੂੰ ਪੜ੍ਹੋ।\n" +"\n" +"ਵੀਨੋ ਨਾਲ ਤੁਸੀਂ ਗਨੂ ਜਰਨਲ ਪਬਲਿਕ ਲਾਈਸੈਂਸ ਦੀ ਨਕਲ ਪ੍ਰਾਪਤ ਕਰੋਗੇ,\n" +"ਜੇਕਰ ਤੁਹਾਨੂੰ ਨਹੀਂ ਮਿਲੀ ਹੈ ਤਾਂ ਫਰੀ ਸਾਫਟਵੇਅਰ ਫਾਊਨਡੇਸ਼ਨ, 51 ਫਰਾਕਲਿੰਨ\n" +"ਸਟਰੀਟ, ਪੰਜਵੀਂ ਮੰਜ਼ਲ,ਬੋਸਟਨ, ਐਮ ਏ 02110-1301, ਅਮਰੀਕਾ ਨੂੰ ਲਿਖੋ।\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"A S Alam\n" +"Punjabi OpenSource Team\n" +"http://www.satluj.com/" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "ਆਪਣਾ ਡੈਸਕਟਾਪ ਹੋਰ ਯੂਜ਼ਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "ਕੀ ਤੁਸੀਂ '%s' ਨਾਲੋਂ ਡਿਸ-ਕੁਨੈਕਟ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' ਤੋਂ ਰਿਮੋਟ ਯੂਜ਼ਰ ਨੂੰ ਡਿਸ-ਕੁਨੈਕਟ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "ਕੀ ਤੁਸੀਂ ਸਭ ਕਲਾਈਟਾਂ ਨੂੰ ਡਿਸ-ਕੁਨੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "ਸਭ ਰਿਮੋਟ ਯੂਜ਼ਰ ਡਿਸ-ਕੁਨੈਕਟ ਕੀਤੇ ਜਾਣਗੇ। ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "ਮੇਰੀ ਪਸੰਦ(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "ਸਭ ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ਡਿਸ-ਕੁਨੈਕਟ ਕਰੋ" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ਮੱਦਦ(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "ਇਸ ਬਾਰੇ(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "ਇੱਕ ਹੋਰ ਯੂਜ਼ਰ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖ ਰਿਹਾ ਹੈ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "ਇੱਕ ਹੋਰ ਯੂਜ਼ਰ '%s' ਕੰਪਿਊਟਰ ਰਾਹੀਂ ਰਿਮੋਟ ਤੋਂ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖ ਰਿਹਾ ਹੈ।" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "ਹੋਰ ਯੂਜ਼ਰ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਕੰਟਰੋਲ ਕਰ ਰਿਹਾ ਹੈ" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"ਇੱਕ ਯੂਜ਼ਰ ਕੰਪਿਊਟਰ '%s' ਰਾਹੀਂ ਰਿਮੋਟ ਤੋਂ ਤੁਹਾਡੇ ਡੈਸਕਟਾਪ ਰਾਹੀਂ ਕੰਟਰੋਲ ਕਰ ਰਿਹਾ ਹੈ।" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "ਨੋਟੀਫਿਕੇਸ਼ਨ ਬੁਲਬੁਲਾ ਵੇਖਾਉਣ ਦੌਰਾਨ ਗਲਤੀ ਹੈ: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "ਰਿਮੋਟ ਯੂਜ਼ਰ '%s' ਨੂੰ ਡਿਸ-ਕੁਨੈਕਟ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "ਮੇਰੀ ਡੈਸਕਟਾਪ ਜਾਣਕਾਰੀ ਸਾਂਝੀ ਕਰੋ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' ਨੇ ਡੈਸਕਟਾਪ ਸਾਂਝਾ ਕਰਨਾ ਦਾ ਸੱਦਾ ਠੁਕਰਾਇਆ।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' ਡਿਸ-ਕੁਨੈਕਟ ਹੈ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' ਵਲੋਂ ਰਿਮੋਟ ਤੋਂ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਕੰਟਰੋਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "ਸਕਰੀਨ ਉੱਤੇ ਕੁਨੈਕਟ ਹੋਣ ਲਈ '%s' ਦੀ ਉਡੀਕ ਜਾਰੀ ਹੈ।" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "ਮਨਜ਼ੂਰ(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "ਇਨਕਾਰ(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ਇੱਕ ਗਲਤੀ ਆਈ:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "ਰੱਦ ਕੀਤਾ" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "ਗਲਤੀ: ਪਾਸਵਰਡ ਦੀ ਵੱਧੋ-ਵੱਧ ਲੰਬਾਈ %d ਅੱਖਰ ਹੈ। ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ ਜੀ।" +msgstr[1] "ਗਲਤੀ: ਪਾਸਵਰਡ ਦੀ ਵੱਧੋ-ਵੱਧ ਲੰਬਾਈ %d ਅੱਖਰ ਹੈ। ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ ਜੀ।" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "ਵੀਨੋ ਪਾਸਵਰਡ ਬਦਲਿਆ ਜਾ ਰਿਹਾ ਹੈ।\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "ਨਵਾਂ ਵੀਨੋ ਪਾਸਵਰਡ ਦਿਓ:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "ਨਵਾਂ ਵੀਨੋ ਪਾਸਵਰਡ ਮੁੜ-ਲਿਖੋ:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "ਵੀਨੋ-ਪਾਸਵਰਡ: ਪਾਸਵਰਡ ਠੀਕ ਤਰ੍ਹਾਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ।\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "ਅਫਸੋਸ, ਪਾਸਵਰਡ ਮਿਲਦਾ ਨਹੀਂ ਹੈ।\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "ਵੀਨੋ-ਪਾਸਵਰਡ: ਪਾਸਵਰਡ ਬਦਲਿਆ ਨਹੀਂ ਗਿਆ।\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "ਵੀਨੋ ਵਰਜਨ ਵੇਖੋ" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- ਵੀਨੋ ਪਾਸਵਰਡ ਅੱਪਡੇਟ" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "ਉਪਲੱਬਧ ਕਮਾਂਡ ਲਾਈਨ ਦੀ ਪੂਰੀ ਲਿਸਟ ਵੇਖਣ ਵਾਸਤੇ 'vino-passwd --help ਚਲਾਓ" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "ਵੀਨੋ ਵਰਜਨ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ਗਲਤੀ: ਤੁਹਾਨੂੰ ਵੀਨੋ ਪਾਸਵਰਡ ਬਦਲਣ ਲਈ ਲੋੜੀਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ।\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "ਜੇ ਸਹੀਂ ਹੈ ਤਾਂ ਅਸੀਂ ਰਾਊਂਟਰ ਵਿੱਚ ਵੀਨੋ ਵਲੋਂ ਅੱਗੇ ਭੇਜਣ ਪੋਰਟ ਵਰਤਣ ਲਈ ਆਟੋਮੈਟਿਕ UPNP ਪਰੋਟੋਕਾਲ " +#~ "ਵਰਤਾਂਗੇ।" + +#~ msgid "Question" +#~ msgstr "ਸਵਾਲ" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "ਹੋਰ ਕੰਪਿਊਟਰ ਤੋਂ ਰਿਮੋਟਲੀ ਇੱਕ ਯੂਜ਼ਰ ਤੁਹਾਡਾ ਡੈਸਕਟਾਪ ਵੇਖ ਜਾਂ ਕੰਟਰੋਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ ਕਰ ਰਿਹਾ ਹੈ।" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "ਕੀ ਤੁਸੀ ਉਹਨਾਂ ਨੂੰ ਏਦਾਂ ਕਰਨ ਦਾ ਇਜ਼ਾਜਤ ਦਿੰਦੇ ਹੋ?" + +#~ msgid "Remote Desktop" +#~ msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ" + +#~ msgid "Enable remote desktop access" +#~ msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਅਸੈੱਸ ਯੋਗ ਹੈ" + +#~ msgid "Al_ways display an icon" +#~ msgstr "ਆਈਕਾਨ ਹਮੇਸ਼ਾਂ ਵੇਖੋ(_w)" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "ਨੈੱਟਵਰਕ ਤੋਂ ਆਟੋਮੈਟਿਕ ਹੀ ਕੁਨੈਕਸ਼ਨ ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਸੰਰਚਨਾ(_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "ਆਈਕਾਨ ਕਦੇ ਨਾ ਵੇਖਾਓ(_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "ਜਦੋਂ ਕੋਈ ਕੁਨੈਕਟ ਹੋਵੇ ਤਾਂ ਹੀ ਆਈਕਾਨ ਵੇਖਾਓ(_O)" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "ਗਨੋਮ ਰਿਮੋਟ ਡੈਸਕਟਾਪ" + +#~ msgid "_Send address by email" +#~ msgstr "ਈਮੇਲ ਰਾਹੀਂ ਐਡਰੈੱਸ ਭੇਜੋ(_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "ਐਡਰੈੱਸ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਕਰੋ(_C)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "ਵੱਧੋ-ਵੱਧ ਸਾਈਜ਼: ੮ ਅੱਖਰ" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "ਤੁਹਾਨੂੰ ਹਰੇਕ ਆ ਰਹੇ ਕੁਨੈਕਸ਼ਨ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨ ਜਾਂ ਰੱਦ ਕਰਨ ਲਈ ਪੁੱਛਿਆ ਜਾਵੇਗਾ" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "ਰਿਮੋਟ ਡੈਸਕਟਾਪ ਸਰਵਰ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ, ਬੰਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "GConf ਨਾਲ ਸੰਚਾਰ ਦੌਰਾਨ ਗਲਤੀ ਹੈ। ਕੀ ਤੁਸੀਂ ਗਨੋਮ ਸ਼ੈਸ਼ਨ ਵਿੱਚ ਲਾਗਇਨ ਕੀਤਾ ਹੈ?" + +#~ msgid "Error message:" +#~ msgstr "ਗਲਤੀ ਸੁਨੇਹਾ:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "ਮੈਮੋਰੀ ਤੋਂ ਬਾਹਰ ਹੈਡਲਿੰਗ '%s' ਸੁਨੇਹਾ" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "ਮੈਮੋਰੀ ਤੋਂ ਬਾਹਰ ਰਜਿਸਟਰਿੰਗ ਇਕਾਈ ਮਾਰਗ '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "D-Bus ਨਾਂ '%s' ਲੈਣ ਲਈ ਫੇਲ੍ਹ\n" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..1678b14 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,598 @@ +# Polish translation for vino. +# Copyright © 2004-2016 the vino authors. +# This file is distributed under the same license as the vino package. +# Artur Flinta <aflinta@at.kernel.pl>, 2004-2007. +# Tomasz Dominikowski <dominikowski@gmail.com>, 2007-2009. +# Piotr Drąg <piotrdrag@gmail.com>, 2010-2016. +# Aviary.pl <community-poland@mozilla.org>, 2007-2016. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-10 05:17+0200\n" +"PO-Revision-Date: 2016-09-10 05:18+0200\n" +"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" +"Language-Team: Polish <community-poland@mozilla.org>\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Zapytanie użytkownika przed nawiązaniem połączenia" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Jeśli jest ustawione na „true”, to zdalni użytkownicy nie otrzymają " +"pozwolenia na dostęp do pulpitu bez akceptacji użytkownika na lokalnym " +"komputerze. Zalecane szczególnie przy dostępie niezabezpieczonym hasłem." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Zezwolenie zdalnym użytkownikom tylko na wyświetlanie pulpitu" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Jeśli jest ustawione na „true”, to zdalni użytkownicy będą mogli wyświetlać " +"pulpit, bez możliwości użycia myszy lub klawiatury." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Interfejs sieciowy do nasłuchiwania" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Jeśli nie jest ustawione, to serwer będzie nasłuchiwał na wszystkich " +"interfejsach sieciowych.\n" +"\n" +"Można to ustawić, jeśli wymagane jest akceptowane połączenie wyłącznie " +"z konkretnych interfejsów sieciowych, np.: eth0, wifi0, lo itd." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Nasłuch na alternatywnym porcie" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Jeśli jest ustawione na „true”, to serwer będzie nasłuchiwał na porcie innym " +"od domyślnego (5900). Port musi zostać podany w kluczu „alternative-port”." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternatywny numer portu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Numer portu, na którym serwer będzie nasłuchiwał w przypadku ustawienia " +"klucza „use-alternative-port”. Dopuszczalnymi wartościami są liczby " +"z przedziału od 5000 do 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Wymaganie szyfrowania" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Jeśli jest ustawione na „true”, to zdalni użytkownicy będą musieli mieć " +"obsługę szyfrowania. Używanie programów klientów z szyfrowaniem jest mocno " +"zalecane, chyba że pośrednicząca sieć jest zaufana." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Dozwolone metody uwierzytelniania" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista metod uwierzytelniania, za pomocą których zdalni użytkownicy mogą mieć " +"dostęp do pulpitu.\n" +"\n" +"Są dwie możliwe metody upoważniania; „vnc” powoduje zapytanie przed " +"połączeniem zdalnego użytkownika o hasło (hasło jest określone w kluczu „vnc-" +"password”), oraz „none” (brak), która pozwala dowolnemu zdalnemu " +"użytkownikowi na dostęp." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Hasło wymagane do uwierzytelnienia „vnc”" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Hasło, o które będzie zapytany zdalny użytkownik przy metodzie upoważnienia " +"„vnc”. Hasło określone w tym kluczu jest zakodowane metodą base64.\n" +"\n" +"Specjalna wartość „keyring” (która nie jest prawidłowym kodowaniem base64) " +"oznacza, że hasło jest przechowywane w bazie kluczy środowiska GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adres e-mail, na który powinien być wysłany adres URL zdalnego pulpitu" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ten klucz określa adres e-mail, na który powinien zostać wysłany adres URL " +"zdalnego pulpitu. Adres będzie wysłany po kliknięciu adresu URL w oknie " +"preferencji udostępniania pulpitu." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Blokowanie ekranu po rozłączeniu ostatniego użytkownika" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Jeśli jest ustawione na „true”, to ekran zostanie zablokowany po rozłączeniu " +"ostatniego zdalnego klienta." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Kiedy ikona stanu ma być wyświetlana" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ten klucz kontroluje zachowanie ikony stanu. Istnieją trzy opcje: „always” - " +"ikona zawsze jest wyświetlana; „client” - wyświetlana jest tylko, gdy ktoś " +"jest podłączony (to domyślne zachowanie); „never” - ikona nigdy nie będzie " +"wyświetlana." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Określa, czy wyłączać tło pulpitu, kiedy użytkownik jest połączony" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Jeśli jest ustawione na „true”, to wyłącza tło pulpitu i zastępuje je " +"pojedynczym kolorem po pomyślnym połączeniu użytkownika." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Określa, czy router UPnP powinien być używany do przekierowania i otwierania " +"portów" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Jeśli jest ustawione na „true”, to żąda przekierowania portów i otwarcia " +"portu używanego przez program Vino od routera z funkcją UPnP." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Określa, czy rozszerzenie XDamage systemu X.org ma zostać wyłączone" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Jeśli jest ustawione na „true”, to rozszerzenie XDamage systemu X.org nie " +"będzie używane. To rozszerzenie nie działa poprawnie z niektórym " +"sterownikami obrazu, gdy używane są efekty 3D. Wyłączenie tego rozszerzenia " +"umożliwi działanie programu Vino w takich środowiskach z wolniejszym " +"wyświetlaniem jako efektem ubocznym." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Powiadamianie o połączeniu" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Jeśli jest ustawione na „true”, to wyświetla powiadomienie po połączeniu " +"użytkownika z systemem." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Nieprawidłowy plik .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nierozpoznana wersja pliku .desktop „%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Uruchamianie „%s”" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program nie przyjmuje dokumentów w wierszu poleceń" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nierozpoznana opcja uruchamiania: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nie można przekazać adresu URI dokumentu do wpisu .desktop „Type=Link”" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nie można uruchomić elementu" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Rozłącza połączenie z menedżerem sesji" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Określa plik zawierający zapisaną konfigurację" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "PLIK" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Określa identyfikator zarządzania sesją" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Identyfikator" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opcje zarządzania sesją:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Wyświetla opcje zarządzania sesją" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Serwer X nie obsługuje rozszerzenia XTest — dostęp zdalnego pulpitu będzie " +"ograniczony tylko do wyświetlania\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Uruchamia w trybie tuby dla funkcji „Udostępnianie pulpitu”" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "— serwer VNC dla środowiska GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Wykonanie polecenia „vino-server --help” wyświetli pełną listę dostępnych " +"opcji w wierszu poleceń" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Udostępnianie pulpitu GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Zdalny pulpit użytkownika %s na %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Otrzymano sygnał %d, kończenie działania." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Ekran, na którym zostanie wyświetlone pytanie" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:604 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Błąd podczas inicjowania biblioteki libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Użytkownik komputera „%s” próbuje zdalnie wyświetlić lub kontrolować pulpit." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Inny użytkownik próbuje wyświetlić pulpit użytkownika." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Odmów" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Zaakceptuj" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Nie można otworzyć połączenia do magistrali: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Udostępnianie pulpitu" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Serwer udostępniania pulpitu dla środowiska GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;udostępnianie;współdzielenie;zdalnie;zdalne;" + +#: ../server/vino-status-icon.c:103 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Jedna osoba wyświetla pulpit" +msgstr[1] "%d osoby wyświetlają pulpit" +msgstr[2] "%d osób wyświetla pulpit" + +#: ../server/vino-status-icon.c:112 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Udostępnianie pulpitu jest włączone" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-icon.c:214 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Wystąpił błąd podczas wyświetlania preferencji" + +#: ../server/vino-status-icon.c:236 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Wystąpił błąd podczas wyświetlania pomocy" + +#: ../server/vino-status-icon.c:269 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licencjonowane na zasadach GNU General Public License w wersji 2\n" +"\n" +"Program Vino jest wolnym oprogramowaniem; można go rozprowadzać\n" +"dalej i/lub modyfikować na warunkach Powszechnej Licencji\n" +"Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania\n" +"(Free Software Foundation) — według wersji drugiej tej Licencji\n" +"lub którejś z późniejszych wersji.\n" +"\n" +"Program Vino rozpowszechniany jest z nadzieją, iż będzie on\n" +" użyteczny — jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej\n" +"gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH\n" +"ZASTOSOWAŃ. W celu uzyskania bliższych informacji należy zapoznać\n" +"się z Powszechną Licencją Publiczną GNU.\n" +"\n" +"Z pewnością wraz z niniejszym programem dostarczono także\n" +"egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public\n" +"License); jeśli nie — proszę napisać do Free Software Foundation,\n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:284 +msgid "translator-credits" +msgstr "" +"Artur Flinta <aflinta@at.kernel.pl>, 2004-2007\n" +"Tomasz Dominikowski <dominikowski@gmail.com>, 2007-2009\n" +"Piotr Drąg <piotrdrag@gmail.com>, 2010-2016\n" +"Aviary.pl <community-poland@mozilla.org>, 2007-2016" + +#: ../server/vino-status-icon.c:290 +msgid "Share your desktop with other users" +msgstr "Udostępnianie pulpitu innym użytkownikom" + +#: ../server/vino-status-icon.c:357 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Na pewno rozłączyć „%s”?" + +#: ../server/vino-status-icon.c:360 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Zdalny użytkownik z „%s” zostanie rozłączny. Kontynuować?" + +#: ../server/vino-status-icon.c:366 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Na pewno rozłączyć wszystkich klientów?" + +#: ../server/vino-status-icon.c:368 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Wszyscy zdalni klienci zostaną rozłączeni. Kontynuować?" + +#: ../server/vino-status-icon.c:380 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Rozłącz" + +#: ../server/vino-status-icon.c:406 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferencje" + +#: ../server/vino-status-icon.c:421 +msgid "Disconnect all" +msgstr "Rozłącz wszystkich" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:445 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Rozłącz %s" + +#: ../server/vino-status-icon.c:466 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "Pomo_c" + +#: ../server/vino-status-icon.c:474 +msgid "_About" +msgstr "_O programie" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:625 +msgid "Another user is viewing your desktop" +msgstr "Inny użytkownik wyświetla pulpit" + +#: ../server/vino-status-icon.c:627 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Użytkownik komputera „%s” wyświetla zdalnie pulpit." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:633 +msgid "Another user is controlling your desktop" +msgstr "Inny użytkownik kontroluje pulpit" + +#: ../server/vino-status-icon.c:635 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Użytkownik komputera „%s” zdalnie kontroluje pulpit." + +#: ../server/vino-status-icon.c:657 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Błąd podczas wyświetlania komunikatu powiadamiania: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Zdalny użytkownik „%s” zostanie rozłączny. Kontynuować?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Udostępnianie informacji o pulpicie innym użytkownikom" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "Użytkownik „%s” odrzucił zaproszenie do udostępniania pulpitu." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Użytkownik „%s” został rozłączony" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Użytkownik „%s” zdalnie kontroluje pulpit." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Oczekiwanie na użytkownika „%s”, aby ustanowił połączenie z ekranem." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Zezwól" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Odmów" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Wystąpił błąd:" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..be5a7dc --- /dev/null +++ b/po/pt.po @@ -0,0 +1,1011 @@ +# vino's Portuguese translation. +# Copyright © 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012, 2013 vino +# This file is distributed under the same license as the vino packge. +# +# Duarte Loreto <happyguy_pt@hotmail.com>, 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012, 2013. , 2015. +# Sérgio Cardeira <cardeira.sergio@gmail.com>, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: 3.8\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2016-02-21 15:12+0000\n" +"PO-Revision-Date: 2016-02-22 01:33-0100\n" +"Last-Translator: Sérgio Cardeira <cardeira.sergio@gmail.com>\n" +"Language-Team: Português <gnome_pt@yahoogroups.com>\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Questionar o utilizador antes de completar uma ligação" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Se verdadeiro, a utilizadores remotos que acedam à área de trabalho não é " +"concedido acesso até que o utilizador na máquina servidor aprove a ligação. " +"Recomendado especialmente quando o acesso não é protegido por senha." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir que os utilizadores remotos só vejam a área de trabalho" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se verdadeiro, utilizadores remotos que acedam à área de trabalho só poderão " +"ver. Não poderão utilizar o teclado ou rato." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Ambiente de rede onde ouvir" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se não estiver definida, o servidor irá ouvir em todos os ambientes de " +"rede.\n" +"\n" +"Defina-a caso deseje aceitar ligações só de alguns ambientes de rede " +"específicos. Por exemplo, eth0, wifi0, lo ou outro." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Ouvir numa porta alternativa" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se verdadeiro, o servidor irá ouvir noutra porta, em vez da predefinida " +"(5900). A porta tem de ser especificada na chave 'alternative-port'." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Número de porta alternativa" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"A porta onde o servidor irá ouvir se a chave 'use-alternative-port' estiver " +"definida como verdadeira. Valores válidos estão no intervalo de 5000 a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Requer encriptação" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se verdadeiro, é obrigatório que os utilizadores remotos que acedam à área " +"de trabalho suportem encriptação. É altamente recomendado que utilize um " +"cliente que suporte encriptação exceto se a rede que utiliza for de " +"confiança." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Métodos de autenticação permitidos" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista os métodos de autenticação que os utilizadores remotos poderão " +"utilizar para aceder à área de trabalho.\n" +"\n" +"Existem dois métodos de autenticação possíveis; \"vnc\" pede uma senha ao " +"utilizador remoto (a senha é especificada pela chave vnc-password) antes " +"deste se ligar e \"none\" permite que qualquer utilizador remoto se ligue." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Senha requerida para a autenticação \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"A senha que será pedida ao utilizador se for utilizado o método de " +"autenticação \"vnc\". A senha especificada pela chave é codificada em " +"base64.\n" +"\n" +"O valor especial de 'keyring' (que não é base64 válido) significa que a " +"senha é armazenada no chaveiro do GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Endereço de email para o qual deverá ser enviado o URL de área de trabalho " +"remota" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Esta chave especifica o endereço de email para o qual deverá ser enviado o " +"URL de área de trabalho remota se o utilizador clicar no URL do diálogo de " +"preferências da Partilha de área de trabalho." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Bloquear o ecrã após o último utilizador se desligar" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se verdadeiro, o ecrã será bloqueado após o último cliente remoto se " +"desligar." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Quando deverá o ícone de estado ser visível" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Esta chave controla o comportamento o ícone de estado. Existem três opções: " +"\"always\" - o ícone estará sempre visível; \"client\" - o ícone só será " +"visível quando alguém estiver ligado (este é o comportamento predefinido); " +"\"never\" - o ícone nunca será visível." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Se desativar ou não o fundo da área de trabalho quando um utilizador estiver " +"ligado" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Quando verdadeiro, desativar o fundo da área de trabalho e substituir por " +"uma única cor sólida quando um utilizador iniciar uma sessão com sucesso." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Se deverá ou não ser utilizado um router UPnP para reencaminhar e abrir " +"portas" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se verdadeiro, pedir que um router com capacidades UPnP reencaminhe e abra a " +"porta utilizado pelo Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Se deverá ser ou não desativada a extensão XDamage do X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se verdadeiro, não utilizar a extensão XDamage do X.org. Esta extensão não " +"funciona adequadamente com alguns controladores de vídeo ao utilizar efeitos " +"3D. Desativá-la fará o Vino funcionar nestes ambientes com o efeito " +"colateral de um desenho mais lento." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Notificar ao ligar" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se verdadeiro, mostrar uma notificação quando um utilizador se ligar ao " +"sistema." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O ficheiro não é um .desktop válido" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Versão de ficheiro desktop \"%s\" desconhecida" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "A iniciar %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "A aplicação não aceita documentos na linha de comando" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opção de arranque desconhecida: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossível passar URIs de documentos para uma entrada de .desktop 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Não é um item iniciável" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desativar a ligação ao gestor de sessão" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especifique o ficheiro que contém a configuração gravada" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FICHEIRO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especifique o ID de gestão de sessão" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opções de gestão de sessão:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostrar opções de gestão de sessão" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"O XServer não suporta a extensão XTest - acesso remoto à sua área de " +"trabalho será só para ver\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Iniciar em modo tubo, para a funcionalidade ‘Partilhar a minha área de " +"trabalho’" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC para o GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Execute 'vino-server --help' para consultar uma lista completa de todas as " +"opções de linha de comando" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "Partilha da área de trabalho do GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Área de trabalho remota de %s em %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Sinal %d recebido, a terminar." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ecrã" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "O ecrã em que mostrar a questão" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:603 +#: ../server/vino-status-tube-icon.c:396 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Erro ao inicializar libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Um utilizador no computador \"%s\" está a tentar remotamente ver ou " +"controlar a sua área de trabalho." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "Outro utilizador está a tentar ver a sua área de trabalho." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Recusar" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Aceitar" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Falha ao abrir uma ligação ao bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Partilha da área de trabalho" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de partilha da área de trabalho do GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;partilhar;remoto;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "A partilha da área de trabalho está ativa" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Está um utilizador a ver a sua área de trabalho" +msgstr[1] "Estão %d utilizadores a ver a sua área de trabalho" + +#: ../server/vino-status-icon.c:207 ../server/vino-status-icon.c:213 +#: ../server/vino-status-tube-icon.c:173 ../server/vino-status-tube-icon.c:179 +msgid "Error displaying preferences" +msgstr "Erro ao mostrar as preferências" + +#: ../server/vino-status-icon.c:235 ../server/vino-status-tube-icon.c:199 +msgid "Error displaying help" +msgstr "Erro ao mostrar a ajuda" + +#: ../server/vino-status-icon.c:268 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licenciado sob a Licença Pública Genérica GNU Versão 2\n" +"\n" +"Vino é uma aplicação livre; pode redistribuí-la e/ou alterá-la sob os " +"termos\n" +"da Licença Pública Geral GNU tal como publicada pela Free Software\n" +"Foundation; ou a versão 2 da Licença ou, (à sua discrição) qualquer versão\n" +"posterior.\n" +"\n" +"Vino é distribuído na expectativa de que será útil, mas SEM QUALQUER\n" +"GARANTIA; nem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A\n" +"UM PROPÓSITO ESPECÍFICO. Consulte a Licença Pública Genérica GNU para mais\n" +"detalhes.\n" +"\n" +"Deverá ter recebido uma cópia da Licença Pública Genérica GNU juntamente " +"com\n" +"esta aplicação; caso contrário, escreva para Free Software Foundation, " +"Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA (em inglês).\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:283 +msgid "translator-credits" +msgstr "" +"Duarte Loreto <happyguy_pt@hotmail.com>\n" +"Pedro Albuquerque <palbuquerque73@gmail.com>" + +#: ../server/vino-status-icon.c:289 +msgid "Share your desktop with other users" +msgstr "Partilhe a sua área de trabalho com outros utilizadores" + +#: ../server/vino-status-icon.c:356 ../server/vino-status-tube-icon.c:231 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Tem a certeza que deseja desligar \"%s\"?" + +#: ../server/vino-status-icon.c:359 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "O utilizador remoto de \"%s\" será desligado. Tem a certeza?" + +#: ../server/vino-status-icon.c:365 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Tem a certeza que deseja desligar todos os clientes?" + +#: ../server/vino-status-icon.c:367 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Todos os utilizadores remotos serão desligados. Tem a certeza?" + +#: ../server/vino-status-icon.c:379 ../server/vino-status-tube-icon.c:245 +msgid "Disconnect" +msgstr "Desligar" + +#: ../server/vino-status-icon.c:405 ../server/vino-status-tube-icon.c:270 +msgid "_Preferences" +msgstr "_Preferências" + +#: ../server/vino-status-icon.c:420 +msgid "Disconnect all" +msgstr "Desligar todos" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:444 ../server/vino-status-tube-icon.c:283 +#, c-format +msgid "Disconnect %s" +msgstr "Desligar %s" + +#: ../server/vino-status-icon.c:465 ../server/vino-status-tube-icon.c:302 +msgid "_Help" +msgstr "A_juda" + +#: ../server/vino-status-icon.c:473 +msgid "_About" +msgstr "_Sobre" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:624 +msgid "Another user is viewing your desktop" +msgstr "Outro utilizador está a ver a sua área de trabalho" + +#: ../server/vino-status-icon.c:626 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Um utilizador no computador \"%s\" está remotamente a ver a sua área de " +"trabalho." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:632 +msgid "Another user is controlling your desktop" +msgstr "Outro utilizador está a controlar a sua área de trabalho" + +#: ../server/vino-status-icon.c:634 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Um utilizador no computador \"%s\" está remotamente a controlar a sua área " +"de trabalho." + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:430 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Erro ao mostrar a bolha de notificação: %s\n" + +#: ../server/vino-status-tube-icon.c:234 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "O utilizador remoto \"%s\" será desligado. Tem a certeza?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Partilhar a informação da minha área de trabalho" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "\"%s\" rejeitou o convite para partilhar a sua área de trabalho." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "\"%s\" desligou-se" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "\"%s\" está a controlar remotamente a sua área de trabalho." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "A aguardar que \"%s\" se ligue ao ecrã." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Recusar" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Ocorreu um erro:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Ocorreu um erro ao apresentar o URL \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Ocorreu um erro ao apresentar a ajuda:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "A verificar a conectividade desta máquina..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "" +#~ "Apenas é possível aceder à sua estação de trabalho através da rede local." + +#~ msgid " or " +#~ msgstr " ou " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Outros poderão aceder ao seu computador utilizando o endereço %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Ninguém pode aceder ao seu computador." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "" +#~ "Selecionar como outros utilizadores poderão remotamente visualizar a sua " +#~ "área de trabalho" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Preferências da Partilha de Área de Trabalho" + +#~ msgid "Sharing" +#~ msgstr "Partilhar" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Algumas destas preferências estão trancadas" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Permitir que outros utilizadores _visualizem a sua área de trabalho" + +#~ msgid "Your desktop will be shared" +#~ msgstr "A sua área de trabalho será partilhada" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Permitir que outros utilizadores controlem a sua área de trabalho" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Os utilizadores remotos podem controlar o seu rato e teclado" + +#~ msgid "Security" +#~ msgstr "Segurança" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_Tem de confirmar cada acesso a esta máquina" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Obrigar o utilizador a introduzir esta senha:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "_Configurar automaticamente o router UPnP para abrir e reencaminhar portos" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "O router tem de ter a funcionalidade UPnP ativa" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Apresentar o Ícone na Área de Notificação" + +#~ msgid "Al_ways" +#~ msgstr "Se_mpre" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Apenas quando estiver algum utilizador ligado" + +#~ msgid "_Never" +#~ msgstr "_Nunca" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Permitir o acesso remoto à área de trabalho" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Se verdadeiro, permite o acesso remoto à área de trabalho através do " +#~ "protocolo RFB. Utilizadores em máquinas remotas poderão então ligar-se à " +#~ "área de trabalho utilizando um visualizador VNC." + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Senha de partilha de ambiente de trabalho remoto" + +#~ msgid "Cancelled" +#~ msgstr "Cancelado" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "ERRO: O comprimento máximo da senha é %d caracter. Reintroduza a senha." +#~ msgstr[1] "" +#~ "ERRO: O comprimento máximo da senha são %d carateres. Reintroduza a senha." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "A alterar a senha do Vino.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Introduza a nova senha do Vino: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Introduza novamente a nova senha do Vino: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: senha alterada com sucesso.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "As senhas não são equivalentes.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: senha não foi alterada.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Apresentar a versão do Vino" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Atualiza a senha do Vino" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Execute 'vino-passwd --help' para consultar uma lista completa de todas " +#~ "as opções de comando" + +#~ msgid "VINO Version %s\n" +#~ msgstr "Versão do VINO %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "" +#~ "ERRO: Não possui permissões suficientes para alterar a senha do Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Se verdadeiro, será utilizado o protocolo UPnP para reencaminhar " +#~ "automaticamente no router o porto utilizado pelo vino" + +#~ msgid "Question" +#~ msgstr "Questão" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Um utilizador noutro computador está a tentar remotamente visualizar ou " +#~ "manipular a sua área de trabalho." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Deseja permití-lo?" + +#~ msgid "Remote Desktop" +#~ msgstr "Área de Trabalho Remota" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Ativar o acesso remoto à área de trabalho" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Apresentar _sempre o ícone" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Configurar a rede para aceitar ligações automaticamente" + +#~ msgid "_Never display an icon" +#~ msgstr "_Nunca apresentar um ícone" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Apenas apresentar um ícone quando alguém estiver ligado" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Área de Trabalho Remota GNOME" + +#~ msgid "_Send address by email" +#~ msgstr "_Enviar endereço por email" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copiar o endereço para a área de transferência" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Tamanho máximo: 8 carateres" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "Ser-lhe-á perguntado se permite ou recusa cada ligação recebida" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "Servidor de Área de Trabalho Remota já se encontra em execução; a " +#~ "terminar ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Erro ao comunicar com o GConf. Tem uma sessão GNOME iniciada?" + +#~ msgid "Error message:" +#~ msgstr "Mensagem de erro:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Sem memória livre ao manipular a mensagem '%s'" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Sem memória livre ao registar o caminho de objeto '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Falha ao adquirir o nome D-Bus '%s'\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Defina as suas preferências de acesso da área de trabalho remota" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Rede</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "Pedir a _sua confirmação" + +#~ msgid "Advanced" +#~ msgstr "Avançado" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Desativar a _imagem de fundo quando ligado" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Desativar a imagem de fundo quando ligado com sucesso" + +#~ msgid "General" +#~ msgstr "Geral" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Os utilizadores remotos que acedam à área de trabalho têm de suportar " +#~ "encriptação" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "O ecrã será trancado após o último cliente remoto se desligar" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "O servidor apenas aceitará ligações oriundas do localhost" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "O servidor irá escutar noutro porto em vez do por omissão (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "" +#~ "Os utilizadores podem visualizar a sua área de trabalho utilizando este " +#~ "comando:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "" +#~ "Quando um utilizador tentar ver ou controlar a sua área de trabalho:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Trancar o ecrã ao se desligar" + +#~ msgid "_Only allow local connections" +#~ msgstr "_Apenas permitir ligações locais" + +#~ msgid "_Password:" +#~ msgstr "_Senha:" + +#~ msgid "_Require encryption" +#~ msgstr "_Requerer encriptação" + +#~ msgid "_Use an alternative port:" +#~ msgstr "_Utilizar um porto alternativo:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Se verdadeiro, o servidor apenas aceitará ligações da própria máquina e " +#~ "ligações de rede serão rejeitadas. Defina esta opção como verdadeira se " +#~ "desejar exclusivamente utilizar um mecanismo de túnel para aceder ao " +#~ "servidor, tal como ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Apenas permitir ligações locais" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problemas ao registar o servidor de área de trabalho remota junto do " +#~ "bonobo-activation; a terminar ...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "" +#~ "O servidor de área de trabalho remota terminou inesperadamente, a " +#~ "reiniciar\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Falha ao ativar %s: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Falha ao ativar %s: Erro Desconhecido\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Falha ao ativar o servidor de área de trabalho remota: tentado demasiadas " +#~ "vezes\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "A iniciar o servidor de área de trabalho remota" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "A não iniciar o servidor de área de trabalho remota" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Se ativo, o ecrã será trancado após o último cliente remoto se desligar" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Address" +#~ msgstr "Endereço" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "O para onde o widget aponta" + +#~ msgid "Tooltip" +#~ msgstr "Dica" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Uma dica para este URL" + +#~ msgid "URL color" +#~ msgstr "Cor do URL" + +#~ msgid "The color of the URL's label" +#~ msgstr "A cor da etiqueta do URL" + +#~ msgid "The screen to be monitored" +#~ msgstr "O ecrã a ser monitorizado" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "O ecrã em que criar um servidor VNC" + +#~ msgid "On Hold" +#~ msgstr "A Aguardar" + +#~ msgid "Place all clients on hold" +#~ msgstr "Colocar todos os clientes a aguardar" + +#~ msgid "Prompt enabled" +#~ msgstr "Zona de introdução ativa" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Questionar o utilizador sobre tentativas de ligação" + +#~ msgid "View Only" +#~ msgstr "Apenas Visualizar" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Recusar introdução de teclado/ponteiro dos clientes" + +#~ msgid "Require Encryption" +#~ msgstr "Requerer Encriptação" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Requerer que os clientes utilizem encriptação" + +#~ msgid "Authentication methods" +#~ msgstr "Métodos de autenticação" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "Os métodos de autenticação que este servidor deverá permitir" + +#~ msgid "VNC Password" +#~ msgstr "Senha VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "A senha (codificada em base64) utilizada para autenticar tipos utilizando " +#~ "o método VncAuth" + +#~ msgid "_Ensure the user is using encryption" +#~ msgstr "_Certificar-se de que o utilizador está a utilizar encriptação" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..62be60c --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,834 @@ +# Brazilian Portuguese translation of vino. +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Raphael Higino <In Memoriam>, 2004-2006. +# Igor Pires Soares <igor@projetofedora.org>, 2007. +# Leonardo Ferreira Fontenelle <leo.fontenelle@gmail.com>, 2007. +# Jonh Wendell <wendell@bani.com.br>, 2007,2009. +# Og Maciel <ogmaciel@gnome.org>, 2007-2008, 2011. +# Vladimir Melo <vladimirmelo.psi@gmail.com>, 2008. +# Enrico Nicoletto <liverig@gmail.com>, 2008, 2013. +# Fábio Nogueira <deb-user-ba@ubuntu.com>, 2008, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-05 17:18+0000\n" +"PO-Revision-Date: 2013-03-05 16:03-0300\n" +"Last-Translator: Enrico Nicoletto <liverig@gmail.com>\n" +"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Ocorreu um erro ao exibir a URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Ocorreu um erro ao exibir a ajuda:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Verificando a conectividade desta máquina..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Sua máquina é acessível somente através da rede local." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ou " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Outros usuários podem acessar seu computador através do endereço %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ninguém pode acessar sua área de trabalho." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Compartilhamento da área de trabalho" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Defina como outros usuários podem acessar sua área de trabalho remotamente" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Preferências do Compartilhamento da área de trabalho" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Compartilhamento" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Algumas destas preferências estão bloqueadas" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Permitir que outros usuários _vejam sua área de trabalho" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Se selecionado, sua área de trabalho será compartilhada" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Permitir que outros usuários _controlem sua área de trabalho" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Usuários remotos poderão controlar o seu mouse e teclado" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Segurança" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "Você _deve confirmar cada acesso à esta máquina" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Exigir que o usuário digite esta senha:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Automaticamente _configurar roteador UPnP para abrir e encaminhar portas" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "O roteador deve ter a opção UPnP ativada" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Mostrar ícone da área de notificações" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "Se_mpre" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Somente quando alguém estiver conectado" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nunca" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Habilitar acesso remoto à área de trabalho" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Permitir acesso remoto à área de trabalho via o protocolo RFB. Usuários em " +"máquinas remotas poderão então se conectar à área de trabalho usando um " +"visualizador VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Notificar o usuário antes de completar uma conexão" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Usuários remotos acessando a área de trabalho não poderão acessar até que o " +"usuário na máquina acessada aprove a conexão. Recomendado especialmente " +"quando o acesso não é protegido por senha." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Permitir somente usuários remotos a ver a área de trabalho" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Se verdadeiro, a área de trabalho será a única coisa que usuários remotos " +"poderão ver. Usuários remotos não poderão usar o mouse ou o teclado." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Interface de rede para escuta" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Se não definido, o servidor irá escutar em todas as interfaces de rede.\n" +"\n" +"Defina isto apenas se você deseja apenas aceitar conexões vindas de " +"interfaces de rede específicas. Por exemplo: eth0, wifi0, lo e muitas mais." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Escutar em uma porta alternativa" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Se verdadeiro, o servidor irá escutar em outra porta, ao invés da padrão " +"(5900). A porta deve ser especificada na chave \"alternative-port\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Número da porta alternativa" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"A porta que o servidor irá escutar se a chave \"use-alternative-port\" " +"estiver definida como verdadeira. Os valores válidos estão na faixa de 5000 " +"a 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Exigir criptografia" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Se verdadeiro, usuários remotos acessando a área de trabalho precisarão ter " +"suporte a criptografia. É altamente recomendado que você use um cliente com " +"suporte a criptografia, a não ser que a rede envolvida seja segura." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Métodos de autenticação permitidos" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Lista os métodos de autenticação com os quais usuários remotos podem acessar " +"a área de trabalho.\n" +"\n" +"Existem dois métodos de autenticação possíveis; \"vnc\" faz com que seja " +"pedida uma senha ao usuário remoto (a senha é especificada pela chave vnc-" +"password) antes de conectar e \"none\" que permite a qualquer usuário remoto " +"conectar." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Senha exigida para autenticação do \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"A senha que será pedida ao usuário remoto se o método de autenticação \"vnc" +"\" for usado. A senha especificada pela chave é codificada em base64.\n" +"\n" +"O valor especial do 'chaveiro' (a qual não é base64) significa que a senha " +"está armazenada no chaveiro GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Endereço de e-mail para o qual o URL da área de trabalho remota deve ser " +"enviada" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Esta chave especifica o endereço de e-mail para o qual a URL da área de " +"trabalho remota deve ser enviada se o usuário clicar nela no diálogo de " +"preferências de compartilhamento da área de trabalho." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Bloquear a tela quando o último usuário se desconectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Se verdadeiro, a tela será bloqueada após o último cliente remoto " +"desconectar." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Quando o ícone de status deve ser mostrado" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Esta chave controla o comportamento do ícone de status. Existem três opções: " +"\"sempre\" - o ícone sempre estará presente; \"cliente\" - o ícone só estará " +"presente quando alguém estiver conectado (este é o comportamento padrão); " +"\"nunca\" - o ícone não estará presente." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Se o plano de fundo da área de trabalho deve ou não ser desabilitado quando " +"um usuário está conectado" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Quando verdadeiro, desabilita o plano de fundo da área de trabalho " +"substituindo-o por um bloco único de cor quando um usuário conecta-se com " +"sucesso." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Se um roteador UPnP deve ou não ser usado para encaminhar e abrir portas." + +# Por gentileza, traduzir UPnP-capable como compatível com UPnP. +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Se verdadeiro, solicita que um roteador compatível com UPnP deva encaminhar " +"e usar as portas usadas pelo Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Se devemos desativar a extensão XDamage do X.Org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Se verdadeiro, não será usado a extensão XDamage do X.org. Esta extensão não " +"funciona corretamente em alguns drivers de vídeo quando são usados efeitos " +"3D. Desativar isto fará com que o Vino funcione nestes ambientes, porém com " +"uma renderização mais lenta como efeito colateral." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Notificar ao conectar" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Se verdadeiro, mostra uma notificação quando um usuário conecta-se ao " +"sistema." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Senha de compartilhamento da área de trabalho remota" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "O arquivo não é um arquivo .desktop válido" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Arquivo desktop não reconhecido, Versão \"%s\"" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Iniciando %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "O aplicativo não aceita documentos na linha de comando" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opção de execução não reconhecida: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Impossível passar URIs de documento para uma entrada do tipo \"Type=Link\" " +"em um arquivo desktop" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Não é um item executáel" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Desabilita a conexão com o gerenciador de sessão" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Especifica o arquivo contendo a configuração salva" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ARQUIVO" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Especifica o ID do gerenciamento de sessão" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opções do gerenciamento de sessão:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Mostra as opções do gerenciamento de sessão" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Seu servidor X não tem suporte a extensão XTest - o acesso à área de " +"trabalho remota será apenas para visualização\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Iniciar no modo \"tube\", para o recurso 'Compartilhando minha área de " +"trabalho'" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Servidor VNC para o GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Execute \"vino-server --help\" para ver a lista completa de opções " +"disponíveis da linha de comando " + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Compartilhamento da área de trabalho do GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Área de trabalho remota de %s em %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Recebeu sinal %d, saindo." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Tela" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "A tela na qual exibir a notificação" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Erro ao inicializar libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Um usuário no computador \"%s\" está tentando ver ou controlar sua área de " +"trabalho remotamente." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Um outro usuário está tentando ver sua área de trabalho." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Recusar" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Aceitar" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Falha ao abrir conexão com o serviço: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Servidor de compartilhamento da área de trabalho do GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;compartilhamento;compratilhar;remoto;remota;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "O compartilhamento de área de trabalho está habilitado" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Uma pessoa está vendo sua área de trabalho" +msgstr[1] "%d pessoas estão vendo sua área de trabalho" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Erro ao exibir as preferências" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Erro ao exibir a ajuda" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licenciado sob a Licença Pública Geral GNU Versão 2\n" +"\n" +"O Vino é software livre; você pode redistribuí-lo e/ou modificá-lo sob os \n" +"termos da Licença Pública Geral GNU, conforme publicada pela Free Software \n" +"Foundation; tanto a versão 2 da Licença como (a seu critério) qualquer " +"versão\n" +"mais nova.\n" +"\n" +"O Vino é distribuído na expectativa de ser útil, mas SEM QUALQUER GARANTIA;\n" +"sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO A " +"QUALQUER\n" +"PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para obter " +"mais\n" +"detalhes.\n" +"\n" +"Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com " +"este\n" +"programa; caso contrario, escreva para a Free SoftwareFoundation, Inc., 51 " +"Franklin\n" +"St, Fifth Floor, Boston, MA02110-1301 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Raphael Higino <In memoriam>\n" +"Igor Pires Soares <igor@projetofedora.org>\n" +"Leonardo Ferreira Fontenelle <leo.fontenelle@gmail.com>\n" +"Jonh Wendell <wendell@bani.com.br>\n" +"Og Maciel <ogmaciel@gnome.org>\n" +"Vladimir Melo <vladimirmelo.psi@gmail.com>\n" +"Fábio Nogueira <deb-user-ba@ubuntu.com>\n" +"Enrico Nicoletto <liverig@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Compartilhe sua área de trabalho com outros usuários" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Você tem certeza de que deseja desconectar \"%s\"?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "O usuário remoto em \"%s\" será desconectado. Você tem certeza?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Você tem certeza que deseja desconectar todos os clientes?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Todos os usuários remotos serão desconectados. Você tem certeza?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Desconectar" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Preferências" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Desconectar todos" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Desconectar %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Aj_uda" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Sobre" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Outro usuário está vendo sua área de trabalho" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Um usuário no computador \"%s\" está vendo sua área de trabalho remotamente." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Um outro usuário está controlando sua área de trabalho" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Um usuário no computador \"%s\" está controlando sua área de trabalho " +"remotamente." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Erro ao exibir a mensagem de notificação: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "O usuário remoto \"%s\" será desconectado. Você tem certeza?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Compartilhando minha área de trabalho" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "\"%s\" rejeitou seu convite para compartilhamento da área de trabalho." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "\"%s\" desconectou" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "\"%s\" está controlando sua área de trabalho remotamente." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Esperando \"%s\" conectar-se." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permitir" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Recusar" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Ocorreu um erro:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Cancelado" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ERRO: Comprimento máximo da senha é de %d caractere. Por favor, digite " +"novamente a senha." +msgstr[1] "" +"ERRO: Comprimento máximo da senha é de %d caracteres. Por favor, digite " +"novamente a senha." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Alterando a senha do Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Entre com a nova senha do Vino:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Redigite a nova senha do Vino:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: senha atualizada com sucesso.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Desculpe, as senhas não coincidem.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: senha inalterada.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Mostrar a versão do Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Muda a senha do Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Execute \"vino-passwd --help\" para ver a lista completa de opções " +"disponíveis da linha de comando " + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versão do Vino %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"ERRO: Você não possui permissões suficientes para alterar a senha do Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Se verdadeiro, usaremos o protocolo UPnP para automaticamente abrir a " +#~ "porta usada pelo vino no roteador." + +#~ msgid "Question" +#~ msgstr "Pergunta" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Um usuário em um outro computador está tentando ver ou controlar sua área " +#~ "de trabalho remotamente." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Você deseja permitir que eles façam isso?" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..8fc6c02 --- /dev/null +++ b/po/ro.po @@ -0,0 +1,816 @@ +# Romanian translation for vino +# Copyright (C) 2004, Free Software Foundation, Inc +# Mișu Moldovan <dumol@gnome.ro>, 2004 +# Dan Damian <dand@gnome.ro>, 2005-2006 +# Adi Roiban https://launchpad.net/~adiroiban, 2008, 2009 +# Lucian Adrian Grijincu <lucian.grijincu@gmail.com>, 2011. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: " +"http://bugzilla.gnome.org/enter_bug.cgi?product=vino&component=Preferences " +"Dialog\n" +"POT-Creation-Date: 2011-02-21 13:54+0000\n" +"PO-Revision-Date: 2011-03-16 23:33+0200\n" +"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n" +"Language-Team: Romanian Gnome Team <gnomero-list@lists.sourceforge.net>\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.6.1\n" + +#: ../capplet/vino-message-box.c:54 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "S-a produs o eroare la afișarea URL-ului „%s”" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"A intervenit o eroare la afișarea ajutorului:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Se verifică conectivitatea acestui calculator..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Calculatorul e accesibil doar din rețeaua locală." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " sau " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Alții pot accesa calculatorul folosind adresa %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Nimeni nu poate accesa calculatorul." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Alegeți modul în care alți utilizatori pot vedea de la distanță desktopul " +"dumneavoastră" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Desktop la distanță" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:1 +msgid "Allowed authentication methods" +msgstr "Metode de autentificare permise" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:2 +msgid "Alternative port number" +msgstr "Număr port alternativ" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adresă de mail la care se va trimite URL-ul desktopului" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:4 +msgid "Enable remote desktop access" +msgstr "Activare acces de tip desktop la distanță" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:5 +msgid "" +"If not set, the server will listen on all network interfaces. Set this if " +"you want that accept connections only from some specific network interface. " +"eg: eth0, wifi0, lo, ..." +msgstr "" +"La dezactivare, serverul va folosi toate interfețele de rețea. Activați dacă " +"doriți să acceptați conexiuni doar pe anumite interfețe de rețea. ex: eth0, " +"wiki0, lo0, ..." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:6 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"La activare, permite accesul la distanță la desktop utilizând protocolul " +"RFB, Utilizatorii la distanță se vor putea conecta utilizând vncviewer." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:7 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"La activare, utilizatorii la distanță nu vor putea accesa desktopul decât " +"după ce utilizatorul de pe calculatorul gazdă le aprobă conexiunea. " +"Definirea este recomandată în special atunci când accesul nu este protejat " +"prin parolă." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:8 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Dacă este selectat, utilizatorilor de la distanță le este permis doar " +"vizualizarea desktopului. Utilizatorii de la distanță nu vor putea folosi " +"mausul sau tastatura." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:9 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Dacă este selectat, utilizatorii de la distanță ce accesează destkopul sunt " +"nevoiți să suporte critpare. Este recomandat să folosiți un client care să " +"suporte criptare." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:10 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"Dacă este selectat, ecranul va fi blocat după deconectarea ultimului client " +"de la distanță." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:11 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative_port' key." +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Dacă este selectat, serverul va folosi un alt port, în locul celui implicit " +"(5900). Portul trebuie specificat de cheia „alternative-port”." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:12 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"Dacă este activat, nu se va folosi extensia XDamage a X.org. Această " +"extensie nu funcționează corespunzător cu unele drivere video atunci când se " +"folosesc efecte 3D. Dezactivarea va face ca vino să funcționeze în aceste " +"medii cu o încetinire în randare ca efect secundar." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:13 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "" +"Dacă este adevărat, va fi folosit protocolul UPNP pentru a trimite automat " +"către ruter portul folosit de Vino." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:14 +#| msgid "Listen an alternative port" +msgid "Listen on an alternative port" +msgstr "Ascultă pe un port alternativ" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:15 +#| msgid "" +#| "Lists the authentication methods with which remote users may access the " +#| "desktop. There are two possible authentication methods; \"vnc\" causes " +#| "the remote user to be prompted for a password (the password is specified " +#| "by the vnc_password key) before connecting and \"none\" which allows any " +#| "remote user to connect." +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc-password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Listează metodele de autentificare prin care utilizatorii la distanță vă pot " +"accesa desktopul. Există două metode de autentificare posibile: „vnc” (care " +"cere utilizatorului la distanță parola specificată în cheia „vnc-password”) " +"înainte de conectare și „none” care permite conectarea oricărui utilizator " +"la distanță." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:16 +msgid "Lock the screen when last user disconnect" +msgstr "Blochează ecranul la deconectarea ultimului utilizator" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:17 +msgid "Network interface for listening" +msgstr "Interfață de rețea folosită" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:18 +msgid "Only allow remote users to view the desktop" +msgstr "Permite doar vizualizarea desktopului utilizatorilor la distanță" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Cere parolă la autentificarea „vnc”" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:20 +msgid "Prompt the user before completing a connection" +msgstr "Avertizează utilizatorul înainte de încheierea conexiunii" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:21 +msgid "Require encryption" +msgstr "Cere criptare" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:22 +#| msgid "" +#| "The password which the remote user will be prompted for if the \"vnc\" " +#| "authentication method is used. The password specified by the key is " +#| "base64 encoded." +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded. The special value of 'keyring' (which is not valid base64) means " +"that the password is stored in the GNOME keyring." +msgstr "" +"Parola cerută utilizatorilor la distanță când se utilizează metoda de " +"autentificare „vnc”. Parola specificată de cheie este codificată în base64. " +"Valoarea specială „keyring” (care nu este o valoare base64 validă) înseamnă " +"că parola este stocată în Inelul de chei GNOME (GNOME keyring)." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:23 +#| msgid "" +#| "The port which the server will listen to if the 'use_alternative_port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"Portul pe care ascultă serverul în cazul în care cheia „use-alternative-" +"port” este activată. Valorile valide sunt între 5000 și 50000." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:24 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"Această cheie controlează comportamentul pictogramei de stare. Există trei " +"opțiuni: „always” - iconița va fi în permanență afișată; „client” - Veți " +"vedea iconița doar când este cineva conectat, aceasta este valoare " +"implicită; „never” - Nu afișa niciodată iconița." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:25 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Această cheie specifică adresa de mail la care se va trimite URL-ul " +"desktopului la distanță când utilizatorul dă click pe URL-ul din fereastra " +"cu preferințe „Desktop la distanță”." + +#: ../common/org.gnome.Vino.gschema.xml.in.h:26 +msgid "When the status icon should be shown" +msgstr "Când să fie afișată iconița de stare" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:27 +msgid "When true, disable the background on receive valid session" +msgstr "" +"Dacă este adevărat, dezactivează fundalul la primirea unei sesiuni valide" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:28 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Dacă să fie dezactivată extensia XDamage a X.org" + +#: ../common/org.gnome.Vino.gschema.xml.in.h:29 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "Dacă să fie folosit UPNP pentru trimiterea portului către rutere" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Al_ways display an icon" +msgstr "Afișea_ză întotdeauna o iconiță" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Allow other users to _view your desktop" +msgstr "Permite altor utilizatori să _vadă desktopul" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Notification Area" +msgstr "Zonă notificare" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Remote Desktop Preferences" +msgstr "Preferințe desktop la distanță" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Utilizatorii la distanță pot controla mausul și tastatura dumneavoastră" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "Security" +msgstr "Securitate" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Sharing" +msgstr "Partajare" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Some of these preferences are locked down" +msgstr "O parte din aceste preferințe sunt blocate" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "Your desktop will be shared" +msgstr "Desktopul dumneavoastră va fi partajat" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Allow other users to control your desktop" +msgstr "Permite _altor utilizatori controlul desktopului" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "_Configure network automatically to accept connections" +msgstr "_Configurează rețeaua să accepte automat conexiuni" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "_Never display an icon" +msgstr "_Nu afișa niciodată o iconiță" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "_Only display an icon when there is someone connected" +msgstr "Afișează _o iconiță doar când cineva este conectat" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "_Require the user to enter this password:" +msgstr "Ce_re utilizatorului să introducă această parolă:" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_You must confirm each access to this machine" +msgstr "_Trebuie să confirmați orice accesare pe aceast calculator" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Fișierul nu este un fișier .desktop valid" + +#: ../server/smclient/eggdesktopfile.c:188 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Versiune nerecunoscută de fișier desktop „%s”" + +#: ../server/smclient/eggdesktopfile.c:968 +#, c-format +msgid "Starting %s" +msgstr "Se pornește %s" + +#: ../server/smclient/eggdesktopfile.c:1110 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplicația nu acceptă documente în linia de comandă" + +#: ../server/smclient/eggdesktopfile.c:1178 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Opțiune nerecunoscută de lansare: %d" + +#: ../server/smclient/eggdesktopfile.c:1383 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Nu se poate trimte un URI de document unei intrări desktop „Type=Link”" + +#: ../server/smclient/eggdesktopfile.c:1404 +#, c-format +msgid "Not a launchable item" +msgstr "Nu este un element lansabil" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Dezactivează conexiunea la administrarea sesiunii" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Specifică fișierul conținând configurația salvată" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FIȘIERE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Specifică ID-ul de administrare sesiune" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Opțiuni de administrare de sesiune:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Afișează opțiunile de administrare a sesiunii" + +#: ../server/vino-main.c:108 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Acest server X nu suportă extensia XTest, accesul la desktopul la distanță " +"va fi de tip doar vizualizare\n" + +#: ../server/vino-main.c:195 +msgid "- VNC Server for GNOME" +msgstr "- Server VNC pentru GNOME" + +#: ../server/vino-main.c:201 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Rulați „vino-server --help” pentru a vedea lista completă cu opțiunile " +"liniei de comandă" + +#: ../server/vino-main.c:221 +msgid "GNOME Remote Desktop" +msgstr "Desktop la distanță GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s desktop la distanță pe %s" + +#: ../server/vino-prefs.c:109 +#, c-format +msgid "Received signal %d, exiting...\n" +msgstr "S-a primit semnal %d, se iese...\n" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "Ecran" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "Ecranul pe care se va afișa promptul" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utilizator al calculatorului „%s” încearcă să acceseze sau să controleze " +"de la distanță desktopul." + +#: ../server/vino-prompt.ui.h:1 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Un utilizator al unui alt calculator încearcă să acceseze sau să controleze " +"de la distanță desktopul." + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "Un alt utilizator încearcă să vizualizeze desktopul." + +#: ../server/vino-prompt.ui.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Doriți să le permiteți acest lucru?" + +#: ../server/vino-prompt.ui.h:4 +msgid "Question" +msgstr "Întrebare" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Permite" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Refuză" + +#: ../server/vino-server.c:156 ../server/vino-server.c:179 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Conexiunea la magistrală a eșuat: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Server desktop la distanță GNOME" + +#: ../server/vino-status-icon.c:103 ../server/vino-status-tube-icon.c:96 +msgid "Desktop sharing is enabled" +msgstr "Partajarea desktopului este activată" + +#: ../server/vino-status-icon.c:111 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "Este conectată o persoană" +msgstr[1] "Sunt conectate %d persoane" +msgstr[2] "Sunt conectate %d de persoane" + +#: ../server/vino-status-icon.c:212 ../server/vino-status-tube-icon.c:180 +msgid "Error displaying preferences" +msgstr "Eroare la afișarea preferințelor" + +#: ../server/vino-status-icon.c:234 ../server/vino-status-tube-icon.c:200 +msgid "Error displaying help" +msgstr "Eroare la afișarea ajutorului" + +#: ../server/vino-status-icon.c:261 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licențiat sub Licența publică generale GNU versiuena 2\n" +"\n" +"Vino este un program liber; îl puteți redistribui și/sau modifica în " +"conformitate\n" +"cu termenii Licenței Publice Generale GNU așa cum este publicată de Free\n" +"Software Foundation; fie versiunea 2 a Licenței, fie (la latitudinea " +"dumneavoastră)\n" +"orice versiune ulterioară.Vino este distribuit cu speranța că va fi util, " +"dar\n" +"FĂRĂ NICI O GARANȚIE, fără garanție implicită de vandabilitate și " +"conformitate\n" +"unui anumit scop. Citiți Licența Publică Generală GNU pentru detalii.Ar " +"trebui\n" +"să fi primit o copie a Licenței Publice Generale GNU împreună cu acest " +"program;\n" +"dacă nu, scrieți Free Software Foundation, Inc., 59 Temple Place, Suite " +"330,\n" +"Boston, MA 02111-1307 USA\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:276 +msgid "translator-credits" +msgstr "" +"Traducători Launchpad:\n" +" Adi Roiban https://launchpad.net/~adiroiban\n" +" Dan Damian https://launchpad.net/~dand\n" +" Ionuț Jula https://launchpad.net/~ionutjula" + +#: ../server/vino-status-icon.c:282 +msgid "Share your desktop with other users" +msgstr "Partajează desktopul cu alți utilizatori" + +#: ../server/vino-status-icon.c:347 ../server/vino-status-tube-icon.c:232 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Doriți să deconectați „%s”?" + +#: ../server/vino-status-icon.c:350 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"Utilizatorul la distanță de la „%s” va fi deconectat. Doriți să continuați " +"această acțiune?" + +#: ../server/vino-status-icon.c:356 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Doriți să deconectați toți clienții?" + +#: ../server/vino-status-icon.c:358 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"Toți utilizatorii de la distanță vor fi deconectați. Doriți să continuați " +"această acțiune?" + +#: ../server/vino-status-icon.c:370 ../server/vino-status-tube-icon.c:246 +msgid "Disconnect" +msgstr "Deconectează" + +#: ../server/vino-status-icon.c:396 ../server/vino-status-tube-icon.c:271 +msgid "_Preferences" +msgstr "_Preferințe" + +#: ../server/vino-status-icon.c:411 +msgid "Disconnect all" +msgstr "Deconectează tot" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:435 ../server/vino-status-tube-icon.c:284 +#, c-format +msgid "Disconnect %s" +msgstr "Deconectează %s" + +#: ../server/vino-status-icon.c:456 ../server/vino-status-tube-icon.c:303 +msgid "_Help" +msgstr "_Ajutor" + +#: ../server/vino-status-icon.c:464 +msgid "_About" +msgstr "_Despre" + +#: ../server/vino-status-icon.c:597 ../server/vino-status-tube-icon.c:400 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Eroare inițializare libnotify\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:618 +msgid "Another user is viewing your desktop" +msgstr "Un alt utilizator vizualizează desktopul" + +#: ../server/vino-status-icon.c:620 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Un utilizator de pe calculatorul „%s” vizualizează de la distanță desktopul" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:626 +msgid "Another user is controlling your desktop" +msgstr "Un alt utilizator controlează desktopul" + +#: ../server/vino-status-icon.c:628 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Un utilizator de pe calculatorul „%s” controlează de la distanță desktopul" + +#: ../server/vino-status-icon.c:656 ../server/vino-status-tube-icon.c:435 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Eroare la afișarea balonului de notificare: %s\n" + +#: ../server/vino-status-tube-icon.c:235 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"Utilizatorul la distanță „%s” va fi deconectat. Doriți să continuați această " +"acțiune?" + +#: ../server/vino-tube-server.c:268 ../server/vino-tube-server.c:297 +msgid "Share my desktop information" +msgstr "Partajează informațiile desktopului" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:272 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s” a respins invitația de partajare a desktopului." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:276 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s” deconectat" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:303 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s” controlează de la distanță desktopul." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:312 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Se așteapta ca „%s” să se conecteze la ecran." + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "S-a produs o eroare:" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "Cancelled" +msgstr "Anulat" + +#: ../tools/vino-passwd.c:122 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"Eroare: Lungimea maximă a parolei este %d caracter. Reintroduceți parola." +msgstr[1] "" +"Eroare: Lungimea maximă a parolei este %d caractere. Reintroduceți parola." +msgstr[2] "" +"Eroare: Lungimea maximă a parolei este %d de caractere. Reintroduceți parola." + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Schimbare parolă Vino.\n" + +#: ../tools/vino-passwd.c:158 +msgid "Enter new Vino password: " +msgstr "Introduceți parola Vino nouă: " + +#: ../tools/vino-passwd.c:161 +msgid "Retype new Vino password: " +msgstr "Reintroduceți parola Vino nouă: " + +#: ../tools/vino-passwd.c:167 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: parola a fost actualizată cu succes.\n" + +#: ../tools/vino-passwd.c:172 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Parolele nu se potrivesc.\n" + +#: ../tools/vino-passwd.c:173 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: parola nu a fost schimbată.\n" + +#: ../tools/vino-passwd.c:189 +msgid "Show Vino version" +msgstr "Afișează versiunea Vino" + +#: ../tools/vino-passwd.c:198 +msgid "- Updates Vino password" +msgstr "- actualizează parola Vino" + +#: ../tools/vino-passwd.c:208 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Rulați „vino-passwd --help” pentru a vedea lista completă cu opțiunile " +"liniei de comandă" + +#: ../tools/vino-passwd.c:215 +#, c-format +msgid "VINO Version %s\n" +msgstr "Versiune Vino %s\n" + +#: ../tools/vino-passwd.c:226 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "EROARE: Nu aveți suficiente permisiuni pentru a schimba parola Vino.\n" + +#~ msgid "_Send address by email" +#~ msgstr "Trimite adre_sa prin email" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Copiază adrese în clipboard" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Mărime maximă: 8 caractere" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "Ruterul trebuie să aibă activată funcționalitatea UPnP" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Vi se va cere să permiteți sau să refuzați orice cerere de conexiune" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Serverul „Desktop la distanță” este deja pornit, se iese...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "Eroare la comunicarea cu GConf. Sunteți conectați într-o sesiune GNOME?" + +#~ msgid "Error message:" +#~ msgstr "Mesaj eroare:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Memorie depășită la operarea mesajului „%s”" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Memorie depășită la înregistrarea caii obiect „%s”" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Obținere nume D-Bus „%s” eșuată\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Definiți opțiunile de accesare a de la distanță a desktopului" + +#~ msgid " " +#~ msgstr " " diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..b7b04c1 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,845 @@ +# translation of ru.po to Russian +# This file is distributed under the same license as the vino package. +# Copyright (C) Free Software Foundation, Inc. +# +# Leonid Kanter <leon@asplinux.ru>, 2004, 2005, 2007, 2010. +# Yuri Myasoedov <omerta13@yandex.ru>, 2012, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: ru\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-02-23 10:26+0400\n" +"Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n" +"Language-Team: русский <gnome-cyr@gnome.org>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"X-Poedit-Language: Russian\n" +"X-Poedit-Country: RUSSIAN FEDERATION\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "При отображении URL произошла ошибка «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"При отображении справки произошла ошибка:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Определение возможностей соединения с этим компьютером…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Ваш рабочий стол доступен только из локальной сети." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " или " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "К вашему компьютеру можно подключиться, используя адрес %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Никто не имеет доступа к рабочему столу." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Общий доступ к рабочему столу" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Позволять определять, как другие пользователи могут видеть ваш рабочий стол" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Настройки удалённого рабочего стола" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Совместный доступ" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Некоторые из этих параметров заблокированы" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Позволять другим пользователям _видеть ваш рабочий стол" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Ваш рабочий стол будет доступен подключения другим пользователям" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "П_озволять другим пользователям управлять вашим рабочим столом" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Разрешить удалённым пользователям управлять клавиатурой и мышью" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Безопасность" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Запрашивать подтверждение при любой попытке доступа к компьютеру" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Требовать от пользователя ввести следующий пароль:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_Автоматически настраивать маршрутизатор для открытия и перенаправления " +"портов" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "В маршрутизаторе должна быть включена возможность UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Значок в области уведомлений" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Всегда" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Только когда кто-нибудь подключён" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Никогда" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Разрешить удалённый доступ к рабочему столу" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Если установлено, то к рабочему столу разрешается получать удалённый доступ " +"по протоколу RFB. Пользователи могут подключаться к рабочему столу с помощью " +"просмотрщика VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Запрашивать разрешение пользователя перед соединением" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Если ключ установлен, пользователи с других компьютеров не смогут " +"подключиться к рабочему столу, пока локальный пользователь не подтвердит " +"соединение. Особенно рекомендуется, если доступ не защищён паролем." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Разрешить доступ к рабочему столу только для просмотра" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Если ключ установлен, рабочий стол доступен удалённым пользователям только " +"для просмотра. Они не смогут пользоваться мышью или клавиатурой." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Сетевой интерфейс для ожидания соединения" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Если значение не установлено, сервер будет ожидать подключения на всех " +"сетевых интерфейсах.\n" +"\n" +"Установите значение, если хотите принимать соединения только от " +"определённого сетевого интерфейса, например: eth0, wifi0, lo и т.д." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Использовать альтернативный порт" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Если значение установлено, то сервер будет слушать другой порт вместо порта " +"по умолчанию (5900). Порт указывается в ключе «alternative-port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Альтернативный номер порта" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Порт, который будет слушать сервер, если установлено значение ключа «use-" +"alternative-port». Диапазон допустмых значений: от 5000 до 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Требовать шифрование" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Если ключ установлен, от удалённых пользователей требуется поддержка " +"шифрования. Настоятельно рекомендуется использовать шифрование, если сеть " +"между узлами не надёжна." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Разрешенные методы аутентификации" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Перечиcляет методы аутентификации, при помощи которых удалённые пользователи " +"могут получить доступ к рабочему столу.\n" +"Существует два возможных метода: «vnc» — заставляет удалённого пользователя " +"вводить пароль, указанный в ключе vnc-password; «none» — позволяет " +"подключиться любому удалённому пользователю." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Требовать пароль для аутентификации «vnc»" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Пароль, которые будет запрошен у пользователя, если используется метод " +"аутентификации «vnc». Пароль зашифрован алгоритмом base64.\n" +"\n" +"Особое значение «keyring» говорит о том, что пароль хранится в связке ключей " +"GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Адрес эл. почты, по которому должен быть отправлен URL удалённого рабочего " +"стола" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Этот ключ указывает адрес эл. почты, по которому должна быть отправлена " +"ссылка, если пользователь щёлкает по URL в диалоге «Настройки удалённого " +"рабочего стола»." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Блокировать экран после отсоединения последнего пользователя" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Если установлено, экран будет заблокирован после отключения последнего " +"пользователя." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Когда показывать значок статуса" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Этот ключ управляет значком состояния. Доступно три состояния: «always» — " +"всегда показывать значок; «client» — показывать значок при наличии активных " +"подключений (по умолчанию); «never» — никогда не показывать значок." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Не использовать фон рабочего стола при подключении пользователя" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Если установлено, то при успешном подключении пользователя фон рабочего " +"стола будет заменён сплошной заливкой." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Использовать маршрутизатор UPnP для перенаправления и открытия портов" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Если установлено, то маршрутизатор UPnP должен управлять перенаправлением и " +"открытием портов, используемых приложением Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Отключить расширение XDamage для X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Если установлено, то расширение XDamage для X.org будет отключено. " +"Расширение некорректно работает с некоторыми драйверами видеокарт, когда " +"применяются трёхмерные эффекты. Отключение расширения замедляет отрисовку, " +"когда vino работает в этих окружениях." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Уведомлять при подключении" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Если установлено, то при подключении пользователя к системе показывается " +"уведомление." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Пароль удалённого рабочего стола" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Это некорректный файл .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Неправильная версия файла с расширением desktop пользователя «%s»" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Запуск %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Приложение не может работать с документами с командной строки" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Неопознанный параметр запуска: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Не получается передать URI документа в запись «Type=Link» рабочего стола" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Этот элемент не может быть запущен" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Запретить соединение с менеджером сеанса" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Укажите файл, в котором записана конфигурация" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Укажите ID управления сеансом" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Параметры управления сеансом:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Показать параметры управления сеансом" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Ваш X-сервер не поддерживает расширение XTest — удалённый доступ будет " +"только для просмотра\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Запустить в туннельном режиме для предоставления доступа к своему рабочего " +"столу" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "— VNC-сервер для GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Запустите «vino-server --help», чтобы увидеть полный список доступных " +"параметров командной строки" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Удалённый рабочий стол GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Удалённый рабочий стол пользователя %s на %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Получен сигнал %d, осуществляется выход." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Экран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Экран, на котором должен выводиться запрос" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Ошибка инициализации libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Пользователь компьютера «%s» пытается подключиться для просмотра или " +"управления вашим рабочим столом." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Другой пользователь пытается подключиться к вашему рабочему столу." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Отклонить" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Принять" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Не удаётся открыть соединение с шиной: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сервер удалённого рабочего стола GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;доступ;удалённые;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Включён общий доступ к рабочему столу" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d пользователь просматривает ваш рабочий стол" +msgstr[1] "%d человека просматривают ваш рабочий стол" +msgstr[2] "%d человек просматривают ваш рабочий стол" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "При отображении параметров произошла ошибка" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "При отображении справки произошла ошибка" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Лицензировано на условиях GNU General Public License Version 2\n" +"\n" +"Vino — свободное программное обеспечение; вы можете распространять и/или\n" +"модифицировать его на условиях Универсальной общественной лицензии GNU\n" +"версии 2 или любой более поздней версии.\n" +"\n" +"Vino распространяется в надежде, что он может быть полезен, но БЕЗ\n" +"КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,\n" +"ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОДРАЗУМЕВАЕМЫМИ ГАРАНТИЯМИ\n" +"КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.\n" +"Для получения дополнительных сведений обратитесь к Универсальной " +"Общественной\n" +"Лицензии GNU.\n" +"\n" +"Вы должны получить копию лицензии GNU c программой Vino. Если лицензия\n" +"не была получена, известите об этом Фонд свободного программного " +"обеспечения\n" +"по адресу Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, " +"Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Леонид Кантер <leon@asplinux.ru>\n" +"Алексей Гультяев <hokum83@gmail.com>\n" +"Евгения Власова<jane.vlasova@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Доступ других пользователей к вашему рабочему столу" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Действительно отключить «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Удалённый пользователь «%s» будет отключён. Продолжить?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Действительно отключить все клиенты?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Все удалённые пользователи будут отключены. Продолжить?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Отключить" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Настройки" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Отключить всех" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Отключить %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Справка" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_О программе" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Другой пользователь просматривает ваш рабочий стол" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Пользователь компьютера «%s» удалённо просматривает ваш рабочий стол." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Другой пользователь управляет вашим рабочим столом" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Пользователь компьютера «%s» удалённо управляет вашим рабочим столом." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Ошибка при отображении всплывающего уведомления: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Удалённый пользователь «%s» будет отключён. Вы уверены?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Дать доступ другим пользователям к информации на моём рабочем столе" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "" +"Пользователь «%s» отклонил приглашение на совместный доступ к рабочему столу." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Пользователь «%s» отключён" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Пользователь «%s» удалённо управляет вашим рабочим столом." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Ожидание подключения пользователя «%s» к экрану." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Разрешить" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Отклонить" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Произошла ошибка:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Отменено" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ОШИБКА. Максимальная длина пароля составляет %d знак. Введите пароль снова." +msgstr[1] "" +"ОШИБКА. Максимальная длина пароля составляет %d знака. Введите пароль снова." +msgstr[2] "" +"ОШИБКА. Максимальная длина пароля составляет %d знаков. Введите пароль снова." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Изменение пароля Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Введите новый пароль:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Повторите ввод нового пароля:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: пароль успешно изменён.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Извините, пароли не совпадают.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: пароль не изменен.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Показать версию Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "— Обновляет пароль Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Запустите «vino-passwd --help», чтобы вывести полный список всех доступных " +"параметров командной строки" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Версия VINO %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ОШИБКА: у вас недостаточно прав, чтобы изменить пароль в Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Если ключ установлен, будет использоваться протокол UPNP для " +#~ "автоматической настройки портов маршрутизатора, используемых vino." + +#~ msgid "Question" +#~ msgstr "Вопрос" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Пользователь с другого компьютера пытается удалённо просматривать или " +#~ "управлять вашим рабочим столом." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Разрешить доступ?" diff --git a/po/rw.po b/po/rw.po new file mode 100644 index 0000000..92f19a5 --- /dev/null +++ b/po/rw.po @@ -0,0 +1,410 @@ +# translation of vino to Kinyarwanda. +# Copyright (C) 2005 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Steve Murphy <murf@e-tools.com>, 2005 +# Steve performed initial rough translation from compendium built from translations provided by the following translators: +# Philibert Ndandali <ndandali@yahoo.fr>, 2005. +# Viateur MUGENZI <muvia1@yahoo.fr>, 2005. +# Noëlla Mupole <s24211045@tuks.co.za>, 2005. +# Carole Karema <karemacarole@hotmail.com>, 2005. +# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005. +# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005. +# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.. +# +msgid "" +msgstr "" +"Project-Id-Version: vino 2.12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-03-31 18:56-0700\n" +"PO-Revision-Date: 2005-03-28 19:36-0700\n" +"Last-Translator: Steve Murphy <murf@e-tools.com>\n" +"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n" +"Language: rw\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: capplet/vino-preferences.c:807 +#, fuzzy +msgid "Send this command by email" +msgstr "iyi Komandi: ku imeli" + +#: capplet/vino-preferences.c:842 +#, fuzzy, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "Ikosa Ifashayobora" + +#: capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "" + +#: capplet/vino-preferences.desktop.in.in.h:2 +#, fuzzy +msgid "Set your remote desktop access preferences" +msgstr "Ibiro Ibyahiswemo" + +#: capplet/vino-preferences.glade.h:1 +msgid " " +msgstr "" + +#: capplet/vino-preferences.glade.h:2 +msgid " " +msgstr "" + +#: capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: capplet/vino-preferences.glade.h:4 +#, fuzzy +msgid "<b>Security</b>" +msgstr "<B B" + +#: capplet/vino-preferences.glade.h:5 +#, fuzzy +msgid "<b>Sharing</b>" +msgstr "<B B" + +#: capplet/vino-preferences.glade.h:6 +#, fuzzy +msgid "A_sk you for confirmation" +msgstr "kugirango Iyemeza" + +#: capplet/vino-preferences.glade.h:7 +#, fuzzy +msgid "Allow other users to _view your desktop" +msgstr "Ikindi Kuri Kureba Ibiro" + +#: capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "" + +#: capplet/vino-preferences.glade.h:9 +#, fuzzy +msgid "Some of these preferences are locked down" +msgstr "Bya Ibyahiswemo Gifunze Hasi" + +#: capplet/vino-preferences.glade.h:10 +#, fuzzy +msgid "Users can view your desktop using this command:" +msgstr "Kureba Ibiro ikoresha iyi Komandi:" + +#: capplet/vino-preferences.glade.h:11 +#, fuzzy +msgid "When a user tries to view or control your desktop:" +msgstr "a Ukoresha: Kuri Kureba Cyangwa Igenzura Ibiro" + +#: capplet/vino-preferences.glade.h:12 +#, fuzzy +msgid "_Allow other users to control your desktop" +msgstr "Ikindi Kuri Igenzura Ibiro" + +# basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_PASSWORD.text +#: capplet/vino-preferences.glade.h:13 +#, fuzzy +msgid "_Password:" +msgstr "Ijambobanga..." + +#: capplet/vino-preferences.glade.h:14 +#, fuzzy +msgid "_Require the user to enter this password:" +msgstr "Ukoresha: Kuri Injiza iyi Ijambobanga..." + +# framework/source\services\logindialog.src:RID_DLG_LOGIN.RID_FT_SECURITYPROXYHOST.text +#: capplet/vino-url.c:158 +msgid "Address" +msgstr "Aderesi" + +#: capplet/vino-url.c:159 +#, fuzzy +msgid "The address pointed to by the widget" +msgstr "Aderesi Kuri ku" + +#: capplet/vino-url.c:166 +#, fuzzy +msgid "Tooltip" +msgstr "Umwanyanyobora:" + +#: capplet/vino-url.c:167 +#, fuzzy +msgid "A tooltip for this URL" +msgstr "A Umwanyanyobora: kugirango iyi" + +#: capplet/vino-url.c:173 +#, fuzzy +msgid "URL color" +msgstr "Ibara" + +#: capplet/vino-url.c:174 +#, fuzzy +msgid "The color of the URL's label" +msgstr "Ibara Bya Akarango" + +# offmgr/source\offapp\dialog\fontsubs.src:RID_SVX_FONT_SUBSTITUTION.STR_HEADER2.text +#: server/vino-fb.c:947 server/vino-prompt.c:144 server/vino-server.c:851 +msgid "Screen" +msgstr "Mugaragaza" + +#: server/vino-fb.c:948 +#, fuzzy +msgid "The screen to be monitored" +msgstr "Mugaragaza Kuri" + +#: server/vino-main.c:78 +#, fuzzy +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "OYA Gushigikira Umugereka Ibiro Kureba" + +#: server/vino-prompt.c:145 +#, fuzzy +msgid "The screen on which to display the prompt" +msgstr "Mugaragaza ku Kuri Kugaragaza Urwinjiriro" + +#: server/vino-prompt.c:385 +#, fuzzy, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "A Ukoresha: ku ni Kuri Kureba Cyangwa Igenzura Ibiro" + +#: server/vino-prompt.glade.h:1 +#, fuzzy +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<B Ukoresha: ni Kuri Kureba Ibiro B" + +#: server/vino-prompt.glade.h:2 +#, fuzzy +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "A Ukoresha: ku ni Kuri Kureba Cyangwa Igenzura Ibiro" + +#: server/vino-prompt.glade.h:3 +#, fuzzy +msgid "Do you want to allow them to do so?" +msgstr "Kuri Kwemerera Kuri" + +#: server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "" + +# sc/source\ui\dbgui\validate.src:TP_VALIDATION_VALUES.FT_ALLOW.text +#: server/vino-prompt.glade.h:5 server/vino-util.c:64 +#, fuzzy +msgid "_Allow" +msgstr "Kwemerera" + +#: server/vino-prompt.glade.h:6 server/vino-util.c:65 +msgid "_Refuse" +msgstr "" + +#: server/vino-server.c:852 +#, fuzzy +msgid "The screen for which to create a VNC server" +msgstr "Mugaragaza kugirango Kuri Kurema a Seriveri" + +#: server/vino-server.c:859 +msgid "On Hold" +msgstr "" + +#: server/vino-server.c:860 +#, fuzzy +msgid "Place all clients on hold" +msgstr "Byose ku" + +#: server/vino-server.c:867 +#, fuzzy +msgid "Prompt enabled" +msgstr "Bikora" + +#: server/vino-server.c:868 +#, fuzzy +msgid "Prompt the user about connection attempts" +msgstr "Ukoresha: Ibyerekeye Ukwihuza" + +#: server/vino-server.c:875 +msgid "View Only" +msgstr "" + +#: server/vino-server.c:876 +#, fuzzy +msgid "Disallow keyboard/pointer input from clients" +msgstr "Mwandikisho Mweretsi Iyinjiza Bivuye" + +#: server/vino-server.c:883 +msgid "Require Encryption" +msgstr "" + +#: server/vino-server.c:884 +#, fuzzy +msgid "Require clients to use encryption" +msgstr "Kuri Gukoresha Bishunzwe:" + +#: server/vino-server.c:891 +msgid "Authentication methods" +msgstr "" + +#: server/vino-server.c:892 +#, fuzzy +msgid "The authentication methods this server should allow" +msgstr "iyi Seriveri Kwemerera" + +#: server/vino-server.c:900 +msgid "VNC Password" +msgstr "" + +#: server/vino-server.c:901 +#, fuzzy +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "Ijambobanga... Kuri ikoresha Uburyo" + +#: server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "" + +#: server/vino-server.schemas.in.h:2 +#, fuzzy +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E Ubutumwa Aderesi Kuri Ibiro Yoherejwe:" + +#: server/vino-server.schemas.in.h:3 +#, fuzzy +msgid "Enable remote desktop access" +msgstr "Ibiro" + +#: server/vino-server.schemas.in.h:4 +#, fuzzy +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"NIBYO Kuri Ibiro Biturutse Porotokole ku Gicurasi Hanyuma Kwihuza Kuri Ibiro " +"ikoresha a" + +#: server/vino-server.schemas.in.h:5 +#, fuzzy +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"NIBYO Ibiro OYA Ukoresha: ku Ubuturo Ukwihuza Ryari: ni OYA Ijambobanga... " +"Birinzwe" + +#: server/vino-server.schemas.in.h:6 +#, fuzzy +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"NIBYO Ibiro Kuri Kureba Ibiro OYA Kuri Gukoresha Imbeba Cyangwa Mwandikisho" + +#: server/vino-server.schemas.in.h:7 +#, fuzzy +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"NIBYO Ibiro Bya ngombwa Kuri Gushigikira ni Gukoresha a Umukiriya Bishunzwe: " +"urusobe ni" + +#: server/vino-server.schemas.in.h:8 +#, fuzzy +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Na: Gicurasi Ibiro Ukoresha: Kuri kugirango a Ijambobanga... Ijambobanga... " +"ni ku Urufunguzo Mbere Kwihuza... Na Ntacyo Ukoresha: Kuri Kwihuza" + +#: server/vino-server.schemas.in.h:9 +#, fuzzy +msgid "Only allow remote users to view the desktop" +msgstr "Kwemerera Kuri Kureba Ibiro" + +#: server/vino-server.schemas.in.h:10 +#, fuzzy +msgid "Password required for \"vnc\" authentication" +msgstr "Bya ngombwa kugirango" + +#: server/vino-server.schemas.in.h:11 +#, fuzzy +msgid "Prompt the user before completing a connection" +msgstr "Ukoresha: Mbere a Ukwihuza" + +#: server/vino-server.schemas.in.h:12 +#, fuzzy +msgid "Require encryption" +msgstr "Bishunzwe:" + +#: server/vino-server.schemas.in.h:13 +#, fuzzy +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Ijambobanga... Ukoresha: kugirango NIBA Uburyo ni Ijambobanga... ku " +"Urufunguzo ni" + +#: server/vino-server.schemas.in.h:14 +#, fuzzy +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Urufunguzo E Ubutumwa Aderesi Kuri Ibiro Yoherejwe: NIBA Ukoresha: ku in " +"Ibyahiswemo Ikiganiro" + +#: server/vino-shell.c:76 +#, fuzzy +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Seriveri" + +#: server/vino-shell.c:79 +#, fuzzy +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "Ibiro Seriveri Na:" + +#: session/vino-session.c:133 +#, fuzzy +msgid "Remote desktop server died, restarting\n" +msgstr "Ibiro Seriveri" + +#: session/vino-session.c:154 +#, fuzzy, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Bya Byanze" + +#: session/vino-session.c:160 +#, fuzzy, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "Bya Byanze" + +#: session/vino-session.c:231 +#, fuzzy +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "Kuri Kureka bigakora Ibiro Seriveri" + +#: session/vino-session.c:295 +#, fuzzy +msgid "Starting remote desktop server" +msgstr "Ibiro Seriveri" + +#: session/vino-session.c:300 +#, fuzzy +msgid "Not starting remote desktop server" +msgstr "Ibiro Seriveri" diff --git a/po/si.po b/po/si.po new file mode 100644 index 0000000..3ea555e --- /dev/null +++ b/po/si.po @@ -0,0 +1,471 @@ +# translation of vino.si.po to Sinhala +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Danishka Navin <snavin@redhat.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: vino.si\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-05-07 03:19+0100\n" +"PO-Revision-Date: 2007-05-31 10:23+0530\n" +"Last-Translator: Danishka Navin <snavin@redhat.com>\n" +"Language-Team: Sinhala <en@li.org>\n" +"Language: si\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../capplet/vino-preferences.c:635 ../capplet/vino-preferences.c:670 +#: ../server/vino-dbus-listener.c:324 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "සම්බන්දතා බසය විවෘත කිරීම අසමත් විය: %s\n" + +#: ../capplet/vino-preferences.c:880 +msgid "Send this command by email" +msgstr "මෙම විධානය ඊ-මේල් මගින් යවන්න" + +#: ../capplet/vino-preferences.c:915 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"උදව් දර්ශණය කිරීමේදි දෝෂයක් තිබුණි:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "දුරස්ථ මුලීක තිරය" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "ඔබගේ දුරස්ථ මුලීක තිර පිවිසුම් අභිප්රේත සකසන්න" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Security</b>" +msgstr "<b>ආරක්ෂාව</b>" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Sharing</b>" +msgstr "<b>හවුල්</b>" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "A_sk you for confirmation" +msgstr "ස්තිර කිරිම සඳහා ඔබගෙන් විමසයි (_s)" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "Allow other users to _view your desktop" +msgstr "වෙනත් පරිශිලකයන්ට ඔබගේ මුලීක තිර නැරබීමට ඉඩ දෙන්න් (_v)" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "Remote Desktop Preferences" +msgstr "දුරස්ථ මුලීක තිර අභිප්රේත" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Some of these preferences are locked down" +msgstr "මෙම අභිප්රේතයනෙගෙන් සමහරක් අගුලුලා ඇත" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Users can view your desktop using this command:" +msgstr "පරිශිලකයන්ට ඔබගේ මුලික තිරය මෙම විධානය මගින් බැලිය හැක:" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "When a user tries to view or control your desktop:" +msgstr "පරිශිලකයකු ඔබගේ මුලික තිරය බැලිමට හෝ පාලනයට සැරසෙන විටදී:" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "_Allow other users to control your desktop" +msgstr "වෙනත් පරිශීලකයන්ට ඔබගේ පාලනයට ඉඩ දෙන්න (_A)" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "_Password:" +msgstr "රහස් පදය (_P):" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "_Require the user to enter this password:" +msgstr "පරිශිලකයා විසින් මෙම රහස් පදය ඇතුලත් කිරිම අවශ්යවේ (_R):" + +#: ../server/vino-dbus-listener.c:180 ../server/vino-dbus-listener.c:210 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr "" + +#: ../server/vino-dbus-listener.c:284 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "" + +#: ../server/vino-dbus-listener.c:357 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "'%s' D-Bus නම ලබා ගැනීම අසමත්විය\n" + +#: ../server/vino-main.c:83 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"ඔබගේ XServer , XTest දිගුව සඳහා සහාය නොදක්වයි - දුරස්ථ මුලික තිර පිවිසුම නැරබීම " +"සඳහා පමණක් සීමා වනු ඇත\n" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop" +msgstr "%s'ගේ දුරස්ථ මුලික තිරය" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "තිරය" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' පරිගණකයේ සිටින පරිශීලකයෙකු ඔබගේ මුලික තිරය බැලීමට හෝ පාලනයට " +"සැරසේ." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>වෙනත් පරිශීලකයෙකු ඔබගේ මුලික තිරය බැලීමට සැරසේ.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"වෙනත් පරිගණකයක සිටින පරිශීලකයෙකු ඔබගේ මුලික තිරය බැලීමට හෝ පාලනයට " +"සැරසේ." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "එසේ කිරිමට ඒවාට ඉඩදීමට ඔබට අවශ්යද?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "ප්රශ්ණය" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "ඉඩදෙන්න (_A)" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "ප්රතික්ෂෙප කරන්න (_R)" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "තහවුරු කර ගැනීමේ ආකාර ඉඩදි ඇත" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "විකල්ප දොරටු අංකයක්" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "දුරස්ථ මුලික තිර පීවිසුම සක්රිය කරන්න" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" + +#: ../server/vino-server.schemas.in.h:9 +msgid "" +"If true, the server will listen another port, instead of default (5900). The " +"port must be specified in 'alternative_port' key." +msgstr "" + +#: ../server/vino-server.schemas.in.h:10 +msgid "" +"If true, the server will only accept connections from localhost and network " +"connections will be rejected. Set this option to true if you wish to " +"exclusively use a tunneling mechanism to access the server, such as ssh." +msgstr "" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Listen an alternative port" +msgstr "විකල්ප දොරටුෘවකටසවන් දෙයි " + +#: ../server/vino-server.schemas.in.h:12 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: ../server/vino-server.schemas.in.h:13 +msgid "Only allow local connections" +msgstr "ස්ථානීය සම්බන්දතා පමණක් අනුමත කරන්න" + +#: ../server/vino-server.schemas.in.h:14 +msgid "Only allow remote users to view the desktop" +msgstr "අනුමත දුරස්ථ පරිශිලකයන්ට පමණක් මුලික තිරය නැරබිමට සලසන්න" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\"තහවුරු කර ගැනීම සඳහා රහස් පදය අවශ්යවේ" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Prompt the user before completing a connection" +msgstr "සම්බන්දතාවය සම්පුර්ණ කිරීමට ප්රථම පරිශිලකට සිහිපත් කරන්න" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Require encryption" +msgstr "" + +#: ../server/vino-server.schemas.in.h:18 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: ../server/vino-server.schemas.in.h:19 +#, fuzzy +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"'use_alternative_port' යතුර සත්ය අගයට සැකසූවහොත් සේවාදායකය සවන්දෙනු " +"ඇත. 5000 සිට 50000 දක්වා පරාසය තුළ නිරවද්ය අගයන් පිහිටයි." + +#: ../server/vino-server.schemas.in.h:20 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "මුලික තිරය සේවා දායකය දැනටමත් ක්රියාත්මකයි; ඉවත් වෙමින් ...\n" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"bonobo-සක්රිය කිරීම සමඟ දුරස්ථ මුලික තිරය සේවා දායකය ලියාපදිංචිකිරිම ගැටලු සහිතයි; " +"ඉවත් වෙමින් ...\n" + +#: ../server/vino-status-icon.c:204 +#, c-format +msgid "" +"There was an error displaying preferences:\n" +" %s" +msgstr "" +"අභිප්රේත දර්ශණය කිරිමේදි දෝෂයක් තිබුණි:\n" +" %s" + +#: ../server/vino-status-icon.c:212 +#, c-format +msgid "" +"There was an error displaying help:\n" +" %s" +msgstr "" +"සහාය දර්ශණය කිරිමේදි දෝෂයක් තිබුණි:\n" +" %s" + +#: ../server/vino-status-icon.c:235 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:250 +msgid "translator-credits" +msgstr "පරිවර්තන ස්තුතිය" + +#: ../server/vino-status-icon.c:256 ../server/vino-status-icon.c:560 +msgid "GNOME Remote Desktop" +msgstr "GNOME දුරස්ථ මුලික තිරය" + +#: ../server/vino-status-icon.c:257 +msgid "Share your desktop with other users" +msgstr "ඔබගේ මුලික තිරය වෙනත් පරිශිලකයන් සමඟ බෙදා බන්න" + +#: ../server/vino-status-icon.c:320 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s' විසංදි කිරීමට ඔබට අවශ්යද?. ඔබට විශ්වාසද?" + +#: ../server/vino-status-icon.c:322 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "'%s' වෙතින් සම්බන්දවු දුරස්ථ පරිශිලකයා විසංදි වනු ඇත. ඔබට විශ්වාසද?" + +#: ../server/vino-status-icon.c:327 +msgid "Are you sure you want to disconnect all clients?" +msgstr "ඔබට විශ්වාසද? සියලුම පරිශීලකයන් විසංදි කිරීමට ඔබට අවශ්යද?" + +#: ../server/vino-status-icon.c:328 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "සියලුම දුරස්ථ පරිශිලකයන් විසංදි වනු ඇත. ඔබට විශ්වාසද?" + +#: ../server/vino-status-icon.c:340 +msgid "Disconnect" +msgstr "විසංදි කරන්න" + +#: ../server/vino-status-icon.c:365 +msgid "_Preferences" +msgstr "අභිප්රේත (_P)" + +#: ../server/vino-status-icon.c:377 +msgid "Disconnect all" +msgstr "සියල්ල විසංදි කරන්න" + +#: ../server/vino-status-icon.c:399 +#, c-format +msgid "Disconnect %s" +msgstr "%s විසංදි විය" + +#: ../server/vino-status-icon.c:416 +msgid "_Help" +msgstr "උදව් (_H)" + +#: ../server/vino-status-icon.c:424 +msgid "_About" +msgstr "පිළිබද (_A)" + +#: ../server/vino-status-icon.c:458 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "එක් පුද්ගලයකු සම්බන්ද විය" +msgstr[1] "පුද්ගලයින් %d දෙනෙකු සම්බන්ද විය" + +#: ../server/vino-status-icon.c:562 +msgid "Error initializing libnotify\n" +msgstr "libnotify ආරම්භ කිරිම දෝෂ සහිතයි\n" + +#: ../server/vino-status-icon.c:576 +msgid "Another user is viewing your desktop" +msgstr "වෙනත් පරිශීලකයකු ඔබගේ මූලික තිරය බලයි" + +#: ../server/vino-status-icon.c:577 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "'%s' පරිගණකයේ සිටින පරිශීලකයා දුරස්ථව ඔබගේ මූලික තිරය බලයි." + +#: ../server/vino-status-icon.c:582 +msgid "Another user is controlling your desktop" +msgstr "වෙනත් පරිශීලකයෙක් ඔබගේ මූලික තිරය පාලනය කරනු ලබයි" + +#: ../server/vino-status-icon.c:583 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "'%s' පරිබණකයේ සිටින පරිශිලකයා ඔබගේ මුලික තිරය දුරස්ථව හසුරුවයි." + +#: ../server/vino-status-icon.c:605 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "දුරස්ථ මූලික තිර සේවා දායකය නැසුනී, නැවත ආරම්භවෙයි\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "%s සක්රිය කරවීම අසමත්විය: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "%s සක්රිය කරවීම අසමත්විය: නොදන්නා දෝසඟයක්\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "දුරස්ථ මුලික තිර සේවාදායකය සක්රිය කිරිම අසමත්විය: බොහො වාරයක් උත්සාහ කරන ලදී\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "දුරස්ථ මූලික තිර සේවා දායකය ආරම්භවෙයි" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "දුරස්ථ මූලික තිර සේවා දායකය ආරම්භවන්නේ නැත" + diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..8f53dcf --- /dev/null +++ b/po/sk.po @@ -0,0 +1,878 @@ +# Slovak translation for vino. +# Copyright (C) 2004-2008, 2010, 2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Marcel Telka <marcel@telka.sk>, 2004-2008, 2010. +# Richard Stanislavský <kenny.vv@gmail.com>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-03 18:52+0000\n" +"PO-Revision-Date: 2013-03-04 19:55+0100\n" +"Last-Translator: Richard Stanislavský <kenny.vv@gmail.com>\n" +"Language-Team: Slovak <gnome-sk-list@gnome.org>\n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" +"X-Generator: Poedit 1.5.5\n" + +# message dialog +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Vyskytla sa chyba pri zobrazovaní URL „%s“" + +# message dialog +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Vyskytla sa chyba pri zobrazovaní pomocníka:\n" +"%s" + +# message box label +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Kontroluje sa pripojiteľnosť tohoto stroja..." + +# message box label +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Vaša pracovná plocha je dostupná iba z lokálnej siete." + +# medzi URL adresami +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " alebo " + +# message box label +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Ostatní môžu pristupovať k vášmu počítaču použitím adresy %s." + +# message box label +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "K vašej pracovnej ploche nemôže pristupovať nikto." + +# destkop entry name +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Zdieľanie pracovnej plochy" + +# desktop entry comment +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Zvoľte, ako môžu ostatní používatelia vzdialene zobraziť vašu pracovnú plochu" + +# GtkDialog title +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Nastavenia zdieľania pracovnej plochy" + +# GtkBox GtkLabel +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Zdieľanie" + +# GtkLabel +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Niektoré z týchto nastavení sú uzamknuté" + +# GtkCheckButton +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Povoliť ostatným používateľom _zobraziť vašu pracovnú plochu" + +# GtkCheckButton tooltip +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Vaša pracovná plocha bude zdieľaná" + +# GtkCheckButton +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "P_ovoliť ostatným používateľom ovládať vašu pracovnú plochu" + +# GtkCheckButton tooltip +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Vzdialení používatelia môžu ovládať vašu myš a klávesnicu" + +# GtkBox GtkLabel +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Bezpečnosť" + +# GtkCheckButton +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Každý prístup k tomuto stroju musí byť potvrdený" + +# GtkCheckButton +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "V_yžadovať od používateľa zadanie tohoto hesla:" + +# GtkCheckButton +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "_Automaticky otvoriť a presmerovať porty na smerovači pomocou UPnP" + +# GtkCheckButton tooltip +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Smerovač musí mať povolenú funkciu UPnP" + +# GtkBox GtkLabel +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Zobraziť ikonu v oblasti upozornení" + +# VinoRadioButton +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "Vž_dy" + +# VinoRadioButton +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "I_ba ak je niekto pripojený" + +# VinoRadioButton +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nikdy" + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Povoliť vzdialený prístup k pracovnej ploche" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Ak je „true“, povolí vzdialený prístup k pracovnej ploche cez RFB protokol. " +"Používatelia na vzdialených počítačoch sa potom môžu pripojiť k pracovnej " +"ploche pomocou zobrazovacieho klienta VNC." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Opýtať sa používateľa pred dokončením nadviazania spojenia" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ak je „true“, vzdialení používatelia pristupujúci k pracovnej ploche nemajú " +"povolený prístup, kým používateľ na hostiteľskom počítači nepovolí spojenie. " +"Odporúčame najmä ak prístup nie je chránený heslom." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Povoliť vzdialeným používateľom iba zobrazenie pracovnej plochy" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ak je „true“, vzdialení používatelia pristupujúci k pracovnej ploche majú " +"povolené len zobrazenie pracovnej plochy. Vzdialení používatelia nebudú môcť " +"používať myš ani klávesnicu." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Sieťové rozhranie na očakávanie spojenia" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ak nie je nastavené, server bude očakávať spojenie na všetkých sieťových " +"rozhraniach. \n" +"\n" +"Ak chcete akceptovať pripojenia len z niektorých konkrétnych rozhraní, " +"nastavte toto na konkrétne rozhranie napr.: eth0, wifi0, lo, ..." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Očakávať spojenie na alternatívnom porte" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ak je „true“, server bude očakávať spojenie na inom porte namiesto " +"štandardného (5900). Port musí byť zadaný v kľúči „alternative-port“." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Číslo alternatívneho portu" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Port, na ktorom bude server očakávať spojenie, ak je kľúč „use-alternative-" +"port“ nastavený na „true“. Platné hodnoty sú v rozsahu od 5000 do 50000." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Vyžadovať šifrovanie" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ak je „true“, vyžaduje sa od vzdialených používateľov pristupujúcich k " +"pracovnej ploche, aby podporovali šifrovanie. Odporúča sa používať klienta " +"podporujúceho šifrovanie, iba ak nie ste presvedčený, že sprostredkovateľská " +"sieť je dôveryhodná." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Povolené metódy overenia totožnosti" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Zoznam metód overenia totožnosti, pomocou ktorých môžu vzdialení " +"používatelia pristupovať k pracovnej ploche.\n" +"\n" +"Sú dve možné metódy overenia totožnosti; „vnc“ spôsobí, že vzdialený " +"používateľ bude vyzvaný na zadanie hesla (heslo je určené pomocou kľúča vnc-" +"password) pred pripojením a „none“, ktoré povolí každému vzdialenému " +"používateľovi pripojenie." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Vyžadované heslo pre overenie totožnosti k „vnc“" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Heslo, ktoré sa bude vyžadovať od vzdialeného používateľa, ak je použitá " +"metóda overenia totožnosti pre „vnc“. Heslo zadané v tomto kľúči je kódované " +"spôsobom base64.\n" +"\n" +"Špeciálna hodnota „keyring“ (ak nie je kované spôsobom base64) spôsobí, že " +"heslo je uložené v GNOME keyring." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"E-mail, na ktorý by mala byť odoslaná URL adresa vzdialenej pracovnej plochy" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Tento kľúč určuje adresu elektronickej pošty, na ktorú by mala byť odoslaná " +"URL adresa, ak používateľ klikne na URL adresu v dialógovom okne Predvolieb " +"vzdialenej pracovnej plochy." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Uzamknúť obrazovku po odpojení posledného používateľa" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ak je „true“, obrazovka bude po odpojení posledného vzdialeného klienta " +"uzamknutá." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Kedy má byť zobrazená ikona stavu" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Tento kľúč ovláda správanie stavovej ikony. Sú tri možnosti: „always“ - " +"ikona tam bude vždy; „client“ - uvidíte ikonu len keď je niekto pripojený, " +"toto je štandardné správanie; „never“ - nikdy nezobrazuje ikonu." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Či sa má zakázať pozadie pracovnej plochy, pokiaľ je používateľ pripojený" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Ak je „true“, po úspešnom pripojení používateľa sa zakáže pozadie pracovnej " +"plochy a nahradi ho jediný blok farby." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Či sa má na nastavenie presmerovania portu v smerovači použiť UPnP" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ak je „true“, požaduje sa, aby smerovač podporujúci UPnP otvoril a " +"presmeroval port, ktorý používa Vino. " + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Či sa má zakázať rozšírenie XDamage systému X.org" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ak je „true“, nebude sa používať rozšírenie XDamage systému X.org. Keď sú " +"použité 3D efekty, toto rozšírenie nefunguje správne na niektorých " +"grafických ovládačoch. Jeho zakázanie umožní fungovať programu vino v týchto " +"prostrediach, s pomalším vykresľovaním ako vedľajší efekt." + +# gconf summary +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Upozorniť na pripojenie" + +# gconf description +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ak je „true“, budete informovaný, keď sa pripojí používateľ do systému." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Heslo pre zdieľanie vzdialenej pracovnej plochy" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Súbor nie je platným súborom .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nerozpoznaná hodnota „%s“ položky Version v súbore .desktop " + +# startup message %s je desktop_file->name +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Spúšťa sa %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Aplikácia neakceptuje dokumenty v príkazovom riadku" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nerozpoznaná voľba spustenia: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Nie je možné odovzdať URI dokumentov do položky „Type=Link“ v súbore .desktop" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nespustiteľná položka" + +# popis voľby príkazového riadka +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Zakáže pripojenie k správcovi relácií" + +# popis voľby príkazového riadka +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Určuje súbor obsahujúci uloženú konfiguráciu" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "SÚBOR" + +# popis voľby príkazového riadka +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Určuje identifikátor pre správu relácie" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IDENTIFIKÁTOR" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Voľby pre správu relácie:" + +# popis voľby príkazového riadka +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Zobrazi voľby pre správu relácie" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Váš XServer nepodporuje rozšírenie XTest - prístup k vzdialenej pracovnej " +"ploche bude len na zobrazenie\n" + +# popis voľby príkazového riadka +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Spustí funkciu „Zdieľanie pracovnej plochy“ v režime „tube“" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC server pre GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Úplný zoznam dostupných volieb príkazového riadka získate po spustení „vino-" +"server --help“" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Zdieľanie pracovnej plochy GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Vzdialená pracovná plocha používateľa %s na počítači %s" + +# log message +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Prijatý signál %d, ukončuje sa." + +# GDK_TYPE_SCREEN +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Obrazovka" + +# popis GDK_TYPE_SCREEN +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Obrazovka, na ktorej sa má zobraziť výzva" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Chyba pri inicializácii libnotify\n" + +# text v dialogovom okne +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Používateľ na počítači „%s“ sa pokúša na diaľku zobraziť alebo ovládať vašu " +"pracovnú plochu." + +# GtkLabel +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Iný používateľ sa pokúša zobraziť vašu pracovnú plochu." + +# GtkButton +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Odmietnuť" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Prijať" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Otvorenie spojenia so zbernicou zlyhalo: %s\n" + +# Desktop entry comment +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server zdieľania pracovnej plochy GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;zdieľanie;vzdialený;prístup;" + +# tooltip +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Zdieľanie pracovnej plochy je povolené" + +# tooltip +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d osôb zobrazuje vašu pracovnú plochu" +msgstr[1] "Jedna osoba zobrazuje vašu pracovnú plochu" +msgstr[2] "%d osoby zobrazujú vašu pracovnú plochu" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Chyba pri zobrazovaní nastavení" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Chyba pri zobrazovaní pomocníka" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Chránené licenciou GNU General Public License Version 2\n" +"\n" +"Vino je slobodný softvér; môžete ho ďalej šíriť a\n" +"upravovať podľa ustanovení licencie GNU General Public Licence\n" +"(Všeobecná zverejňovacia licencia GNU), vydávanej nadáciou\n" +"Free Software Foundation a to buď podľa 2. verzie tejto Licencie,\n" +"alebo (podľa vášho uváženia) ktorejkoľvek neskoršej verzie.\n" +"Program Vino je rozširovaný v nádeji, že bude užitočný,\n" +"avšak BEZ AKEJKOĽVEK ZÁRUKY. Neposkytujú sa ani odvodené záruky\n" +"PREDAJNOSTI alebo VHODNOSTI PRE URČITÝ ÚČEL. Ďalšie podrobnosti\n" +"hľadajte v licencii GNU General Public License.\n" +"\n" +"Kópiu Všeobecnej verejnej licencie GNU ste mali dostať\n" +"spolu s týmto programom. Ak sa tak nestalo, napíšte do Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Marcel Telka <marcel@telka.sk>\n" +"Richard Stanislavský <kenny.vv@gmail.com>" + +# about dialog +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Zdieľajte vašu pracovnú plochu s ostatnými používateľmi" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Naozaj sa chcete odpojiť „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Vzdialený používateľ z „%s“ bude odpojený. Naozaj to chcete?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Naozaj chcete odpojiť všetkých klientov?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Všetci vzdialení používatelia budú odpojení. Naozaj to chcete?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Odpojiť" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "Nas_tavenia" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Odpojiť všetkých" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Odpojiť %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Pomocník" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_O programe" + +# notification summary +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Iný používateľ zobrazuje vašu pracovnú plochu" + +# notification body +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Používateľ na počítači „%s“ na diaľku zobrazuje vašu pracovnú plochu." + +# notification summary +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Iný používateľ ovláda vašu pracovnú plochu" + +# notification body +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Používateľ na počítači „%s“ ovláda na diaľku vašu pracovnú plochu." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Chyba pri zobrazovaní bubliny s upozornením: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Vzdialený používateľ „%s“ bude odpojený. Naozaj to chcete?" + +# * https://bugzilla.gnome.org/show_bug.cgi?id=686808 +# notification summary +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Zdieľanie informácií pracovnej plochy" + +# notification body +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "Používateľ „%s“ odmietol pozvanie na zdieľanie pracovnej plochy." + +# notification body +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "Používateľ „%s“ odpojený" + +# notification body +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Používateľ „%s“ vzdialene ovláda vašu pracovnú plochu." + +# notification body +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Čaká sa, kým sa používateľ „%s“ pripojí k obrazovke." + +# GtkButton +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Povoliť" + +# GtkButton +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Odmietnuť" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Vyskytla sa chyba:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Zrušené" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"CHYBA: Maximálna dĺžka hesla je %d znakov. Prosím, zadajte heslo znova." +msgstr[1] "" +"CHYBA: Maximálna dĺžka hesla je %d znak. Prosím, zadajte heslo znova." +msgstr[2] "" +"CHYBA: Maximálna dĺžka hesla sú %d znaky. Prosím, zadajte heslo znova." + +# log message +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Zmena hesla pre Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Zadajte nové heslo pre Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Zadajte znova nové heslo pre Vino: " + +# log message +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: heslo úspešne aktualizované.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Ľutujeme, ale heslá sa nezhodujú.\n" + +# log message +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: heslo nezmenené.\n" + +# popis voľby príkazového riadka +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Zobrazí verziu Vino" + +# popis aplikacie v cmd +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Aktualizácia hesla pre Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Úplný zoznam dostupných volieb príkazového riadka získate po spustení „vino-" +"passwd --help“" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO verzia %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "CHYBA: Nemáte dostatočné oprávnenia na zmenu hesla pre Vino.\n" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..c578031 --- /dev/null +++ b/po/sl.po @@ -0,0 +1,855 @@ +# Slovenian translations for vino. +# Copyright (C) 2005-2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# +# Matic Žgur <mr.zgur@gmail.com>, 2006. +# Matej Urbančič <mateju@svn.gnome.org>, 2005 - 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-01-28 21:47+0100\n" +"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n" +"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Prišlo je do napake med prikazovanjem naslova URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Prišlo je do napake med prikazovanjem pomoči:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Preverjanje povezljivosti računalnika ..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Do tega namizja je mogoč dostop le znotraj krajevnega omrežja." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ali " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Drugi uporabniki imajo dostop do računalnika preko naslova %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Nihče nima dostopa do tega namizja." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Souporaba namizja" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Izberite, na kakšen način si lahko drugi uporabniki ogledajo vaše namizje" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Možnosti souporabe namizja" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Souporaba" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Nekatere možnosti so zaklenjene" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Dovolite drugim uporabnikom _pregled vašega namizja" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Namizje bo v souporabi" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Dovoli drugim uporabnikom nadziranje namizja" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Oddaljeni uporabniki lahko nadzirajo tipkovnico in miško" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Varnost" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Potrditi je treba vsak dostop do tega računalnika" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "Od uporabnika _zahtevaj geslo:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Samodejno _nastavi usmerjevalnik UPnP za odpiranje in posredovanje vrat" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Usmerjevalnih mora imeti možnost UPnP omogočeno" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Pokaži obvestilno ikono" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Vedno" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "Le, ko je kdo _povezan" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nikoli" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Omogoči oddaljeni dostop do namizja" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Izbrana možnost omogoča oddaljenim uporabnikom dostop do namizja preko " +"protokola RFB. Uporabniki na oddaljenih namizjih se bodo lahko povezali " +"preko programa VNC viewer." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Obvesti uporabnika pred ustvarjanjem povezave" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Izbrana možnost določa, da oddaljeni uporabniki ne bodo imeli dostopa dokler " +"uporabnik na gostiteljskem računalniku tega ne odobri. Priporočljiva možnost " +"kadar dostop ni zaščiten z geslom." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Dovoljen je le ogled namizja" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Izbrana možnost določa, da lahko oddaljeni uporabniki namizje le " +"pregledujejo. Uporabniki ne bodo imeli dovoljenja za uporabo tipkovnice in " +"miške." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Omrežni vmesnik za prisluh" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Neizbrana možnost določi, da bo strežnik prisluhnil vsem omrežnim " +"vmesnikom.\n" +"\n" +"Nastavite možnost, če želite sprejemati povezave le preko določenega " +"vmesnika: eth0, wifi0, lo ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Prisluhni nadomestnim vratom" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Izbrana možnost omogoča, da bo strežnik prisluhnil tudi na drugih vratih in " +"ne le na privzetih (5900). Vrata morajo biti določena s ključem 'nadomestna " +"vrata'." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Pomožna vrata" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Vrata, ki jim bo strežnik prisluhnil, če je izbrana možnost 'uporabe " +"nadomestnih vrat'. Veljavne vrednosti so v območju med 5000 in 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Zahtevaj šifriranje" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Izbrana možnost zahteva od oddaljenih uporabnikov, da podpirajo šifriranje. " +"Priporočljiva je uporaba odjemalca, ki podpira šifriranje." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Dovoljeni načini overitve" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Izpiše načine overitve, s katerimi lahko uporabnik dostopi do namizja.\n" +"\n" +"Podprta sta dva načina overitve; \"vnc\", ki zahteva vnos gesla pred " +"povezavo (geslo je določeno z možnostjo vnc_geslo) in \"brez\" ki dovoli " +"vsakemu uporabniku prosto povezavo." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Zahtevan je vnos gesla za \"vnc\" overitev" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Overitev z zahtevanim geslom, ki ga bo moral uporabnik vnesti, če bo želel " +"dostop do \"vnc\".\n" +"\n" +"Geslo je base64 kodirano. Posebna vrednost je 'zbirka ključev' (ki ni " +"kodiran z base64) pomeni, da je geslo shranjeno v zbirki ključev GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Elektronski naslov na katerega naj se pošlje naslov URL oddaljenega namizja" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ključ določa elektronski naslov, na katerega bo poslan naslov URL " +"oddaljenega namizja, če uporabnik klikne povezavo v možnostih oddaljenega " +"namizja." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Zakleni zaslon, ko se prekine povezava z zadnjim uporabnikom" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Izbrana možnost omogoči zaklep zaslona, po prekinitvi povezave zadnjega " +"oddaljenega uporabnika." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Nastavitev prikaza ikone stanja" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ključ nadzira obnašanje ikone stanja. Na voljo so tri možnosti: \"vedno\" - " +"ikona je vedno vidna; \"odjemalec\" - ikona bo vidna le, kadar je uporabnik " +"z računalnikom povezan (privzeto); \"nikoli\" - ikona ni nikoli vidna." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Ali naj se onemogoči ozadje namizja ob vzpostavitvi povezave" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Izbrana možnost določi, da bo ozadje namizja zamenjano z enobarvno sliko, ko " +"se uporabnik uspešno poveže." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Ali naj bo uporabljeno UPnP za posredovanje vrat na usmerjevalnik." + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Izbrana možnost določi posredovanje in odpiranje vrat le za usmerjavalnike, " +"ki podpirajo možnost UPnP s programom Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Ali naj bo razširitev XDamage v X.org onemogočena" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Izbrana možnost omogoča, da bo razširitev XDamage v X.org prezrta. " +"Razširitev na nekaterih gonilnikih, pri uporabi učinkov 3D, ne deluje " +"pravilno. Onemogočena razširitev omogoča delovanje programa vino na " +"sistemih, kjer je sprejemljiv tudi malce počasnejši izris." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Obvesti ob vzpostavitvi povezave" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Izbrana možnost omogoča prikaz obvestila ob povezavi uporabnika v sistem." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Geslo za povezavo z oddaljenim namizjem" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Datoteka ni veljavna .desktop datoteka" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Neznana različica datoteke namizja '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Zaganjanje %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program ne sprejme dokumentov preko ukazne vrstice" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nepoznana možnost zagona: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Ni mogoče poslati naslova URI dokumenta na vnos 'Vrsta=Povezava' predmeta " +"namizja" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Predmet ni izvedljiv" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Onemogoči povezavo z upravljalnikom seje" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Določitev datoteke s shranjenimi nastavitvami" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DATOTEKA" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Določi ID upravljanja seje" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Možnosti upravljanja seje:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Pokaži možnosti upravljanja seje" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer ne podpira XTest razširitve - dostop do oddaljenega namizja bo le za " +"branje\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Začni v načinu možnosti ’Souporaba namizja’" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- VNC strežnik za GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "Ukaz 'vino-passwd --help' pokaže seznam vseh ukazov na voljo." + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Oddaljena souporaba namizja" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s : oddaljeno namizje na %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Prejet signal %d, zaustavljanje." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Zaslon" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Zaslon na katerem bo prikazan pozivnik" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Napaka med zagonom libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Uporabnik za računalnikom '%s' poskuša oddaljeno pregledovati ali " +"spreminjati namizje." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Drug uporabnik si poskuša ogledati vaše namizje." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Zavrni" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Sprejmi" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Napaka med odpiranjem vodila: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Strežnik oddaljene souporabe GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;souporaba;oddaljeno;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Omogočena je souporaba namizja" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d uporabnikov pregleduje vaše namizje" +msgstr[1] "%d uporabnik pregleduje vaše namizje" +msgstr[2] "%d uporabnika pregledujeta vaše namizje" +msgstr[3] "%d uporabniki pregledujejo vaše namizje" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Prišlo je do napake med prikazovanjem možnosti" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Napaka med prikazom pomoči" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Objavljeno pod pogoji GNU Splošnega javnega dovoljenja, različica 2\n" +"\n" +"Vino je prosta programska oprema, ki jo lahko širite in spreminjate pod " +"pogoji Splošnega javnega dovoljenja\n" +"kot je objavljeno na Free Software Foundation; različica 2\n" +"ali kasnejših različic.\n" +"\n" +"Vino se razširja v upanju, da bo uporabnikom koristen,\n" +"vendar BREZ KAKRŠNEKOLI GARANCIJE; več podrobnosti je zapisanih v Splošnem " +"javnem dovoljenju.\n" +"\n" +"Pogoje uporabe ste dobili skupaj s programom. Če kopije niste dobili, pišite " +"na Free Software Foundation, Inc.\n" +"51 Franklin Street\n" +"Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Matej Urbančič" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Souporaba namizja z drugimi uporabniki" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Ali želite prekiniti povezavo '%s'?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"Povezava z oddaljenim uporabnikom '%s' bo prekinjena. Ali želite " +"nadaljevati?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Ali želite prekiniti povezave vseh oddaljenih uporabnikov?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"Povezave vseh oddaljenih uporabnikov bodo prekinjene. Ali želite nadaljevati?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Prekini povezavo" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Možnosti" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Odstrani vse povezave" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Prekini povezavo %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Pomo_č" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_O Programu" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Drug uporabnik pregleduje namizje" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Uporabnik za računalnikom '%s' poskuša oddaljeno pregledovati namizje." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Drug uporabnik nadzira namizje" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Uporabnik za računalnikom '%s' nadzira oddaljeno namizje." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Napaka med prikazovanjem opozorila v oblačku: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"Z oddaljenim uporabnikom '%s' bo povezava prekinjena. Ali želite nadaljevati?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Souporaba namizja" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' je zavrnil vabilo za souporabo namizja." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' je prekinil povezavo" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "Uporabnik '%s' oddaljeno nadzira vaše namizje." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Čakanje na '%s' za povezavo z zaslonom." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Dovoli" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Zavrni" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Prišlo je do napake:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Preklicano" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"NAPAKA: dolžina gesla je omejena na %d znakov. Ponovno vpišite geslo." +msgstr[1] "NAPAKA: dolžina gesla je omejena na %d znak. Ponovno vpišite geslo." +msgstr[2] "" +"NAPAKA: dolžina gesla je omejena na %d znaka. Ponovno vpišite geslo." +msgstr[3] "" +"NAPAKA: dolžina gesla je omejena na %d znake. Ponovno vpišite geslo." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Spreminjanje gesla.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Vpišite novo geslo: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Ponovno vpišite novo geslo: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: geslo je bilo uspešno posodobljeno.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Gesli nista skladni.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: geslo ni spremenjeno.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Pokaži različico programa" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Posodobi geslo Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Ukaz 'vino-passwd --help' prikaže seznam vseh ukazov, ki so na voljo." + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Različica paketa VINO %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"NAPAKA: ni ustreznih dovoljenj za spreminjanje gesla v programu Vino.\n" + +#~ msgid "Question" +#~ msgstr "Vprašanje" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Uporabnik z drugega računalnika poskuša oddaljeno pogledati ali " +#~ "upravljati z vašim namizjem." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Ali želite odobriti dejanje?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Izbrana možnost omogoča uporabo UPNP protokola za samodejno posredovanje " +#~ "vrat, ki jih vino uporablja na usmerjevalnik." + +#~ msgid "Remote Desktop" +#~ msgstr "Oddaljeno namizje" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Omogoči dostop do oddaljenega namizja" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME oddaljeno namizje" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Vedno pokaži ikono" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Samodejno nastavi omrežje za sprejemanje povezav" + +#~ msgid "_Never display an icon" +#~ msgstr "_Nikoli ne pokaži ikone" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Ikono pokaži le, kadar je z računalnikom _ustvarjena povezava." + +#~ msgid "_Send address by email" +#~ msgstr "_Pošlji naslov po elektronski pošti" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Kopiraj naslov v odložišče" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Največja velikost: 8 znakov" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Pred vsako prihajajočo povezavo bo treba zahtevo odobriti ali zavrniti" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "Strežnik oddaljenega namizja je že zagnan, zato bo zaustavljeno " +#~ "izvajanje ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Napaka med povezovanjem z GConf. Ali ste prijavljeni v GNOME sejo?" + +#~ msgid "Error message:" +#~ msgstr "Sporočilo o napaki:" diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 0000000..aaa841a --- /dev/null +++ b/po/sq.po @@ -0,0 +1,700 @@ +# Përkthimi i vino në shqip. +# This file is distributed under the same license as the vino package. +# Copyright (C) 2004-2008 Free Software Foundation, Inc. +# +# Elian Myftiu <elian@alblinux.net>, 2004. +# Laurent Dhima <laurenti@alblinux.net>, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: vino HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-05 14:15+0000\n" +"PO-Revision-Date: 2008-09-20 12:11+0200\n" +"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n" +"Language-Team: albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../capplet/vino-preferences.c:1097 ../capplet/vino-preferences.c:1132 +#: ../capplet/vino-preferences.c:1190 ../server/vino-dbus-listener.c:374 +#: ../server/vino-server.c:151 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Dështoi hapja e lidhjes me bus: %s\n" + +#: ../capplet/vino-preferences.c:1399 +msgid "Send this command by email" +msgstr "Dërgo këtë komandë me email" + +#: ../capplet/vino-preferences.c:1437 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Gabim gjatë shfaqjes së ndihmës:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:2 +msgid "Remote Desktop" +msgstr "Hapësira e punës në distancë" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Përcakto preferimet e hyrjes në hapësirën e punës në distancë" + +#: ../capplet/vino-preferences.glade.h:1 +msgid "<b>Network</b>" +msgstr "<b>Rrjeti</b>" + +#: ../capplet/vino-preferences.glade.h:2 +msgid "<b>Notification Area</b>" +msgstr "<b>Zona e njoftimeve</b>" + +#: ../capplet/vino-preferences.glade.h:3 +msgid "<b>Security</b>" +msgstr "<b>Siguria</b>" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Sharing</b>" +msgstr "<b>Ndarja</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "A_sk you for confirmation" +msgstr "_Kërko konfermim" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "Advanced" +msgstr "Detajuar" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Al_ways display an icon" +msgstr "Shfaq gji_thmonë një ikonë" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Allow other users to _view your desktop" +msgstr "Lejo përdoruesit e tjerë të _shohin hapësirën tuaj të punës" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Disable the _wallpaper when connected" +msgstr "Çaktivizo sfondin e hapësirës së punës kur lidhet" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Disable the wallpaper when successfull connection" +msgstr "Çaktivizon sfondin e hapësirës së punës kur lidhja ka suskses" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "General" +msgstr "Të përgjithshme" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "Remote Desktop Preferences" +msgstr "Preferimet e ambientit në distancë të punës" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:14 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"Përdoruesit në distancë janë në gjendje të kontrollojnë mouse dhe tastierën " +"tuaj" + +#: ../capplet/vino-preferences.glade.h:15 +msgid "" +"Remote users' VNC clients accessing the desktop are required to support " +"encryption" +msgstr "" +"Klientët VNC të përdoruesve në distancë që kanë hyrje në ambientin e punës " +"duhet të suportojnë kriptimin" + +#: ../capplet/vino-preferences.glade.h:16 +msgid "Screen will be locked after the last remote client disconnect" +msgstr "Ekrani do të bllokohet mbasi klienti i fundit remot të jetë shkëputur" + +#: ../capplet/vino-preferences.glade.h:17 +msgid "Some of these preferences are locked down" +msgstr "Disa nga këto pëlqime janë bllokuar" + +#: ../capplet/vino-preferences.glade.h:18 +msgid "The server will only accept connections from localhost" +msgstr "Serveri do të pranojë vetëm lidhjet nga localhost" + +# (pofilter) accelerators: accelerator _ does not occur in original and should not be in translation +# (pofilter) isreview: Check if the unit has been marked review. +#: ../capplet/vino-preferences.glade.h:19 +msgid "The server will use another port, instead of the default (5900)" +msgstr "Serveri do të përdorë një portë tjetër, në vend të portës së zakonshme (5900)" + +#: ../capplet/vino-preferences.glade.h:20 +msgid "Users can view your desktop using this command:" +msgstr "" +"Përdoruesit mund të shikojnë hapësirën tënde të punës me anë të kësaj " +"komande:" + +#: ../capplet/vino-preferences.glade.h:21 +msgid "When a user tries to view or control your desktop:" +msgstr "" +"Kur një përdorues përpiqet të shikojë apo kontrollojë hapësirën tënde të " +"punës:" + +#. tooltip in preferences applet +#: ../capplet/vino-preferences.glade.h:23 +msgid "Your desktop will be shared" +msgstr "Hapësira juaj e punës do të bashkëndahet" + +#: ../capplet/vino-preferences.glade.h:24 +msgid "_Allow other users to control your desktop" +msgstr "_Lejo përdoruesit e tjerë të kontrollojnë hapësirën tënde të punës" + +# (pofilter) accelerators: accelerator _ is missing from translation +# (pofilter) isreview: Check if the unit has been marked review. +#: ../capplet/vino-preferences.glade.h:25 +msgid "_Lock screen on disconnect" +msgstr "_Blloko ekranin në shkëputje" + +#: ../capplet/vino-preferences.glade.h:26 +msgid "_Never display an icon" +msgstr "As_njëherë mos shfaq një ikonë" + +# (pofilter) accelerators: accelerator _ is missing from translation +# (pofilter) isreview: Check if the unit has been marked review. +#: ../capplet/vino-preferences.glade.h:27 +msgid "_Only allow local connections" +msgstr "Lej_o vetëm lidhjet lokale" + +#: ../capplet/vino-preferences.glade.h:28 +msgid "_Only display an icon when there is someone connected" +msgstr "Shfaq një ikonë vetëm p_o të jetë lidhur dikush" + +#: ../capplet/vino-preferences.glade.h:29 +msgid "_Password:" +msgstr "_Fjalëkalimi:" + +# (pofilter) accelerators: accelerator _ is missing from translation +# (pofilter) isreview: Check if the unit has been marked review. +#: ../capplet/vino-preferences.glade.h:30 +msgid "_Require encryption" +msgstr "_Kërko kriptim" + +#: ../capplet/vino-preferences.glade.h:31 +msgid "_Require the user to enter this password:" +msgstr "_Kërkoji përdoruesit këtë fjalëkalim:" + +# (pofilter) accelerators: accelerator _ is missing from translation +# (pofilter) isreview: Check if the unit has been marked review. +#: ../capplet/vino-preferences.glade.h:32 +msgid "_Use an alternative port:" +msgstr "_Përdor një portë alternative:" + +#: ../server/vino-dbus-listener.c:188 ../server/vino-dbus-listener.c:218 +#: ../server/vino-dbus-listener.c:249 +#, c-format +msgid "Out of memory handling '%s' message" +msgstr "Memorja u konsumua gjatë trajtimit të meszhit '%s'" + +#: ../server/vino-dbus-listener.c:334 +#, c-format +msgid "Out of memory registering object path '%s'" +msgstr "Memorja u konsumua gjatë regjistrimit të pozicionit të objektit '%s'" + +#: ../server/vino-dbus-listener.c:411 +#, c-format +msgid "Failed to acquire D-Bus name '%s'\n" +msgstr "E pamundur marrja e emrit të D-Bus '%s'\n" + +#: ../server/vino-dbus-listener.c:419 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "" +"Shërbyesi i Hapësirës së Punës në Distancë është në ekzekutim e sipër; duke " +"dalë ...\n" + +#: ../server/vino-main.c:89 +msgid "GNOME Remote Desktop" +msgstr "Hapësira e Punës në Distancë e GNOME" + +#: ../server/vino-main.c:99 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer që po përdor nuk suporton zgjerimin XTest - do mundesh vetëm të " +"shikosh në hapësirën e punës në distancë\n" + +# (pofilter) unchanged: please translate +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:59 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +# (pofilter) startcaps: checks that the message starts with the correct capitalisation +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:71 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Hapësira e punës në distancë e %s tek %s" + +#: ../server/vino-prompt.c:142 +msgid "Screen" +msgstr "Ekrani" + +#: ../server/vino-prompt.c:143 +msgid "The screen on which to display the prompt" +msgstr "Ekrani ku do shfaqet rreshti i komandës" + +#: ../server/vino-prompt.c:343 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Një përdorues në kompjuterin '%s' po përpiqet të shikojë apo të kontrollojë " +"në distancë hapësirën tënde të punës." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "" +"<big><b>Një tjetër përdorues po përpiqet të shikojë hapësirën tënde të punës." +"</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Një përdorues në një kompjuter tjetër po përpiqet të shikojë apo kontrollojë " +"hapësirën tënde të punës." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Dëshiron t'i lejosh?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Pyetje" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:63 +msgid "_Allow" +msgstr "_Lejo" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:64 +msgid "_Refuse" +msgstr "_Ndalo" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "GNOME Remote Desktop Server" +msgstr "Server desktop në distancë GNOME" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Metodat e lejueshme të autentikimit" + +#: ../server/vino-server.schemas.in.h:2 +msgid "Alternative port number" +msgstr "Numër alternativ porte" + +#: ../server/vino-server.schemas.in.h:3 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adresa e-mail ku duhet dërguar URL e hapësirës së punës në distancë" + +#: ../server/vino-server.schemas.in.h:4 +msgid "Enable remote desktop access" +msgstr "Aktivizo hyrjen në hapësirën e punës në distancë" + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Nëse e vërtetë, lejon hyrjet në hapësirën e punës me anë të protokollit RFB. " +"Atëhere përdoruesit në kompjuterat në distancë mund të lidhen duke përdorur " +"një shikues vnc." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Nëse e vërtetë, përdoruesit që hyjnë në hapësirë e punës nuk lejohen të " +"futen deri kur përdoruesi në kompjuterin strehë lejon lidhjen. E " +"këshillueshme sidomos kur lidhja nuk është e mbrojtur me fjalëkalim." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Nëse e vërtetë, përdoruesit remotë që hyjnë në hapësirën e punës lejohen " +"vetëm ta shikojnë atë. Ata nuk do jenë në gjendje të përdorin miun apo " +"tastierën." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Nëse e vërtetë, përdoruesve remote që hyjnë në hapësirën e punës u kërkohet " +"suportojnë kriptimin. Është tepër e këshillueshme që të përdorësh një klient " +"që suporton kriptimin në mos kur rrjeti ku punohet është i sigurtë." + +#: ../server/vino-server.schemas.in.h:9 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "" +"Nëse e vërtetë, ekrani do të bllokohet mbasi klienti i fundit remot të jetë " +"shkëputur." + +# (pofilter) puncspacing: checks for bad spacing after punctuation +# (pofilter) doublequoting: checks whether doublequoting is consistent between the two strings +#: ../server/vino-server.schemas.in.h:10 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative_port' key." +msgstr "" +"Nëse e vërtetë, serveri do të vihet në \"dëgjim\" në një portë tjetër, në " +"vend të portës së zakonshme (5900). Porta duhet të jetë përcaktuar tek kyçi " +"'alternative_port'." + +# (pofilter) doublequoting: checks whether doublequoting is consistent between the two strings +#: ../server/vino-server.schemas.in.h:11 +msgid "" +"If true, the server will only accept connections from localhost and network " +"connections will be rejected. Set this option to true if you wish to " +"exclusively use a tunneling mechanism to access the server, such as ssh." +msgstr "" +"Nëse e vërtetë, serveri do të pranojë lidhjet vetëm nga localhost dhe " +"lidhjet e rrjetit do të bllokohen. Vendose këtë opsion në true nëse " +"dëshironi të përdorni ndonjë mekanizëm \"tunelimi\" për hyrje në server, si " +"p.sh. ssh." + +#: ../server/vino-server.schemas.in.h:12 +msgid "Listen an alternative port" +msgstr "Dëgjo në një portë alternative" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Rradhit mënyrat e autentikimit me të cilat përdoruesit në distancë mund të " +"lidhen me hapësirën e punës. Ka dy mënyra të mundshme autentikimi; \"vnc\" " +"pyet përdoruesin në distancë për një fjalëkalim (i cili është përcaktuar nga " +"çelësi vnc_password) përpara lidhjes dhe \"asnjë\" e cila lejon çdo " +"përdorues të lidhet në distancë." + +#: ../server/vino-server.schemas.in.h:14 +msgid "Lock the screen when last user disconnect" +msgstr "Blloko ekranin kur përdoruesi i fundit shkëputet" + +#: ../server/vino-server.schemas.in.h:15 +msgid "Only allow local connections" +msgstr "Lejo vetëm lidhjet lokale" + +#: ../server/vino-server.schemas.in.h:16 +msgid "Only allow remote users to view the desktop" +msgstr "Lejo përdoruesit në distancë vetëm të shikojnë hapësirën e punës" + +#: ../server/vino-server.schemas.in.h:17 +msgid "Password required for \"vnc\" authentication" +msgstr "Kërkohet fjalëkalimi për autentikimin \"vnc\"" + +#: ../server/vino-server.schemas.in.h:18 +msgid "Prompt the user before completing a connection" +msgstr "Pyet përdoruesin përpara mbarimit të lidhjes" + +#: ../server/vino-server.schemas.in.h:19 +msgid "Require encryption" +msgstr "Kërko kriptim" + +# (pofilter) puncspacing: checks for bad spacing after punctuation +#: ../server/vino-server.schemas.in.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"Fjalëkalimi që përdoruesi në distancë do pyetet nëse përdoret mënyra e " +"autentikimit \"vnc\". Fjalëkalimi i përcaktuar nga çelësi është kodifikuar " +"në bazë64." + +# (pofilter) doublequoting: checks whether doublequoting is consistent between the two strings +#: ../server/vino-server.schemas.in.h:21 +msgid "" +"The port which the server will listen to if the 'use_alternative_port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"Porta në të cilën serveri do të vihet në \"dëgjim\" nëse kyçi " +"'use_alternative_port' të jetë vendosur në true. Vlera të vlefshme janë nga " +"5000 në 50000." + +#: ../server/vino-server.schemas.in.h:22 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"Kjo vlerë kontrollon sjelljen e ikonës së gjendjes. Ka tre opsione: " +"\"gjithmonë\" - ikona do të gjendet gjithmonë aty; \"klient\" - do të " +"shikoni ikonën vetëm kur dikush të jetë lidhur, kjo është dhe sjellja e " +"paracaktuar; \"asnjëherër\" - ikona nuk do të shfaqet asnjëherë." + +#: ../server/vino-server.schemas.in.h:23 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Ky çelës përcakton adresën e-mail tek e cila URL e hapësirës së punës në " +"distancë duhet dërguar nëse përdoruesi klikon mbi URL në dialogun e " +"pëlqimeve të programit." + +#: ../server/vino-server.schemas.in.h:24 +msgid "When the status icon should be shown" +msgstr "Kur duhet shfaqur ikona e gjëndjes" + +#: ../server/vino-server.schemas.in.h:25 +msgid "When true, disable the background on receive valid session" +msgstr "Nëse E VËRTETË, çaktivizo sfondin kur merret një seancë e vlefshme" + +#: ../server/vino-status-icon.c:102 +msgid "Desktop sharing is enabled" +msgstr "Bashkëndarja e hapësirës së punës është aktivuar" + +# (pofilter) variables: translation contains variables not in original: %d +# (pofilter) isreview: Check if the unit has been marked review. +# (pofilter) startcaps: checks that the message starts with the correct capitalisation +# (pofilter) printf: checks whether printf format strings match +#: ../server/vino-status-icon.c:110 +#, c-format +msgid "One person is connected" +msgid_plural "%d people are connected" +msgstr[0] "Një person është i lidhur" +msgstr[1] "%d persona janë të lidhur" + +#: ../server/vino-status-icon.c:245 +#, c-format +msgid "" +"There was an error displaying preferences:\n" +" %s" +msgstr "" +"Gabim gjatë shfaqjes së preferimeve:\n" +"%s" + +#: ../server/vino-status-icon.c:253 +#, c-format +msgid "" +"There was an error displaying help:\n" +" %s" +msgstr "" +"Gabim gjatë shfaqjes së ndihmës:\n" +"%s" + +# (pofilter) puncspacing: checks for bad spacing after punctuation +# (pofilter) sentencecount: The number of sentences differ: 4 versus 5 +# (pofilter) newlines: line endings in original don't match line endings in translation +# (pofilter) acronyms: acronyms should not be translated: WITHOUT, ANY, WARRANTY, MERCHANTABILITY, FITNESS, FOR, PARTICULAR, PURPOSE +# (pofilter) doublespacing: checks for bad double-spaces by comparing to original +#: ../server/vino-status-icon.c:276 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Liçensuar nën GNU General Public License Versioni 2\n" +"\n" +"Vino është program i lirë; ju mund t'a rishpërndani dhe/ose\n" +"ndryshoni atë sipas kushteve të Liçencës Publike të Përgjithshme\n" +"GNU sikurse publikuar nga Free Software Foundation; sipas\n" +"versionit 2 të Liçencës, ose (sipas opinionit tuaj) çdo versioni\n" +"të mëvonshëm.\n" +"\n" +"Vino shpërndahet me dëshirën që të jetë i vlefshëm për ju,\n" +"por PA ASNJË LLOJ GARANCIE; pa garancinë preçize të SHITJES\n" +"apo PËRDORIMIT PËR NJË QËLLIM PREÇIZ. Shiko Liçencën Publike\n" +"të Përgjithshme GNU për hollësi të tjera.\n" +"\n" +"Së bashku me këtë program duhet të keni marrë edhe një kopje\n" +"të Liçencës Publike të Përgjithshme GNU. Nëse jo, kërkoje tek\n" +"write to the Free Software Foundation, Inc., 51 Franklin Street,\n" +"Fifth Floor, Boston, MA 02110-1301, USA.\n" + +# (pofilter) credits: checks for messages containing translation credits instead of normal translations. +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:291 +msgid "translator-credits" +msgstr "" +"Elian Myftiu <elian@alblinux.net>\n" +"Laurent Dhima <laurenti@alblinux.net>" + +#: ../server/vino-status-icon.c:297 +msgid "Share your desktop with other users" +msgstr "Bashkëndaj hapësirën tënde të punës me përdorues të tjerë" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:361 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Je i sigurt që dëshiron të shkëputësh '%s'?" + +#: ../server/vino-status-icon.c:363 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Përdoruesi remot nga '%s' do të shkëputet. Je i sigurt?" + +#: ../server/vino-status-icon.c:368 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Je i sigurt që dëshiron të shkëputësh të gjithë klientët?" + +#: ../server/vino-status-icon.c:369 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Të gjithë përdoruesit remotë do të shkëputen. Je i sigurt?" + +#: ../server/vino-status-icon.c:381 +msgid "Disconnect" +msgstr "Shkëput" + +#: ../server/vino-status-icon.c:407 +msgid "_Preferences" +msgstr "_Preferimet" + +#: ../server/vino-status-icon.c:422 +msgid "Disconnect all" +msgstr "Shkëputi të gjithë" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:446 +#, c-format +msgid "Disconnect %s" +msgstr "Shkëput %s" + +#: ../server/vino-status-icon.c:466 +msgid "_Help" +msgstr "_Ndihmë" + +#: ../server/vino-status-icon.c:474 +msgid "_About" +msgstr "_Informacione" + +#: ../server/vino-status-icon.c:603 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Gabim gjatë nisjes së libnotify\n" + +#: ../server/vino-status-icon.c:623 +msgid "Another user is viewing your desktop" +msgstr "Një përdorues tjetër është duke shikuar hapësirën tënde të punës" + +#: ../server/vino-status-icon.c:624 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Një përdorues në kompjuterin '%s' po shikon në distancë hapësirën tënde të " +"punës." + +#: ../server/vino-status-icon.c:629 +msgid "Another user is controlling your desktop" +msgstr "Një tjetër përdorues po kontrollon hapësirën tënde të punës" + +#: ../server/vino-status-icon.c:630 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Një përdorues në kompjuterin '%s' po kontrollon në distancë hapësirën tënde " +"të punës." + +#: ../server/vino-status-icon.c:652 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Gabim gjatë shfaqjes së flluskës njoftuse: %s\n" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password.\n" +msgstr "" +"GABIM: Gjatësia maksimum e fjalëkalimit është %d simbole. Të lutem, " +"rishkruaj fjalëkalimin.\n" + +#: ../tools/vino-passwd.c:145 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Ndryshimi i fjalëkalimit të Vino.\n" + +#: ../tools/vino-passwd.c:147 +msgid "Enter new Vino password: " +msgstr "Shkruaj fjalëkalimin e ri të Vino: " + +#: ../tools/vino-passwd.c:150 +msgid "Retype new Vino password: " +msgstr "Rishkruaj fjalëkalimin e ri të Vino: " + +#: ../tools/vino-passwd.c:156 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: fjalëkalimi u përditësua me sukses.\n" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Më vjen keq, fjalëkalimet nuk përputhen.\n" + +#: ../tools/vino-passwd.c:161 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: fjalëkalimi nuk u ndryshua.\n" + +#: ../tools/vino-passwd.c:176 +msgid "Show Vino version" +msgstr "Shfaq versionin e Vino" + +#: ../tools/vino-passwd.c:185 +msgid "- Updates Vino password" +msgstr "- Përditëson fjalëkalimin e Vino" + +#: ../tools/vino-passwd.c:195 +msgid "Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Ekzekuto 'vino-passwd --help' për të shikuar listën e plotë me opsionet në " +"dispozicion të rreshtit të komandës" + +#: ../tools/vino-passwd.c:202 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO, Versioni %s\n" + +#: ../tools/vino-passwd.c:211 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "" +"GABIM: Nuk keni të drejta të mjaftueshme për të ndryshuar fjalëkalimin e " +"Vino.\n" + diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..913fd07 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,794 @@ +# Serbian translation of vino +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003 — 2013. +# This file is distributed under the same license as the vino package. +# Maintainer: Данило Шеган <danilo@gnome.org> +# Reviewed on 2005-09-03 by Андрија Зарић <andrija@gmail.com> +# Translated on 2009-05-10 by Бранко Кокановић <branko.kokanovic@gmail.com> +# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2013. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&k" +"eywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-01-30 10:52+0200\n" +"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" + +# bug: don't use spaces for alignment +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Дошло је до грешке приказивања адресе „%s“" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Дошло је до грешке приказивања помоћи:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Проверавам повезивост овог рачунара..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Ваша радна површ је доступна само преко локалне мреже." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " или " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Остали могу приступити овом рачунару користећи адресу %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Нико не може да приступи вашој радној површи." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Дељење радне површи" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Изаберите како остали корисници могу удаљено да гледају вашу радну површ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Поставке дељења радне површи" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Дељење" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Неке од ових поставки су закључане" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Допусти осталим _корисницима да гледају радну површ" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Ваша радна површ ће бити дељена" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Остали корисници могу да управљају вашом радном површи" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Удаљени корисници могу да контролишу миша и тастатуру" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Безбедност" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Ви морате одобрити сваки приступ овом рачунару" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Захтевај да корисник унесе ову лозинку:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "Аутоматски _подеси УПнП усмеривач да отвори и проследи порт" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Усмеривач мора да има омогућен УПнП" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Иконица у обавештајној зони" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Увек" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Само када је неко повезан" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Никад" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Удаљени приступ радној површи" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Ако је постављено, дозвољава удаљени приступ радној површи помоћу РФБ " +"протокола. Корисници удаљених машина се онда могу повезати на радну површ " +"помоћу ВНЦ прегледача." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Пита корисника пре успостављања везе" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ако је постављено, удаљеним корисницима приступ радној површи се не одобрава " +"док корисник домаћина не одобри везу. Препоручује се нарочито када приступ " +"није заштићен лозинком." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Дозвољава удаљеним корисницима само да гледају радну површ" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ако је постављено, удаљеним корисницима се дозвољава једино преглед радне " +"површи. Удаљени корисници неће моћи да користе миша или тастатуру." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Мрежни уређај на коме се слуша" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ако није постављено, сервер ће ослушкивати на свим мрежним уређајима.\n" +"\n" +"Поставите ово ако желите да прихватате везе само са неког одређеног мрежног " +"уређаја. На пример: „eth0, wifi0, lo,“ и тако даље." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Ослушкивање на алтернативном порту" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ако је постављено, сервер ће ослушкивати на другом прикључнику уместо " +"подразумеваног (5900). Прикључник се мора навести у кључу „alternative-port“." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Алтернативни број прикључника" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Прикључник на којем ће сервер радити ако је постављен кључ „use-alternative-" +"port“. Допуштене вредности су у опсегу од 5000 до 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Захтева шифровање" + +# bug: s/encyrption/encryption/ +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ако је постављено, удаљени корисници који приступају радној површи морају да " +"подржавају шифровање. Препоручује се да користите клијента који подржава " +"шифровање осим ако се не налазите у поузданој мрежи." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Допуштени начини идентификације" + +# andrija: none у последњем реду +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Исписује начине идентификације којима удаљени корисник може приступити " +"радној површи.\n" +"\n" +"Постоје два могућа начина идентификације; „vnc“ од удаљеног корисника тражи " +"лозинку (лозинка се наводи у кључу vnc-password) пре повезивања, а „none“ " +"допушта свим удаљеним корисницима да се повежу." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Лозинка неопходна за „vnc“ идентификацију" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Лозинка која ће се тражити од удаљеног корисника ако се користи „vnc“ начин " +"идентификације. Лозинка одређена кључем је 64-базно шифрована.\n" +"\n" +"Посебна вредност „привеска“ (која није важећа 64-базна) значи да је лозинка " +"сачувана у Гномовом привеску." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Адреса ел. поште на коју треба послати адресу удаљене радне површи" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Овај кључ наводи адресу ел. поште на коју ће се слати адреса удаљене радне " +"површи када корисник кликне на адресу у прозорчету за поставке удаљене радне " +"површи." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Закључава екран по одјави последњег корисника" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ако је постављено, екран ће бити закључан пошто се последњи удаљени корисник " +"одјави." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Када треба приказати иконицу стања" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Овај кључ одређује понашање иконице стања. Могуће су три вредности: " +"„always“ (увек) — иконица је увек приказана; „client“ (клијент) — иконица је " +"приказана само док је неко повезан (ово је подразумевано понашање); " +"„never“ (никада) — иконица се не приказује." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Искључивање позадине радне површи када је корисник повезан" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Када је изабрано, искључује позадину радне површи и замењује је једним " +"блоком боје када се корисник успешно повеже." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Коришћење УПнП усмеривача за прослеђивање и отварање прикључника" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ако је изабрано, захтева да УПнП способан усмеривач треба да проследи и " +"отвори прикључник кога користи Вино." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Да ли искључити XDamage додатак X.org-а" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ако је постављено, неће се користити XDamage додатак X.org-а. Овај додатак " +"не ради правилно на неким видео драјверима када се користе 3Д ефекти. " +"Његовим искључивањем ће Вино радити и у таквим окружењима, али са споријим " +"исцртавањем као споредним ефектом." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Обавештење при повезивању" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ако је постављено, приказује обавештење када се корисник повеже на систем." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Лозинка дељења удаљене радне површи" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ово није исправна „.desktop“ датотека" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Непознато издање датотеке радне површи „%s“" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Покрећем %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Програм не прихвата документе из линије наредби" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Непозната опција покретања: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Не могу да проследим адресе докумената на „Type=Link“ унос" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Није ставка за покретање" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Искључује везу са управником сесије" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Наводи датотеку која садржи сачувана подешавања" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ДАТОТЕКА" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Наводи ИБ управника сесије" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ИБ" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Могућности управљања сесијом:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Приказује могућности управљања сесијом" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Ваш Х сервер не подржава проширење Х теста — могуће је само гледати удаљену " +"радну површ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Покреће се у режиму цеви, за функцију „Дели моју радну површ“" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "— Гномов ВНЦ сервер" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "Покрените „vino-server --help“ за потпун списак доступних опција" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Гномово дељење радне површи" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +# note(slobo): ово нама не треба...нејасни су у овом тренутку :( +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Удаљена радна површ корисника %s на %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Примљен је сигнал %d, излазим." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Екран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Екран за приказивање упита" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Грешка покретања библиотеке обавештавања\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Корисник рачунара „%s“ покушава да издалека прегледа или управља вашом " +"радном површи." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Други корисник покушава да гледа вашу радну површ." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Одбиј" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Прихвати" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Не могу да отворим везу са сабирницом: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сервер Гномове удаљене радне површи" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "внц;дели;удаљено;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Дељење радне површи је омогућено" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d корисник прегледа вашу радну површ" +msgstr[1] "%d корисника прегледају вашу радну површ" +msgstr[2] "%d корисника прегледа вашу радну површ" +msgstr[3] "Један корисник прегледа вашу радну површ" + +# bug: don't use spaces for alignment +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Грешка приказивања поставки" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Грешка приказивања помоћи" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Објављено под ГНУ Општом јавном лиценцом издање 2\n" +"\n" +"Овај програм је слободан софтвер; можете га прослеђивати и/или мењати под " +"условима \n" +"ГНУ Опште јавне лиценце коју је објавила Задужбина слободног софтвера; било " +"верзије \n" +"2 лиценце или (по вашем избору) било које новије верзије.\n" +"\n" +"Овај програм се расподељује у нади да ће бити користан, али БЕЗ ИКАКВЕ " +"ГАРАНЦИЈЕ; \n" +"чак и без примењене гаранције ТРЖИШНЕ ВРЕДНОСТИ или ПРИЛАГОЂЕНОСТИ ОДРЕЂЕНОЈ " +"НАМЕНИ. \n" +"Погледајте ГНУ Општу јавну лиценцу за више детаља.\n" +"\n" +"Требали сте да примите примерак ГНУ Опште јавне лиценце уз %s; ако нисте,\n" +"пишите Задужбини слободног софтва на адресу: Free Software Foundation, " +"Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, Boston, MA 02111-1307 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Данило Шеган <danilo@gnome.org>\n" +"Андрија Зарић <andrija@gmail.com>\n" +"Бранко Кокановић <branko.kokanovic@gmail.com>\n" +"Мирослав Николић <miroslavnikolic@rocketmail.com>\n" +"\n" +"http://prevod.org — превод на српски језик" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Делите вашу радну површ са другима" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Да ли сигурно желите да искључите „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Удаљени корисник са „%s“ ће бити искључен. Да ли сте сигурни?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Сигурно желите да искључите све клијенте?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Сви удаљени корисници ће бити искључени. Да ли сте сигурни?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Искључи" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Поставке" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Искључи све" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Искључи „%s“" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "По_моћ" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_О програму" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Неки корисник прегледа вашу радну површ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Корисник рачунара „%s“ издалека прегледа вашу радну површ." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Неки корисник управља вашом радном површи" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Корисник рачунара „%s“ издалека управља вашом радном површи." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Грешка приказивања облачића обавештења: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Удаљени корисник са „%s“ ће бити искључен. Да ли сте сигурни?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Дели податке из моје радне површи" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s“ је одбио да подели своју радну површ." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s“ је искључен" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s“ издалека управља вашом радном површином." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Чекам да се „%s“ повеже на екран." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Допусти" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Одбиј" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Дошло је до грешке:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Отказано" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "ГРЕШКА: Највећа дужина лозинке је %d знак. Поново унесите лозинку." +msgstr[1] "ГРЕШКА: Највећа дужина лозинке је %d знака. Поново унесите лозинку." +msgstr[2] "" +"ГРЕШКА: Највећа дужина лозинке је %d знакова. Поново унесите лозинку." +msgstr[3] "" +"ГРЕШКА: Највећа дужина лозинке је један знак. Поново унесите лозинк." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Промена Винове лозинке.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Унеси нову лозинку: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Поново унеси нову лозинку: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "вино-лозинка: лозинка је успешно ажурирана.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Лозинке се не поклапају.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "вино-лозинка: лозинка није промењена.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Приказује издање програма Вино" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "— Ажурирајте лозинку програма Вино" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Покрените „vino-passwd --help“ да прикажете потпун списак доступних опција " +"наредби" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "ВИНО издање %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ГРЕШКА: Немате дозволу да промените лозинку програма Вино.\n" diff --git a/po/sr@latin.po b/po/sr@latin.po new file mode 100644 index 0000000..e7eeffc --- /dev/null +++ b/po/sr@latin.po @@ -0,0 +1,794 @@ +# Serbian translation of vino +# Courtesy of Prevod.org team (http://prevod.org/) -- 2003 — 2013. +# This file is distributed under the same license as the vino package. +# Maintainer: Danilo Šegan <danilo@gnome.org> +# Reviewed on 2005-09-03 by Andrija Zarić <andrija@gmail.com> +# Translated on 2009-05-10 by Branko Kokanović <branko.kokanovic@gmail.com> +# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2013. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&k" +"eywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-01-30 10:52+0200\n" +"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n" +"Language-Team: Serbian <gnom@prevod.org>\n" +"Language: sr@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" + +# bug: don't use spaces for alignment +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Došlo je do greške prikazivanja adrese „%s“" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Došlo je do greške prikazivanja pomoći:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Proveravam povezivost ovog računara..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Vaša radna površ je dostupna samo preko lokalne mreže." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ili " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Ostali mogu pristupiti ovom računaru koristeći adresu %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Niko ne može da pristupi vašoj radnoj površi." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Deljenje radne površi" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "" +"Izaberite kako ostali korisnici mogu udaljeno da gledaju vašu radnu površ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Postavke deljenja radne površi" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Deljenje" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Neke od ovih postavki su zaključane" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Dopusti ostalim _korisnicima da gledaju radnu površ" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Vaša radna površ će biti deljena" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "_Ostali korisnici mogu da upravljaju vašom radnom površi" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Udaljeni korisnici mogu da kontrolišu miša i tastaturu" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Bezbednost" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Vi morate odobriti svaki pristup ovom računaru" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Zahtevaj da korisnik unese ovu lozinku:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "Automatski _podesi UPnP usmerivač da otvori i prosledi port" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "Usmerivač mora da ima omogućen UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Ikonica u obaveštajnoj zoni" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Uvek" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Samo kada je neko povezan" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Nikad" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Udaljeni pristup radnoj površi" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Ako je postavljeno, dozvoljava udaljeni pristup radnoj površi pomoću RFB " +"protokola. Korisnici udaljenih mašina se onda mogu povezati na radnu površ " +"pomoću VNC pregledača." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Pita korisnika pre uspostavljanja veze" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ako je postavljeno, udaljenim korisnicima pristup radnoj površi se ne odobrava " +"dok korisnik domaćina ne odobri vezu. Preporučuje se naročito kada pristup " +"nije zaštićen lozinkom." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Dozvoljava udaljenim korisnicima samo da gledaju radnu površ" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Ako je postavljeno, udaljenim korisnicima se dozvoljava jedino pregled radne " +"površi. Udaljeni korisnici neće moći da koriste miša ili tastaturu." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Mrežni uređaj na kome se sluša" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Ako nije postavljeno, server će osluškivati na svim mrežnim uređajima.\n" +"\n" +"Postavite ovo ako želite da prihvatate veze samo sa nekog određenog mrežnog " +"uređaja. Na primer: „eth0, wifi0, lo,“ i tako dalje." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Osluškivanje na alternativnom portu" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Ako je postavljeno, server će osluškivati na drugom priključniku umesto " +"podrazumevanog (5900). Priključnik se mora navesti u ključu „alternative-port“." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Alternativni broj priključnika" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Priključnik na kojem će server raditi ako je postavljen ključ „use-alternative-" +"port“. Dopuštene vrednosti su u opsegu od 5000 do 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Zahteva šifrovanje" + +# bug: s/encyrption/encryption/ +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ako je postavljeno, udaljeni korisnici koji pristupaju radnoj površi moraju da " +"podržavaju šifrovanje. Preporučuje se da koristite klijenta koji podržava " +"šifrovanje osim ako se ne nalazite u pouzdanoj mreži." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Dopušteni načini identifikacije" + +# andrija: none u poslednjem redu +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Ispisuje načine identifikacije kojima udaljeni korisnik može pristupiti " +"radnoj površi.\n" +"\n" +"Postoje dva moguća načina identifikacije; „vnc“ od udaljenog korisnika traži " +"lozinku (lozinka se navodi u ključu vnc-password) pre povezivanja, a „none“ " +"dopušta svim udaljenim korisnicima da se povežu." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Lozinka neophodna za „vnc“ identifikaciju" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Lozinka koja će se tražiti od udaljenog korisnika ako se koristi „vnc“ način " +"identifikacije. Lozinka određena ključem je 64-bazno šifrovana.\n" +"\n" +"Posebna vrednost „priveska“ (koja nije važeća 64-bazna) znači da je lozinka " +"sačuvana u Gnomovom privesku." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adresa el. pošte na koju treba poslati adresu udaljene radne površi" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ovaj ključ navodi adresu el. pošte na koju će se slati adresa udaljene radne " +"površi kada korisnik klikne na adresu u prozorčetu za postavke udaljene radne " +"površi." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Zaključava ekran po odjavi poslednjeg korisnika" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Ako je postavljeno, ekran će biti zaključan pošto se poslednji udaljeni korisnik " +"odjavi." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Kada treba prikazati ikonicu stanja" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ovaj ključ određuje ponašanje ikonice stanja. Moguće su tri vrednosti: " +"„always“ (uvek) — ikonica je uvek prikazana; „client“ (klijent) — ikonica je " +"prikazana samo dok je neko povezan (ovo je podrazumevano ponašanje); " +"„never“ (nikada) — ikonica se ne prikazuje." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Isključivanje pozadine radne površi kada je korisnik povezan" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Kada je izabrano, isključuje pozadinu radne površi i zamenjuje je jednim " +"blokom boje kada se korisnik uspešno poveže." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Korišćenje UPnP usmerivača za prosleđivanje i otvaranje priključnika" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Ako je izabrano, zahteva da UPnP sposoban usmerivač treba da prosledi i " +"otvori priključnik koga koristi Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Da li isključiti XDamage dodatak X.org-a" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Ako je postavljeno, neće se koristiti XDamage dodatak X.org-a. Ovaj dodatak " +"ne radi pravilno na nekim video drajverima kada se koriste 3D efekti. " +"Njegovim isključivanjem će Vino raditi i u takvim okruženjima, ali sa sporijim " +"iscrtavanjem kao sporednim efektom." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Obaveštenje pri povezivanju" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Ako je postavljeno, prikazuje obaveštenje kada se korisnik poveže na sistem." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Lozinka deljenja udaljene radne površi" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ovo nije ispravna „.desktop“ datoteka" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Nepoznato izdanje datoteke radne površi „%s“" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Pokrećem %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Program ne prihvata dokumente iz linije naredbi" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Nepoznata opcija pokretanja: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Ne mogu da prosledim adrese dokumenata na „Type=Link“ unos" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Nije stavka za pokretanje" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Isključuje vezu sa upravnikom sesije" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Navodi datoteku koja sadrži sačuvana podešavanja" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DATOTEKA" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Navodi IB upravnika sesije" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "IB" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Mogućnosti upravljanja sesijom:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Prikazuje mogućnosti upravljanja sesijom" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Vaš H server ne podržava proširenje H testa — moguće je samo gledati udaljenu " +"radnu površ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Pokreće se u režimu cevi, za funkciju „Deli moju radnu površ“" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "— Gnomov VNC server" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "Pokrenite „vino-server --help“ za potpun spisak dostupnih opcija" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Gnomovo deljenje radne površi" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +# note(slobo): ovo nama ne treba...nejasni su u ovom trenutku :( +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Udaljena radna površ korisnika %s na %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Primljen je signal %d, izlazim." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Ekran za prikazivanje upita" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Greška pokretanja biblioteke obaveštavanja\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Korisnik računara „%s“ pokušava da izdaleka pregleda ili upravlja vašom " +"radnom površi." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Drugi korisnik pokušava da gleda vašu radnu površ." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "Odbij" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Prihvati" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Ne mogu da otvorim vezu sa sabirnicom: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Server Gnomove udaljene radne površi" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;deli;udaljeno;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Deljenje radne površi je omogućeno" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d korisnik pregleda vašu radnu površ" +msgstr[1] "%d korisnika pregledaju vašu radnu površ" +msgstr[2] "%d korisnika pregleda vašu radnu površ" +msgstr[3] "Jedan korisnik pregleda vašu radnu površ" + +# bug: don't use spaces for alignment +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Greška prikazivanja postavki" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Greška prikazivanja pomoći" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Objavljeno pod GNU Opštom javnom licencom izdanje 2\n" +"\n" +"Ovaj program je slobodan softver; možete ga prosleđivati i/ili menjati pod " +"uslovima \n" +"GNU Opšte javne licence koju je objavila Zadužbina slobodnog softvera; bilo " +"verzije \n" +"2 licence ili (po vašem izboru) bilo koje novije verzije.\n" +"\n" +"Ovaj program se raspodeljuje u nadi da će biti koristan, ali BEZ IKAKVE " +"GARANCIJE; \n" +"čak i bez primenjene garancije TRŽIŠNE VREDNOSTI ili PRILAGOĐENOSTI ODREĐENOJ " +"NAMENI. \n" +"Pogledajte GNU Opštu javnu licencu za više detalja.\n" +"\n" +"Trebali ste da primite primerak GNU Opšte javne licence uz %s; ako niste,\n" +"pišite Zadužbini slobodnog softva na adresu: Free Software Foundation, " +"Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, Boston, MA 02111-1307 USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Danilo Šegan <danilo@gnome.org>\n" +"Andrija Zarić <andrija@gmail.com>\n" +"Branko Kokanović <branko.kokanovic@gmail.com>\n" +"Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n" +"\n" +"http://prevod.org — prevod na srpski jezik" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Delite vašu radnu površ sa drugima" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Da li sigurno želite da isključite „%s“?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Udaljeni korisnik sa „%s“ će biti isključen. Da li ste sigurni?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Sigurno želite da isključite sve klijente?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Svi udaljeni korisnici će biti isključeni. Da li ste sigurni?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Isključi" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Postavke" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Isključi sve" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Isključi „%s“" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Po_moć" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_O programu" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Neki korisnik pregleda vašu radnu površ" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Korisnik računara „%s“ izdaleka pregleda vašu radnu površ." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Neki korisnik upravlja vašom radnom površi" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Korisnik računara „%s“ izdaleka upravlja vašom radnom površi." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Greška prikazivanja oblačića obaveštenja: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Udaljeni korisnik sa „%s“ će biti isključen. Da li ste sigurni?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Deli podatke iz moje radne površi" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "„%s“ je odbio da podeli svoju radnu površ." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "„%s“ je isključen" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "„%s“ izdaleka upravlja vašom radnom površinom." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Čekam da se „%s“ poveže na ekran." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Dopusti" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Odbij" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Došlo je do greške:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Otkazano" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "GREŠKA: Najveća dužina lozinke je %d znak. Ponovo unesite lozinku." +msgstr[1] "GREŠKA: Najveća dužina lozinke je %d znaka. Ponovo unesite lozinku." +msgstr[2] "" +"GREŠKA: Najveća dužina lozinke je %d znakova. Ponovo unesite lozinku." +msgstr[3] "" +"GREŠKA: Najveća dužina lozinke je jedan znak. Ponovo unesite lozink." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Promena Vinove lozinke.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Unesi novu lozinku: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Ponovo unesi novu lozinku: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-lozinka: lozinka je uspešno ažurirana.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Lozinke se ne poklapaju.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-lozinka: lozinka nije promenjena.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Prikazuje izdanje programa Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "— Ažurirajte lozinku programa Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Pokrenite „vino-passwd --help“ da prikažete potpun spisak dostupnih opcija " +"naredbi" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO izdanje %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "GREŠKA: Nemate dozvolu da promenite lozinku programa Vino.\n" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..0fd2caf --- /dev/null +++ b/po/sv.po @@ -0,0 +1,1125 @@ +# Swedish messages for vino. +# Copyright © 2004, 2006, 2007, 2008, 2009, 2011, 2012, 2014 Free Software Foundation, Inc. +# Christian Rose <menthos@menthos.com>, 2004. +# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2008, 2009, 2011, 2012. +# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2015-03-14 00:15+0000\n" +"PO-Revision-Date: 2014-05-22 23:14+0100\n" +"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.4\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Fråga användaren innan en anslutning färdigställs" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Om detta är sant tillåts inte fjärranvändare ansluta till skrivbordet innan " +"användaren på värddatorn godkänner anslutningen. Rekommenderas särskilt om " +"åtkomsten inte skyddas av ett lösenord." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Tillåt endast fjärranvändare att se skrivbordet" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Om detta är sant tillåts fjärranvändare endast att se skrivbordet. " +"Fjärranvändare kommer inte att kunna använda musen eller tangentbordet." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Nätverksgränssnitt att lyssna på" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Om inte inställd kommer servern att lyssna på alla nätverksgränssnitt.\n" +"\n" +"Ställ in detta om du endast vill acceptera anslutningar på specifika " +"nätverksgränssnitt, t.ex: eth0, wifi0, lo och så vidare." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Lyssna på en alternativ port" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Om sant kommer servern att lyssna på en annan port istället för " +"standardporten (5900). Porten måste anges i nyckeln \"alternative-port\"." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternativt portnummer" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Porten som servern kommer att lyssna på om nyckeln \"use-alternative-port\" " +"är inställd till sant. Giltiga värden är i intervallet 5000 upp till 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Kräv kryptering" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Om detta är sant krävs det att fjärranvändare som vill komma åt skrivbordet " +"har stöd för kryptering. Det rekommenderas varmt att du använder en klient " +"som har stöd för kryptering såvida du inte litar på det mellanliggande " +"nätverket." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Tillåtna autentiseringsmetoder" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Listar de autentiseringsmetoder som fjärranvändare kan använda för att komma " +"åt skrivbordet.\n" +"\n" +"Det finns två möjliga autentiseringsmetoder; \"vnc\" gör att fjärranvändaren " +"tillfrågas om ett lösenord (lösenordet anges av nyckeln vnc-password) innan " +"anslutning, och \"none\" som tillåter vilken fjärranvändare som helst att " +"ansluta." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Lösenord krävs för \"vnc\"-autentisering" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Det lösenord som fjärranvändaren kommer att efterfrågas om " +"autentiseringsmetoden \"vnc\" används. Lösenordet som anges av nyckeln är " +"base64-kodat.\n" +"\n" +"Det speciella värdet \"keyring\" (som inte är giltig base64) betyder att " +"lösenordet är lagrat i GNOME-nyckelringen." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "E-postadress till vilken fjärrskrivbords-URL:en ska skickas" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Denna nyckel anger e-postadressen till vilken URL:en till fjärrskrivbordet " +"ska skickas om användaren klickar på URL:en i inställningsdialogen för " +"skrivbordsdelning." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Lås skärmen när sista användaren kopplar från" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Om sant kommer skärmen att låsas efter att den sista fjärrklienten kopplar " +"från." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "När statusikonen ska visas" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Denna nyckel bestämmer beteendet för statusikonen. Det finns tre alternativ: " +"\"always\" - Ikonen kommer alltid att visas; \"client\" - Ikonen visas " +"endast när någon är ansluten (detta är standardbeteendet); \"never\" - " +"Ikonen visas aldrig." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Huruvida skrivbordsbakgrunden ska inaktiveras när en användare är ansluten" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Då detta är sant inaktiveras skrivbordsbakgrunden och ersätts med en " +"enfärgad bakgrund då en användare ansluter." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Huruvida en UPnP-router ska användas för att vidarebefordra och öppna portar" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Om sant begärs att en UPnP-kapabel router ska vidarebefordra och öppna " +"porten som används av Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Huruvida vi ska inaktivera X.org-utökningen XDamage" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Om sant används inte X.org-utökningen XDamage. Denna utökning fungerar inte " +"korrekt med vissa grafikdrivrutiner när 3D-effekter används. Att inaktivera " +"den kommer att göra att Vino fungerar i dessa miljöer med långsammare " +"rendering som en sidoeffekt." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Avisera vid anslutning" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "Om sant visas en avisering när en användare ansluter till systemet." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Filen är inte en giltig .desktop-fil" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Okänd Version ”%s” i skrivbordsfil" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Startar %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Programmet accepterar inte dokument på kommandoraden" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Okänd startflagga: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Kan inte skicka dokument-URI:er till ett ”Type=Link”-skrivbordsobjekt" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Inte ett startbart objekt" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Inaktivera anslutning till sessionshanterare" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Ange fil som innehåller sparad konfiguration" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FIL" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Ange ID för sessionshantering" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Flaggor för sessionshantering:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Visa flaggor för sessionshantering" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Din X-server stöder inte XTest-tillägget -- åtkomst till fjärrskrivbord " +"kommer att vara endast med visning\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Starta i tubläge, för funktionen ”Dela mitt skrivbord”" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- VNC-server för GNOME" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Kör ”vino-server --help” för en komplett lista över tillgängliga " +"kommandoradsflaggor" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "GNOME-skrivbordsdelning" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "1" + +# Avstängd enligt strängen "vino-mdns:showusername" +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Fjärrskrivbord för %s på %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Tog emot signal %d, avslutar." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Skärm" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Skärmen på vilken frågan ska visas" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Fel vid initiering av libnotify\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"En användare på datorn ”%s” försöker att se eller fjärrstyra ditt skrivbord " +"över nätverket." + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "En annan användare försöker att se ditt skrivbord." + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "Neka" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "Acceptera" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Misslyckades med att öppna anslutning mot bussen: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Skrivbordsdelning" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME-skrivbordsdelningsserver" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;delning;fjärrskrivbord;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Skrivbordsdelning är aktiverat" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "En person ser på ditt skrivbord" +msgstr[1] "%d personer ser på ditt skrivbord" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Fel vid visning av inställningarna" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Fel vid visning av hjälp" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Licensierad under GNU General Public License version 2\n" +"\n" +"Vino är fri programvara. Du kan distribuera det och/eller\n" +"modifiera det under villkoren i GNU General Public License, publicerad\n" +"av Free Software Foundation, antingen version 2 eller (om du så vill)\n" +"någon senare version.\n" +"\n" +"Vino distribueras i hopp om att det ska vara användbart,\n" +"men UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti\n" +"om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU\n" +"General Public License för ytterligare information.\n" +"\n" +"Du bör ha fått en kopia av GNU General Public License tillsammans\n" +"med detta program. Om inte, skriv till Free Software Foundation,\n" +"Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Daniel Nylander <po@danielnylander.se>\n" +"Christian Rose\n" +"Anders Jonsson <anders.jonsson@norsjovallen.se>\n" +"\n" +"Skicka synpunkter på översättningen till\n" +"<tp-sv@listor.tp-sv.se>." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Dela ditt skrivbord med andra användare" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Är du säker på att du vill koppla från ”%s”?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Fjärranvändaren från ”%s” kommer att kopplas från. Är du säker?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Är du säker på att du vill koppla från alla klienter?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Alla fjärranvändare kommer att kopplas från. Är du säker?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Koppla från" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Inställningar" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Koppla från alla" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Koppla från %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Hjälp" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Om" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "En annan användare ser på ditt skrivbord" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "En fjärranvändare på datorn ”%s” ser på ditt skrivbord." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "En annan användare fjärrstyr ditt skrivbord" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "En användare på datorn ”%s” fjärrstyr ditt skrivbord." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Fel vid visning av aviseringsbubbla: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Fjärranvändaren ”%s” kommer att kopplas från. Är du säker?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Dela min skrivbordsinformation" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "”%s” avvisade inbjudan om skrivbordsdelning." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "”%s” kopplade från" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "”%s” fjärrstyr ditt skrivbord." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Väntar på att ”%s” ska ansluta till skärmen." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_Tillåt" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Neka" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Ett fel har inträffat:" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Aktivera fjärråtkomst till skrivbordet" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Om detta är sant tillåts fjärråtkomst till skrivbordet via RFB-" +#~ "protokollet. Användare på fjärrdatorer kan då ansluta till skrivbordet " +#~ "genom att använda en VNC-klient." + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Det uppstod ett fel vid visning av URL:en \"%s\"" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Det uppstod ett fel vid visning av hjälp:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Kontrollerar anslutningen för denna dator..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Ditt skrivbord är endast åtkomligt på det lokala nätverket." + +#~ msgid " or " +#~ msgstr " eller " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Andra kan komma åt din dator på adressen %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Ingen kan komma åt ditt skrivbord." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "Välj hur andra användare kan se ditt skrivbord" + +#~ msgid "Remote desktop sharing password" +#~ msgstr "Utdelningslösenord för skrivbordsdelning" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Om sant kommer vi att använda UPNP-protokollet för att automatiskt " +#~ "vidarebefordra porten som används av vino i routern." + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Inställningar för skrivbordsdelning" + +#~ msgid "Sharing" +#~ msgstr "Delning" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "En del av dessa inställningar är låsta" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Tillåt andra användare att _se ditt skrivbord" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Ditt skrivbord kommer att delas ut" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "_Tillåt andra användare att fjärrstyra ditt skrivbord" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Användare kan fjärrstyra din mus och tangentbord" + +#~ msgid "Security" +#~ msgstr "Säkerhet" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_Du måste bekräfta varje åtkomst till denna dator" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Kräv att användaren anger detta lösenord:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "_Konfigurera automatiskt UPnP-router att öppna och vidarebefordra portar" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "Routern måste ha UPnP-funktionen aktiverad" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Visa ikon i aviseringsytan" + +#~ msgid "Al_ways" +#~ msgstr "A_lltid" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Endast när någon är ansluten" + +#~ msgid "_Never" +#~ msgstr "Al_drig" + +#~ msgid "Question" +#~ msgstr "Fråga" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "En användare på en annan dator försöker att se eller fjärrstyra ditt " +#~ "skrivbord över nätverket." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Vill du tillåta dem att göra detta?" + +#~ msgid "Cancelled" +#~ msgstr "Avbruten" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "FEL: Maximal längd för lösenord är %d tecken. Ange lösenordet igen." +#~ msgstr[1] "" +#~ "FEL: Maximal längd för lösenord är %d tecken. Ange lösenordet igen." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Ändrar Vino-lösenord.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Ange nytt Vino-lösenord: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Ange nytt Vino-lösenord igen: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: lösenordet uppdaterades.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Tyvärr, lösenorden stämmer inte överens.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: lösenordet oförändrat.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Visa version av Vino" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Uppdaterar Vino-lösenordet" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Kör \"vino-passwd --help\" för att se en komplett lista över tillgängliga " +#~ "kommandoradsflaggor" + +#~ msgid "VINO Version %s\n" +#~ msgstr "VINO version %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "FEL: Du har inte behörighet att ändra Vino-lösenordet.\n" + +#~ msgid "Remote Desktop" +#~ msgstr "Fjärrskrivbord" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Aktivera åtkomst till fjärrskrivbord" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Visa all_tid en ikon" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Konfigurera nätverket automatiskt för att acceptera anslutningar" + +#~ msgid "_Never display an icon" +#~ msgstr "Visa _aldrig en ikon" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Visa endast en ikon när någon är ansluten" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME-fjärrskrivbord" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Maximal storlek: 8 tecken" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Du kommer att bli tillfrågad om att tillåta eller neka varje inkommande " +#~ "anslutning" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Fjärrskrivbordsservern kör redan. Avslutar...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Fel vid kommunikation med GConf. Är du inloggad i en GNOME-session?" + +#~ msgid "Error message:" +#~ msgstr "Felmeddelande:" + +#~ msgid "_Send address by email" +#~ msgstr "_Skicka adress med e-post" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Kopiera adress till urklipp" + +#~ msgid "<b>Security</b>" +#~ msgstr "<b>Säkerhet</b>" + +#~ msgid "<b>Sharing</b>" +#~ msgstr "<b>Delning</b>" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "Slut på minne vid hantering av \"%s\"-meddelande" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "Slut på minne vid registrering av objektsökvägen \"%s\"" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "Misslyckades med att få tag på D-Bus-namnet \"%s\"\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "Ställ in dina inställningar för åtkomst till fjärrskrivbord" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "_Talk to the router and try to open the doors there" +#~ msgstr "_Prata med routern och försök att öppna dörrarna där" + +#~ msgid "gtk-close" +#~ msgstr "Stäng" + +#~ msgid "gtk-help" +#~ msgstr "Hjälp" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>Nätverk</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "F_råga dig för bekräftelse" + +#~ msgid "Advanced" +#~ msgstr "Avancerat" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "Inaktivera skr_ivbordsbakgrund när ansluten" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "Inaktivera skrivbordsbakgrunden vid lyckad anslutning" + +#~ msgid "General" +#~ msgstr "Allmänt" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "Fjärranvändarnas VNC-klienter som ansluter till skrivbordet måste ha stöd " +#~ "för kryptering" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Skärmen kommer att låsas efter att den sista fjärrklienten kopplar från" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "Servern kommer endast att acceptera anslutningar från localhost" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "" +#~ "Servern kommer att använda en annan port istället för standardporten " +#~ "(5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "Användare kan se ditt skrivbord med hjälp av detta kommando:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "När en användare försöker se eller kontrollera ditt skrivbord:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_Lås skärmen vid frånkoppling" + +#~ msgid "_Only allow local connections" +#~ msgstr "Tillåt _endast lokala anslutningar" + +#~ msgid "_Password:" +#~ msgstr "_Lösenord:" + +#~ msgid "_Require encryption" +#~ msgstr "_Kräv kryptering" + +#~ msgid "_Use an alternative port:" +#~ msgstr "A_nvänd en alternativ port:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "Om sant, kommer servern endast att tillåta anslutningar från localhost " +#~ "och nätverksanslutningar kommer att nekas. Ställ in det här alternativet " +#~ "till sant om du önskar uteslutande använda en tunnelmekanism för att " +#~ "komma åt servern, såsom ssh." + +#~ msgid "Only allow local connections" +#~ msgstr "Tillåt endast lokala anslutningar" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "Problem vid registrering av fjärrskrivbordsservern i bonobo-activation. " +#~ "Avslutar...\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "Fjärrskrivbordsservern dog, startar om\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "Aktivering av %s misslyckades: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "Aktivering av %s misslyckades: Okänt fel\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "Misslyckades med att aktivera fjärrskrivbordsservern: försökte för många " +#~ "gånger\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "Startar fjärrskrivbordsserver" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "Startar inte fjärrskrivbordsserver" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "" +#~ "Om kryssad kommer skärmen att låsas efter att den sista fjärrklienten " +#~ "kopplar från" + +#~ msgid "<b>Advanced Settings</b>" +#~ msgstr "<b>Avancerade inställningar</b>" + +#~ msgid "failed to register with the message bus" +#~ msgstr "misslyckades med att registrera mot meddelandebussen" + +#~ msgid "not connected to the message bus" +#~ msgstr "inte ansluten till meddelandebussen" + +#~ msgid "Error in dbus" +#~ msgstr "Fel i dbus" + +#~ msgid "The screen to be monitored" +#~ msgstr "Skärmen som ska övervakas" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "Skärmen för vilken en VNC-server ska skapas" + +#~ msgid "On Hold" +#~ msgstr "Vänta" + +#~ msgid "Place all clients on hold" +#~ msgstr "Placera alla klienter i vänteläge" + +#~ msgid "Prompt enabled" +#~ msgstr "Fråga aktiverad" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "Fråga användaren om anslutningsförsök" + +#~ msgid "View Only" +#~ msgstr "Endast visning" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "Tillåt inte inmatning från tangentbord/muspekare från klienter" + +#~ msgid "Local Only" +#~ msgstr "Endast lokala" + +#~ msgid "Require Encryption" +#~ msgstr "Kräv kryptering" + +#~ msgid "Require clients to use encryption" +#~ msgstr "Kräv att klienter använder kryptering" + +#~ msgid "Authentication methods" +#~ msgstr "Autentiseringsmetoder" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "De autentiseringsmetoder som denna server ska tillåta" + +#~ msgid "VNC Password" +#~ msgstr "VNC-lösenord" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "" +#~ "Lösenordet (base64-kodat) som används för att autentisera typer med " +#~ "VncAuth-metoden" + +#~ msgid "Listen on the port specified by the 'alternative-port' property" +#~ msgstr "Lyssna på porten som angivits av egenskapen \"alternative-port\"" + +#~ msgid "" +#~ "Listen on the specified port number if the 'use-alternative-port' " +#~ "property is TRUE" +#~ msgstr "" +#~ "Lyssna på det angivna portnumret om egenskapen \"use-alternative-port\" " +#~ "är SANT" + +#~ msgid "Port server number" +#~ msgstr "Portnummer för server" + +#~ msgid "The port used by this server" +#~ msgstr "Porten som används av den här servern" + +#~ msgid "" +#~ "There was an error displaying jelp:\n" +#~ " %s" +#~ msgstr "" +#~ "Det uppstod ett fel vid visning av hjälp:\n" +#~ " %s" + +#~ msgid "Licensed under the GNU General Public License Version 2" +#~ msgstr "Licensierad under GNU General Public License version 2" + +#~ msgid "" +#~ "Vino is free software; you can redistribute it and/or\n" +#~ "modify it under the terms of the GNU General Public License\n" +#~ "as published by the Free Software Foundation; either version 2\n" +#~ "of the License, or (at your option) any later version." +#~ msgstr "" +#~ "Vino är fri programvara. Du kan distribuera det och/eller\n" +#~ "modifiera det under villkoren i GNU General Public License, publicerad\n" +#~ "av Free Software Foundation, antingen version 2 eller (om du så vill)\n" +#~ "någon senare version." + +#~ msgid "" +#~ "Vino is distributed in the hope that it will be useful,\n" +#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +#~ "GNU General Public License for more details." +#~ msgstr "" +#~ "Vino distribueras i hopp om att det ska vara användbart, men UTAN\n" +#~ "NÅGON SOM HELST GARANTI, även utan underförstådd garanti\n" +#~ "om SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL.\n" +#~ "Se GNU General Public License för ytterligare information." + +#~ msgid "" +#~ "You should have received a copy of the GNU General Public License\n" +#~ "along with this program; if not, write to the Free Software\n" +#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +#~ "02110-1301, USA." +#~ msgstr "" +#~ "Du bör ha fått en kopia av GNU General Public License tillsammans\n" +#~ "med detta program. Om inte, skriv till Free Software\n" +#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +#~ "02110-1301, USA." + +#~ msgid "GNOME Remote Access" +#~ msgstr "GNOME-fjärråtkomst" + +#~ msgid "GNOME Remote Access - Confirmation" +#~ msgstr "GNOME-fjärråtkomst - Bekräftelse" + +#~ msgid "Leave as it is" +#~ msgstr "Lämna det som det är" + +#~ msgid "Connected machines, click to disconnect" +#~ msgstr "Anslutna maskiner, klicka för att koppla från" + +#~ msgid "%d people are connected" +#~ msgstr "%d personer är anslutna" + +#~ msgid "Server" +#~ msgstr "Server" + +#~ msgid "The server" +#~ msgstr "Servern" + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "Address" +#~ msgstr "Adress" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "Den adress som pekas på av widgeten" + +#~ msgid "Tooltip" +#~ msgstr "Vertygstips" + +#~ msgid "A tooltip for this URL" +#~ msgstr "Ett verktygstips för denna URL" + +#~ msgid "URL color" +#~ msgstr "URL-färg" + +#~ msgid "The color of the URL's label" +#~ msgstr "Färgen på URL:ens etikett" + +#~ msgid "" +#~ "If true, remote users accessing the desktop are required to be able " +#~ "support encyrption. It is highly recommended that you use a client which " +#~ "supports encryption unless the intervening network is trusted." +#~ msgstr "" +#~ "Om detta är sant krävs att fjärranvändare som vill komma åt skrivbordet " +#~ "stöder kryptering. Det rekommenderas varmt att du använder en klient som " +#~ "stöder kryptering såvida du inte litar på det mellanliggande nätverket." + +#~ msgid "Remote Desktop server already running; exiting...\n" +#~ msgstr "Fjärrskrivbordsservern kör redan. Avslutar...\n" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting...\n" +#~ msgstr "" +#~ "Problem vid registrering av fjärrskrivbordsservern i bonobo-activation. " +#~ "Avslutar...\n" + +#~ msgid "_Ensure the user is using encryption" +#~ msgstr "_Försäkra att användaren använder kryptering" diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..5580b1a --- /dev/null +++ b/po/ta.po @@ -0,0 +1,867 @@ +# translation of vino.master.ta.po to Tamil +# translation of ta.po to +# translation of vino.HEAD.ta.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Jayaradha N <jaya@pune.redhat.com>, 2004. +# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007, 2008, 2009, 2011, 2012, 2013. +# Dr.T.vasudevan <agnihot3@gmail.com>, 2009. +# I. Felix <ifelix@redhat.com>, 2009, 2011. +msgid "" +msgstr "" +"Project-Id-Version: vino.master.ta\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-23 09:24+0530\n" +"PO-Revision-Date: 2013-03-23 09:25+0530\n" +"Last-Translator: Dr.T.Vasudevan <drtvasudevan@gmail.com>\n" +"Language-Team: American English <<gnome-tamil-translation@googlegroups.com>>\n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\\n" +"\n" +"\n" +"\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URLயை காட்டுவதில் பிழை இருந்தது \"%s\"" + +#: ../capplet/vino-preferences.c:243 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"உதவிக்காட்சியில் பிழை நேர்ந்துள்ளது:\n" +"%s" + +#: ../capplet/vino-preferences.c:276 +msgid "Checking the connectivity of this machine..." +msgstr "இந்த கணினியிலை இணைப்பை சரிபார்க்கிறது..." + +#: ../capplet/vino-preferences.c:296 +msgid "Your desktop is only reachable over the local network." +msgstr "உங்கள் பணிமேடை உள்ளமை பிணையத்தில் மட்டும் வேலை செய்யும்" + +#: ../capplet/vino-preferences.c:309 +msgid " or " +msgstr "OR" + +#: ../capplet/vino-preferences.c:313 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "முகவரி %sஐ பயன்படுத்தி உங்கள் கணினியை மற்றவர்கள் அணுக முடியும்." + +#: ../capplet/vino-preferences.c:322 +msgid "Nobody can access your desktop." +msgstr "உங்கள் பணிமேடையை யாரும் அணுக முடியாது." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "மேல்மேசை பகிர்வு " + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "மற்ற பயனீட்டாளர் உங்கள் பணிமேடையை பார்க்க தேர்ந்தெடுக்கவும்" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "தொலை பகிர்வு விருப்பங்கள்" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "பகிர்வு" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "இவற்றில் சில விருப்பங்கள் பூட்டப்பட்டுள்ளன" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "(_v)மற்ற பயனீட்டாளர் உங்கள் மேல் மேசையை பார்க்க அனுமதி" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "உங்கள் பணிமேடை பகிர்ந்து கொள்ளப்படும்" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "(_A)பயனர் உங்கள் மேல் மேசையை கட்டுப்படுத்துவதை அனுமதிக்கவும்" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "" +"தொலைவிலிருக்கும் பயனர்கள் உங்கள் சுட்டி மற்றும் விசைப்பலகையை கட்டுப்படுத்த " +"முடியும்" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "பாதுகாப்பு" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "இந்த கணினியின் ஒவ்வொரு அணுகலையும் உறுதிப்படுத்தவும் (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "(_R)பயனர் கடவுச்சொல்லை உள்ளிட வேண்டும்:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"_c தானியங்கியாக யூபிஎன்பி திசைவியை திறக்கவும் துறைகளை மேலனுப்பவும் வடிவமை" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "ரௌடர் UPnP வசதியை செயல்படுத்தப்பட வேண்டும்" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "அறிவிப்பு பகுதி சின்னத்தை காட்டுக" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_w எப்போதும்" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_O யாரேனும் இணைந்தபோது" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_N எப்போதுமில்லை" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr " மேல்மேசை தொலை அணுகலுக்கு செயலாக்கு" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"உண்மையெனில், RFB நெறிமுறைபடி மேல்மேசையை அனுக அனுமதிக்கிறது. அதன் பின் தொலை " +"கணினி " +"பயனர்கள் vncviewer வழியாக மேல்மேசையை இணைக்க முடியும்" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "இணைப்பை முடிக்க பயனருக்கு நினைவூட்டு" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"உண்மையெனில், தொலை பயனர் மேல் மேசையை பார்க்க அனுமதி இல்லை. பயனர் அனுமதிக்கும் " +"வரை " +"காத்திருக்க வேண்டும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "பயனர் மேல்மேசையை மட்டும் பார்க்க அனுமதி" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"உண்மையானால் மேல்மேசையை அணுகும் தொலை பயனர்கள் மேல்மேசையை பார்க்க மட்டுமே " +"அனுமதிக்கப் " +"படுவார்கள். அவர்கள் சொடுக்கியையோ விசைப் பலகையையோ பயன்படுத்த இயலாது." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "கேட்பதற்கு பிணைய முகப்பு" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"அமைக்கவில்லையானால் சேவையகம் எல்லா வலைப்பின்னல் இடையகங்களிலும் " +"செவிசாய்க்கும்.\n" +"\n" +"குறிப்பிட்ட வலைப்பின்னல் இடையகத்துக்கு மட்டும் செவிசாய்க்க இதை அமைக்கவும். " +"எ-டு: eth0, " +"wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "மாற்று துறையில் செவி சாய்க்கவும்" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"உண்மையானால் சேவையகம் (5900) முன்னிருப்பை விட்டு வேறு ஒரு துறையில் செவி " +"சாய்க்கும். அந்த " +"துறையை 'alternative-port' விசையில் குறிப்பிட வேண்டும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "மாற்று துறை எண்" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative-port' விசை உண்மை என அமைத்த போது சேவையகம் செவி சாய்க்கும் " +"துறை. " +"செல்லுபடியாகும் மதிப்புகள் 5000 முதல் 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "குறிமுறையாக்கம் தேவை" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"உண்மையானால் மேல்மேசையை அணுகும் தொலை பயனர்கள் குறியாக்கத்தை ஆதரிக்க வேண்டுமென " +"கட்டாயப்படுத்தப்படுவார்கள். இடைமறிக்கும் பிணையத்தை முழுதும் நம்பினால் ஒழிய " +"குறியாக்கத்தை " +"ஆதரிக்கும் சார்ந்தோனை பயன்படுத்த வேண்டும் என பலமாக பரிந்துரைக்கப் படுகிறது." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "அனுமதி முறைமையை அனுமதி" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"தொலைநிலை பயனர்கள் டெஸ்க்டாப்பை அணுக பயன்படுத்தக்கூடிய அங்கீகரிப்பு முறைகளைப் " +"பட்டியலிடும்.\n" +"\n" +"இரண்டு அங்கீகரிப்பு முறைகளுக்கு சாத்தியமுள்ளது; \"vnc\" முறையில் தொலைநிலை " +"பயனர் " +"இணைக்கும் முன்பு அவரிடம் கடவுச்சொல் கேட்கப்படும் (இந்தக் கடவுச்சொல் " +"vnc-கடவுச்சொல் விசையால் " +"குறிப்பிடப்படும்), \"none\" என்பது எந்த தொலைநிலை பயனரும் இணைக்க அனுமதிக்கும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" அனுமதிக்கான கடவுச்சொல் தேவை" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" அங்கீகரிப்பு முறை பயன்படுத்தப்பட்டால் பயனரிடம் கேட்கப்படும் " +"கடவுச்சொல். விசையால் " +"குறிப்பிடப்படும் கடவுச்சொல்லானது base64 குறியாக்கம் செய்யப்பட்டதாகும்.\n" +"\n" +"'keyring' இன் சிறப்பு மதிப்பு (base64 செல்லுபடியாகாதது) என்பது கடவுச்சொல் " +"GNOME " +"கீரிங்கில் சேமிக்கப்படுகிறது என்பதைக் குறிக்கிறது." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "தொலை கணினி URL அனுப்பவ் வேண்டிய மின்னஞ்சல் முகவரி " + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"பயனர் URL ஐ தொலை மேல்மேசையிலிருந்து பகிர்வு விருப்பங்கள் உரையாடலை க்ளிக் " +"செய்யும் போது " +"அது அனுப்பப்பட வேண்டிய மின்னஞ்சல் முகவரியை இந்த விசை குறிக்கிறது" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "கடைசி பயனர் இணைப்பை துண்டித்ததும் திரையை பூட்டுக" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"உண்மையானால் கடைசி தொலை சார்ந்தோன் இணைப்பை துண்டித்ததும் திரை பூட்டப்படும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "இருப்பு நிலை சின்னம் எப்போது காட்டப்பட வேண்டும்" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"இந்த விசை, இருப்பு நிலை சின்னத்தின் நடத்தையை கட்டுப்படுத்துகிறது. மூன்று " +"தேர்வுகள் " +"உள்ளன: \"எப்போதும் \" சின்னம் எப்போதும் இருக்கும்.\"சார்ந்தோன்\" யாராவது " +"இணைப்பில் இருந்தால் " +"மட்டுமே சின்னம் தென்படும். (இதுவே முன்னிருப்பு) \"எப்போதும் இல்லை\" சின்னம் " +"ஒருபோதும் " +"காட்டப்படாது." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "உண்மையெனில், சரியான அமர்வை பெறும் போது பின்னணியை செயல்நீக்கு" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"உண்மை என அமைத்தால், ஒரு பயனர் இணைக்கும் போது, மேல்மேசை பின்னணி செயல் " +"நீக்கப்பட்டு ஒரு " +"வண்ணமாக அமைக்கப்படும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "முன்னனுப்பவும் துறைகளை திறக்கவும், UPNP ரௌட்டரை பயன்படுத்த வேண்டுமா" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"உண்மை என அமைத்தால், வினோ யூபிஎன்பி- செயல் திறனுள்ள ரௌட்டர் மட்டுமே " +"மேலனுப்பவும் துறையை " +"திறக்கவும் வேண்டும் எனக்கோரும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "எக்ஸ்.ஆர்க் இன் எக்ஸ்டேமேஜ் நீட்சியை செயல் நீக்க வேண்டுமா." + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"உண்மையெனில் நாம் எக்ஸ்.ஆர்க் இன் எக்ஸ்டேமேஜ் நீட்சியை பயன்படுத்த மாட்டோம். " +"இந்த நீட்சி முப்பரிமாண " +"விளைவை பயன்படுத்தும்போது இது சில விடியோ இயக்கிகளுடன் சரியாக வேலை செய்வதில்லை. " +"செயல் " +"நீக்குவது வினோ இந்த சூழல்களில் மெதுவாக வேலை செய்யும் பக்க விளைவுடன் வேலை " +"செய்யும்." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "இணைக்கும் போது அறிவிக்கவும்" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "உண்மையென அமைத்தால் ஒரு பயனர் கணினியுடம் இணைக்கும்போது அறிவி." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "தொலை மேல்மேசை பகிர்வு கடவுச்சொல்" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "கோப்பு செல்லுபடியாகும் .desktop கோப்பு அல்ல" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "அடையாளம் காணா மேல்மேசை கோப்பு பதிப்பு '%s' " + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ஐ துவக்குகிறது" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "பயன்பாடு கட்டளை வரியில் ஆவணங்களை ஒப்புக்கொள்ளாது" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "இனம் காணாத துவக்க தேர்வு: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' மேல்மேசை உள்ளீடுக்கு ஆவண யூஆர்ஐ ஐ கொடுக்க இயலாது" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "துவக்க முடியாத உருப்படி" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "அமர்வு மேலாளருக்கு இணைப்பை செயல் நீக்கு" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "சேமித்த வடிவமைப்பு கூடிய கோப்பை குறிப்பிடுக" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "அமர்வு மேலாண்மை அடையாளத்தை குறிப்பிடுக" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ஐடி (ID)" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "அமர்வு மேலாண்மை தேர்வுகள்:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "அமர்வு மேலாணமை தேர்வுகளை காட்டு" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"உங்கள் Xசேவகன் XTest விரிவாக்கத்தை ஆதரிககது - தொலை மேல்மேசை அணுகலால் மட்டுமே " +"பார்க்க " +"முடியும்\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"'என் மேல் மேசையை பகிர்ந்துகொள்' அம்சத்துக்கு குழல் முறைமையில் துவக்கவும்." + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "க்னோமுக்கு -VNC சேவையகம் " + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"'vino-passwd --help'ஐ இயக்கி முழு கட்டளை வரி விருப்பங்கள் பட்டியலை பார்க்கவும்" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME பணிமேடை பகிர்வு" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s இன் தொலை மேல்மேசை %s இல்" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "பெறப்பட்ட சிக்னல் %d, வெளியேறுகிறது" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "திரை" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ப்ராம்டை காட்டவேண்டிய திரை" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify ஐ ஆரம்பிப்ப்பதில் பிழை \n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"கணிப்பொறி '%s' இன் பயனர் உங்கள் மேல்மேசையை தொலைவிலிருந்து பார்க்க முயல்கிறார்" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "மற்றொரு பயனர் உங்கள் மேல் மேசையை பார்க்க முயல்கிறார்." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "மறுக்கவும்" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "ஏற்றுக்கொள்" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "பஸ்ஸுக்கு இணைப்பை திறத்தல் தோல்வியுற்றது: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME பணிமேடை பகிர்வு சேவையகம்" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "விஎன்சி;பகிர்;தொலை;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "மேல்மேசை பகிர்வு செயற்படுத்ப்படடுள்ளதுய" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "ஒருவர் உங்கள் மேல் மேசையை பார்க்கிறார்." +msgstr[1] "%d பேர் உங்கள் மேல் மேசையை பார்க்கிறார்கள்." + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "விருப்பங்களை காட்டுவதில் பிழை" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "உதவியை காட்டுவதில் பிழை" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU பொது ஜன அனுமதி பதிப்பு 2 கீழ் அனுமதி தரப்பட்டது.\n" +"வினோ இலவச மென் பொருளாகும். நீங்கள் இலவச மென் பொருள் \n" +"அமைப்பினால் வெளியிடப்பட்ட ஜிஎன்யு பொது அனுமதிக்கான\n" +" இந்த 2ம் பதிப்பு அல்லது அடுத்த பதிப்புகள் விதிகளின் படி நீங்கள்\n" +" (விருப்பப்படி) மாற்றலாம். அல்லது மீண்டும் பறிமாறலாம்\n" +"\n" +"வினோ உபயோகப்படும் என்ற எதிர்பார்ப்புடன் வெளியிடப்படுகிறது.\n" +" ஆனால் விற்க தகுதி குறிப்பிட்ட செயலுக்கான தகுதி உள்பட\n" +" எந்த உத்திரவாதமும் அளிக்கப்படவில்லை. மேற் கொண்டு \n" +"விவரங்களுக்கு ஜிஎன்யு பொது அனுமதிக்கான விதிகளை பார்க்கவும்\n" +"\n" +"இந்த நிரலுடன் ஜிஎன்யு பொது அனுமதிக்கான விதிகளின் பிரதி \n" +"உங்களுக்கு கிடைத்திருக்க வேண்டும். இல்லையானால்\n" +" கீழ் கண்ட முகவரிக்கு கடிதம் எழுதவும். \n" +"Free Software Foundation, Inc., 51 Franklin Street,\n" +" Fifth Floor, Boston, MA 02110-1301, USA \n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "I. Felix <ifelix@redhat.com>. Dr. T. Vasudevan <agnihot3@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "மற்ற பயனர்களுடன் உங்கள் மேல் மேசையை பகிர்ந்து கொள்ளுங்கள்." + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s' ஐ துண்டிக்க நீங்கள் உறுதியாக இருக்கிறீர்களா?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' இலிருந்து தொலை பயனர் துண்டிக்கப்படுவார். நீங்கள் உறுதியாக இருக்கிறீகளா?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "எல்லா பயனர்களையும் துண்டிக்க நீங்கள் உறுதியாக இருக்கிறீர்களா?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "" +"எல்லா தொலை பயனர்களும் துண்டிக்கப்படுவார்கள். நீங்கள் உறுதியாக இருக்கிறீர்களா?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "துண்டிப்பு" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_ம முன்னுரிமைகள்" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "அனைத்தையும் துண்டிக்கவும்" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s ஐ துண்டிக்கவும்" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_உதவி" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_பற்றி" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "மற்ற பயனர் உங்கள் மேல் மேசையை பார்க்கிறார்." + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "'%s' கணினியில் உள்ள மற்றொரு பயனர் உங்கள் மேல் மேசையை பார்க்கிறார்." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "பயனர் உங்கள் மேல் மேசையை கட்டுப்படுத்துகிறார்" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' கணினியில் உள்ள மற்றொரு பயனர் உங்கள் மேல் மேசையை கட்டுப்படுத்துகிறார்" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "அறிக்கை குமிழை காட்டுவதில் பிழை : %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' இலிருந்து தொலை பயனர் துண்டிக்கப்படுவார். நீங்கள் உறுதியாக " +"இருக்கிறீர்களா?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "எனது பணிமேடை தகவலை பகிரவும்." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' பணிமேடை பகிர்வு அழைப்பை நிராகரித்தார்." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' துண்டிக்கப்பட்டது" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' தொலைவிலிருந்து உங்கள் மேல் மேசையை கட்டுப்படுத்துகிறார்" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "திரையில் இணைக்க '%s'க்கு காத்திருக்கிறது." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "(_A)அனுமதி" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "(_R)மறுக்கவும்" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ஒரு பிழை ஏற்பட்டுள்ளது:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "இரத்து செய்யப்பட்டது" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"பிழை: கடவுச்சொல்லின் அதிகபட்ச அளவு %d எழுத்து. கடவுச்சொல்லை மீண்டும் " +"உள்ளிடவும்." +msgstr[1] "" +"பிழை: கடவுச்சொல்லின் அதிகபட்ச அளவு %d எழுத்துக்கள். கடவுச்சொல்லை மீண்டும் " +"உள்ளிடவும்." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino கடவுச்சொல்லை மாற்றுகிறது.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "புதிய Vino கடவுச்சொலை உள்ளிடவும்: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "புதிய Vino கடவுச்சொல்லை மீண்டும் உள்ளிடவும்: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: கடவுச்சொல் வெற்றிகரமாக மேம்படுத்தப்பட்டது.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "கடவுச்சொல் பொருந்தவில்லை.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: கடவுச்சொல் மாற்றப்படவில்லை.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino பதிப்பைக் காட்டு" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino கடவுச்சொல்லை மேம்படுத்துகிறது" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "'vino-passwd --help'ஐ இயக்கி முழு கட்டளை வரி விருப்பங்களை பார்க்கவும்" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO பதிப்பு %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ERROR: உங்களுக்கு Vino கடவுச்சொல்லை மாற்ற அனுமதி இல்லை.\n" + +#~ msgid "Question" +#~ msgstr "கேள்வி" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "மற்ற பயனர் உங்கள் மேல் மேசையை பார்க்க முயல்கிறார்." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "அவரை அனுமதிக்க விரும்புகிறீர்களா?" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "உண்மையெனில் நாம் யூபிஎன்பி நடபடியை பயன்படுத்தி தானியங்கியாக வினோ ரூட்டரில் " +#~ "பயன்படுத்திய துறையை மேலனுப்புவோம். " + +#~ msgid "Remote Desktop" +#~ msgstr "தொலை பணிமேடை" + +#~ msgid "Enable remote desktop access" +#~ msgstr "தொலை மேல்மேசை சேவகன் அனுகலை செயல்படுத்து" + +#~ msgid "Al_ways display an icon" +#~ msgstr "எப்போதும் சின்னத்தை காட்டுக்" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "இணைப்புகளை ஏற்க பிணையத்தை தானாக கட்டமை (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "_N சின்னத்தை ஒருபோதும் காட்டாதே" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr " இணைப்பில் யாரேனும் இருக்தால் மட்டும்சின்னத்ததை காட்டுக " + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "க்நோம் தொலை மேசைச்சூழல்" + +#~ msgid "_Send address by email" +#~ msgstr "மின்னஞ்சல் வழியாக முகவரியை அனுப்பவும் (_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "கிளிப்போர்டுக்கு முகவரியை நகலெடுக்கிறது (_C)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "அதிகபட்ச அளவு: 8 எழுத்துக்கள்" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "உள்வரும் இணைப்பை நீங்கள் அனுமதிக்க அல்லது மறுக்க வினாவிடலாம்" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "தொலை மேல்மேசை சேவகன் ஏற்கெனவே இயங்குகிறது; வெளியேறுகிறது ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "GConfஉடன் தொடர்பு கொள்ளும் போது பிழை. நீங்கள் ஒரு GNOME அமர்வில் புகுபதிவு " +#~ "செய்தீர்களா?" + +#~ msgid "Error message:" +#~ msgstr "பிழை செய்தி:" diff --git a/po/te.po b/po/te.po new file mode 100644 index 0000000..2b7c47d --- /dev/null +++ b/po/te.po @@ -0,0 +1,888 @@ +# translation of te.po to Telugu +# Telugu translation of gnome-vino. +# Copyright (C) 2007,2011 Swecha Telugu Localisation Team <localization@swecha.net>. +# This file is distributed under the same license as the gnome-vino package. +# +# Matapathi Pramod <pramod@swecha.net>, 2007. +# Krishna Babu K <kkrothap@redhat.com>, 2009, 2010. +# Krishna Babu K <kkrothap@redhat.com>, 2011, 2012, 2013. +# Hari Krishna <hari@swecha.net>, 2011, 2012. +# Sasi Bhushan Boddepalli <sasi@swecha.net>, 2012. +msgid "" +msgstr "" +"Project-Id-Version: te\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-03-13 22:48+0000\n" +"PO-Revision-Date: 2013-03-25 22:23+0530\n" +"Last-Translator: Krishnababu Krothapalli <kkrothap@redhat.com>\n" +"Language-Team: Telugu <Fedora-trans-te@redhat.com>\n" +"Language: te\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"X-Generator: Lokalize 1.5\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "అక్కడ వొక దోషము URL ను చూపుతోంది \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"సహాయము ప్రదర్శించుటలో ఒక దోషము ఏర్పడింది: \n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "ఈ మిషన్ యొక్క అనుసంధానతను పరిశీలిస్తోంది..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "స్థానిక నెట్వర్కునందు మాత్రమే మీ డెస్కుటాపు చేరుకొనదగునది వుంటుంది." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " లేదా " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "%s చిరునామాను వుపయోగించి యితరులు మీ కంప్యూటర్ను యాక్సెస్ చేయగలరు." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "మీ డెస్కుటాప్ను యెవరూ యాక్సెస్ చేయలేరు." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "రంగస్థలం పంచుకొనుట " + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "ఇతర వాడుకరులు దూరస్థంగా యెలా మీ డెస్కుటాపును చూడగలగాలో యెంచుకొనుండి" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "రంగస్థలమున పంచబడనున్న అభీష్టాలు" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "భాగస్వామ్యం" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "ఈ అభీష్టాలు కొన్ని తాళం వేయబడినవి" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "మీ రంగస్థలం ను దర్శించుటకు ఇతర వాడుకరిలను అనుమతించు (_v)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "మీ డెస్కుటాప్ భాగస్వామ్యపరచ బడుతుంది" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "ఇతర వాడుకరిలకు మీ రంగస్థలం నియంత్రించుటకు అనుమతించు (_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "దూరస్థ వాడుకరులు మీ మౌస్ను మరియు కీబోర్డును నియంత్రణ చేయగలరు" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "రక్షణ" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "ఈ పరికరమునకు మీరు తప్పక ప్రతి యాక్సెస్ను నిర్ధారించవలెను (_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "వాడుకరి ఈ సంకేతపదమును చేర్చుట అవసరము (_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "UPnP రౌటరును పోర్టును తెరుచుటకు మరియుపంపుటకు స్వయచాలన రూపకరణ (_c)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "రూటర్ UPnP సౌలభ్యమును తప్పక చేతనంగా కలిగివుండవలెను." + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "నోటీసు ప్రాంత ప్రతిమను చూపించుము" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ఎల్లపుడూ(_w)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "ఎవరోఒక వ్యక్తి మాత్రమే అనుసంధించబడినాడు(_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ఎప్పుడు కాదు(_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "రంగస్థలం దర్శించుటకు దూరస్థ సాంగత్యం క్రియాశీలీకరించు" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"సత్యమైతే, డెస్కుటాపునకు దూరస్థ యాక్సెస్ను RFB నిభందన ద్వారా అనుమతిస్తుంది. " +"దూరస్థ మిషన్లపైని " +"వాడుకరులు అప్పుడు డెస్కుటాపునకు VNC viewer వుపయోగించి అనుసంధానం కావచ్చు." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "అనుసంధానమును పూర్తిచేయుటకు ముందుగా వాడుకరిని అడుగుతుంది" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"సత్యమైతే, డిస్కుటాపును యాక్సెస్ చేయు దూరస్థ వాడుకరులు హోస్టు మిషన్ నందలి " +"వాడుకరి అనుసంధానమును " +"అగీకరించునంతవరకు యాక్సెస్కు అనుమతించబడరు. ఏక్సెస్ సంకేతపదంతో రక్షింప బడునది " +"కానప్పుడు యిది " +"సిఫార్సు చేయడమైనది." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "రంగస్థలం దర్శించుటకు దూరస్థ వాడుకరిలకు మాత్రమే అనుమతించు" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"సత్యమైతే, డెస్కుటాపును యాక్సెస్ చేయుచున్న దూరస్థ వాడుకరులు డెస్కుటాపును " +"చూడటకు మాత్రమే " +"అనుమతించబడతారు. దూరస్థ వాడుకరులు మౌస్కాని లేదా కీబోర్డుకాని వుపయోగించ లేదు." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "వినుట కొరకు నెట్వర్కు యింటర్ఫేస్" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"అమర్చక పోతే, సేవిక అన్ని నెట్వర్కు యింటర్ఫేసులపైనా వింటుంది.\n" +"\n" +" ఫలానా నెట్వర్కు యింటర్ఫేస్నుండి మాత్రమే అనుసంధానాలను అది ఆమోదించాలంటే " +"దీనిని అమర్చండి. ఉదా: eth0, " +"wifi0, lo, మొదలగునవి." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "ఒక మార్పుకలుగజేసెడు రేవుపై వినుము" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"ture అయితే, సేవిక వేరొక పోర్టును వింటుంది, అప్రమేయ (5900) బదులుగా. పోర్టు " +"తప్పక 'alternative-" +"port' కీనందు తెలుపవలెను." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "మార్పుకలుగజేసెడు రేవు సంఖ్య" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"'use-alternative-port' కీ true కు అమర్చితే సేవిక వినునటువంటి పోర్టు. " +"చెల్లునటువంటి " +"విలువలు 5000 నుండి 50000 విస్తృతిలోపల వుంటాయి." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "రహస్యపరచుట అవసరము" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"సత్యమైతే, డెస్కుటాపును యాక్సెస్ చేయు దూరస్థ వాడుకరులు ఎన్క్రిప్షన్ను " +"మద్దతించవలసి వుంటుంది. మీరు " +"సంప్రదించు నెట్వర్కు నమ్మదగునది అయితేతప్ప లేకపోతే మీరు తప్పక ఎన్క్రిప్షన్ " +"మద్దతించు క్లైంటును " +"వుపయోగించాలని సిఫార్సు చేయడమైనది." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "అనుమతించు ప్రామాణీకరణ పద్దతులు" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"దూరస్థ వాడుకరులు వేటితోనైతే డెస్కుటాపును యాక్సెస్ చేస్తోరో ఆ ధృవీకరణ " +"పద్దతులను జాబితా చేస్తుంది.\n" +"\n" +"రెండు ధృవీకరణ పద్దతులు వున్నాయి; \"vnc\" దూరస్థ వాడుకరిని సంకేతపదము " +"(సంకేతపదము vnc-" +"password కీతో తెలుపబడుతుంది) అడుగుతుంది అనుసంధానమునకు ముందు మరియు \"none\" ఏ " +"దూరస్థ " +"వినియోగదారైనా అనుసంధానమగుటకు అనుమతిస్తుంది." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "\"విఎన్ సి\" ప్రామాణీకరణ కొరకు సంకేతపదము అవసరము" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"\"vnc\" ధృవీకరణ పద్దతి వుపయోగించినప్పుడు దూరస్థ వాడుకరి అడుగబడునటువంటి " +"సంకేతపదము. కీ ద్వారా " +"తెలుపబడునటువంటి సంకేతపదము base64 ఎన్కోడెడ్ది.\n" +"\n" +"ఒక ప్రత్యేక కీరింగ్ విలువ (base64 కి వర్తించనిది) అంటే GNOME కీరింగ్ లో " +"సంకేతపదమును దాచుట." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "దూరస్థ రంగస్థల యుఆర్ యల్ పంపబడు ఈ-తపాలా చిరునామా " + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"రంగస్థల పంచు అభీష్టాల డైలాగునందలి URLపై వాడుకరి నొక్కితే ఆ URL యే ఈ-మెయిల్ " +"చిరునామాకు పంపాలో ఈ కీ " +"తెలుపుతుంది." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "చివరి వాడుకరి తెంచునపుడు తెరకి తాళం వేయు" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"true అయితే, చివరి దూరస్థ క్లైంటు అననుసంధానము కాగానే తెర లాక్ చేయబడుతుంది." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "సుస్థితి ప్రతిమ ఎప్పుడు చూపబడుతుంది" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"స్థితి ప్రతిమ యొక్క ప్రవర్తనను ఈ కీ నియంత్రిస్తుంది. అక్కడ మూడు ఐచ్చికాలు " +"వున్నాయి: \"always\" - " +"ప్రతిమ యెల్లప్పుడూ అక్కడే వుంటుంది; \"client\" - యెవరైనా అనుసంధానించి వుంటే " +"మాత్రమే మీకు ప్రతిమ " +"కనబడుతుంది(ఇది అప్రమేయం), యిది అప్రమేయ ప్రవర్తన; \"never\" - యెప్పటికి " +"ప్రతిమను చూపదు." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "వాడుకరి అనుసంధానమైనప్పుడు డెస్కుటాప్ బ్యాక్గ్రౌండ్ అచేతనం చేయాలా" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"true అయితే, డెస్కుటాప్ బ్యాక్గ్రౌండ్ను అచేతనం చేసి వాడుకరి విజయవంతంగా " +"అనుసంధానమైనప్పుడు వొకే రంగుతో నింపును." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "ఫార్వార్డ్ చేయుటకు మరియు పోర్టులను తెరుచుటకు UPnP రౌటర్ వుపయోగించాలా" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"true అయితే, UPnP-కేబుల్ రౌటర్ ఫార్వార్డ్ చేయమని అభ్యర్ధించును మరియు వినో తో " +"వుపయోగించబడు పోర్టును తెరువును." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org యొక్క Xdamage పొడిగింపును మనము అచేతనము చేయాలా" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"true అయితే, X.org యొక్క XDamage పొడిగింపును వుపయోగించదు. 3D ప్రభావాలను " +"వుపయోగించునప్పుడు " +"కొన్ని వీడియో డ్రైవర్లపై ఈ పొడిగింపు సరిగా పనిచేయదు. దీనిని అచేతనముచేస్తే " +"vino ఈ యెన్విరాన్మెట్లనందు పనిచేస్తుంది, " +"నిదానమైన రెండరింగ్తో." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "అనుసంధానమైనపుడు తెలియజేస్తుంది." + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "true అయితే, వాడుకరి వ్యవస్థకు అనుసంధానం అయినప్పుడు ప్రకటనను చూపును." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "దూరస్థ డెస్కుటాప్ భాగస్వామ్య సంకేతపదం" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ఫైలు చెల్లునటువంటి .desktop ఫైలు కాదు" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "గుర్తించబడని డెస్కుటాప్ ఫైలు వర్షన్ '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s ప్రారంభించుచున్నది" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "ఆదేశవరుసనందు అనువర్తనము పత్రములను ఆమోదించదు" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "గుర్తించబడని ఆరంభ ఐచ్చికం: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "'Type=Link' డెస్కుటాప్ ప్రవేశమునకు పత్రము URIలను పంపలేదు" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ఆరంభించదగిన అంశము కాదు" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "సెషన్ నిర్వాహికకు అనుసంధానమును అచేతనముచేయుము" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "దాచిన ఆకృతీకరణను కలిగివున్న ఫైలును తెలుపుము" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ఫైలు" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "సెషన్ నిర్వాహిక IDను తెలుపుము" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "సెషన్ నిర్వాహిక ఐచ్చికాలు:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "సెషన్ నిర్వాహిక ఐచ్చికాలను చూపుము" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"మీ Xసేవిక Xపరిక్ష పొడగింపుకు సహకరించదు - దూరస్థ రంగస్థల సాంగత్యం " +"దర్శించుటకు-మాత్రమే కలదు \n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "ట్యూబ్ రీతినందు ప్రారంభించు, ‘నా డెస్కుటాప్ పంచుకొను’ విశేషణం కొరకు" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME కొరకు VNC సేవిక" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"అందుబాటులో వున్న ఆదేశ వరుస ఐచ్చికాలయొక్క పూర్తి జాబితాను చూచుటకు 'vino-server " +"--help' " +"నడుపుము" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME రంగస్థల పంచుట" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "వినో-ఎం డి ఎన్ ఎస్:వాడుకరి పేరు చూపుము" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s పై దూరస్థ రంగస్థలం %s's" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d సంకేతమును స్వీకరించింది, నిష్క్రమిస్తోంది." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "తెర" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "ప్రామ్టు ప్రదర్శించవలసిన స్క్రీను" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "లిబ్ తాఖీదుఇచ్చుటను సంసిద్థపరచుటలో దోషము \n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s'కంప్యూటర్ పై ఉన్న ఒక వాడుకరి మీ రంగస్థలంను దూరస్థంగా దర్శించుటకు లేదా " +"నియంత్రించుటకు " +"ప్రయత్నించుచున్నాడు." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "వేరే వాడుకరి మీ డెస్కుటాపును దర్శించుటకు ప్రయత్నిస్తున్నారు." + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "తిరస్కరించు" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "ఆమోదించు" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "వాహకము కు బంధం తెరుచుటకు విఫలమైంది: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME దూరస్థ రంగస్థల పంచు సర్వర్" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;షేర్;రిమోట్;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "రంగస్థలం పంచుకొనుట ఉపయోగించబడినది" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "మీ రంగస్థలంను వేరొక వాడుకరి దర్శించుచున్నాడు" +msgstr[1] "మీ రంగస్థలంను %d వాడుకరులు దర్శించుచున్నాడు" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "అభీష్టాలను ప్రదర్శించుటలో దోషము" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "సహాయమును ప్రదర్శించుటలో దోషము" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU జనరల్ పబ్లిక్ లైసెన్సు వర్షన్ 2 క్రింద లైసెన్సు కాబడింది\n" +"\n" +"Vino ఉచిత సాఫ్టువేర్; ఉచిత సాఫ్టువేర్ సంస్థ తరుపున ప్రచురితమైన\n" +"GNU జనరల్ పబ్లిక్ లైసెన్సు కు లోబడి దీనిని మీరు పునఃపంపిణి మరియు/లేదా\n" +"సవరణ చేయవచ్చు; మీరు అనుసరించవలిసినది లైసెన్సు యొక్క వర్షన్ 2, లేదా\n" +"(మీ ఐచ్చికం వద్ద) దాని తరువాతి వర్షన్ కాని.\n" +"\n" +"Vino అది ఉపయోగపడుతుందనే నమ్మకం తో పంపిణీ చేయబడింది,\n" +"అయితే ఏ హామి లేదు; వ్యాపారసంబంధితంగా కాని లేదా ప్రతిపాదిత ప్రయోజనం కొరకు\n" +"కాని హామీ లేదు. అధికవివరములకొరకు GNU జనరల్ పబ్లిక్ లైసెన్సు ను\n" +"చూడండి.\n" +"\n" +"ఈ ప్రోగ్రామ్ తో మీరు GNU జనరల్ పబ్లిక్ లైసెన్సు నకలు ను పొంది ఉంటారు;\n" +"పొందకపోతే, Free Software Foundation, Inc., 51 Franklin Street, Fifth\n" +"Floor, Boston. MA02110-1301, USA కు వ్రాయండి.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Pramod <pramod@swecha.net>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "వేరే వాడుకరిలతో మీ రంగస్థలంను పంచుకొనుము" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s'ను నీవు ఖశ్చితంగా తెంచుటకు ఇష్టపడుతున్నావా?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "దూరస్థ వాడుకరి '%s' నుండి తెంచబడతాడు. నీవు సిద్దమేనా?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "అన్ని బంట్రౌతులను తెంచుటను నీవు ఇష్టపడుతున్నావా?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "అందరు దూరస్థ వాడుకరులు తెంచబడుతారు. నీవు ఖశ్చితమా?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "తెంచు" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "అభీష్టాలు (_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "అన్ని తెంచు" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s తెంచు" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "సహాయము (_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "గురించి (_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "మీ రంగస్థలంను వేరొక వాడుకరి దర్శించుచున్నాడు" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"'%s' కంప్యూటర్ పై ఉన్న వాడుకరి దూరస్థంగా మీ రంగస్థలంను దర్శించుచున్నాడు." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "మీ రంగస్థలంను వేరొక వాడుకరి నియంత్రించుచున్నాడు" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' కంప్యూటర్ పై ఉన్న వాడుకరి దూరస్థంగా మీ రంగస్థలంను నియంత్రించుచున్నాడు." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "తాఖీదుఇచ్చు బుడగ ప్రదర్శించుచున్నపుడు దోషము: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "దూరస్థ వాడుకరి '%s' అననుసంధానించబడుతోంది. మీకు ఖచ్చితంగా కావాలా?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "నా డెస్కుటాపు సమాచారమును భాగస్వామ్యపరచుము" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' డెస్కుటాపు పంచుకొను ఆహ్వానమును తిరస్కరించినది." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' అననుసంధానించబడింది" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' దూరస్థంగా మీ డెస్కుటాప్ను నియంత్రిస్తోంది." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "స్క్రీన్నకు అనుసంధానమగుటకు '%s' కొరకు వేచివుంది." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "అనుమతించు (_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "తిరస్కరించు (_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "ఒక దోషము యెదురైంది:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "రద్దైనది" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"దోషము: సంకేతపదము యొక్క గరిష్ట పొడవు %d అక్షరము. దయచేసి, సంకేతపదమును " +"తిరిగి-ప్రవేశ పెట్టండి." +msgstr[1] "" +"దోషము: సంకేతపదము యొక్క గరిష్ట పొడవు %d అక్షరములు. దయచేసి, సంకేతపదమును " +"తిరిగి-ప్రవేశ పెట్టండి." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino సంకేతపదమును మార్చుచున్నది.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "కొత్త Vino సంకేతపదమును ప్రవేశపెట్టుము: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "కొత్త Vino సంకేతపదమును తిరిగిటైపుచేయుము: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-సంకేతపదము: సంకేతపదము సమర్ధవంతంగా నవీకరించబడింది.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "క్షమించండి, సంకేతపదము సరిపోలలేదు.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-సంకేతపదము: సంకేతపదము మార్చబడలేదు.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino వర్షన్ చూపుము" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Vino సంకేతపదమును నవీకరిస్తుంది" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"అందుబాటులోవున్న ఆదేశవరుస ఐచ్చికాల పూర్తి జాబితా చూచుటకు 'vno-password --help' " +"నడుపండి" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO వర్షన్ %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "దోషము: Vino సంకేతపదమును మార్చుటకు మీరు తగినన్ని అనుమతులను కలిగిలేరు.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "సత్యమైతే, రూటర్ నందు vino చేత వుపయోగించబడిన పోర్టును స్వయంచాలకంగా ముందుకుపంపుటకు మనము " +#~ "UPNP నింభందనను వుపయోగిస్తాము." + +#~ msgid "Question" +#~ msgstr "ప్రశ్న" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "వేరొక కంప్యూటర్ పై నున్న ఒక వాడుకరి దూరస్థంగా మీ రంగస్థలం ను దర్శించుటకు లేదా ప్రయత్నించుటకు " +#~ "ప్రయత్నించుచున్నాడు." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "మీరు వారిని అలా చేయుటకు అనుమతించాలని కోరుకొనుచున్నారా?" + +#~ msgid "Remote Desktop" +#~ msgstr "దూరస్థ రంగస్థలం" + +#~ msgid "Al_ways display an icon" +#~ msgstr "ఏల్లప్పుడు ఒక ప్రతిమ ప్రదర్శించుము (_w)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "గరిష్ట పరిమాణము: 8 అక్షరములు" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "లోనికివచ్చు ప్రతి అనుసంధానమును అనుమతించుటకు లేదా నిరాకరించుటకు మీరు అడుగబడతారు" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "అనుసంధానములను స్వయంచాలకంగా ఆమోదించుటకు నెట్వర్కును ఆకృతీకరించుము (_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "ప్రతిమ ఎల్లప్పుడు ప్రదర్శించకు (_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "ఎవరోఒకరు బంధం ఏర్పరచినపుడు ప్రతిమ మాత్రమే ప్రదర్శించు (_O)" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "దూరస్థ రంగస్థల సేవిక ఇదివరకే నడుచుచున్నది; కలిగివున్నది...\n" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "గ్నోం దూరస్థ రంగస్థలం" + +#~ msgid "Enable remote desktop access" +#~ msgstr "దూరస్థ రంగస్థల సాంగత్యం ఉపయోగించు" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "GConfతో సంప్రదించుచున్నప్పుడు దోషము. మీరు GNOME సెషన్కు లాగిన్ అయ్యారా?" + +#~ msgid "Error message:" +#~ msgstr "దోషము సందేశము:" + +#~ msgid "_Send address by email" +#~ msgstr "చిరునామాను ఈమెయిల్ ద్వారా పంపుము (S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "చిరునామాను క్లిప్బోర్డునకు నకలుతీయుము (_C)" diff --git a/po/tg.po b/po/tg.po new file mode 100644 index 0000000..d8d967c --- /dev/null +++ b/po/tg.po @@ -0,0 +1,710 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Victor Ibragimov <victor.ibragimov@gmail.com>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: Tajik Gnome\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-09-29 12:18+0000\n" +"PO-Revision-Date: 2013-09-30 13:51+0500\n" +"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n" +"Language-Team: \n" +"Language: tg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=1;\n" +"X-Generator: Poedit 1.5.7\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Фаъол кардани дастрасии дурдаст ба мизи корӣ" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Агар фаъол бошад, дастрасии дурбастро ба мизи корӣ тавассути протоколи RFB " +"protocol иҷозат медиҳад. Ин тавр корбарон аз компютерҳои дурдаст метавонанд " +"ба мизи корӣ тавассути намоишгари VNC пайваст шаванд." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "" +"Намоиш додани пешниҳод барои корбар баъд вз ба анҷом расонидани пайваст" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Агар фаъол бошад, корбарони дурдасте, ки мехоҳанд ба мизи корӣ пайваст " +"шаванд, то қабул накардани иҷозати пайваст аз ҷониби корбари компютери " +"пайвастшаванда пайваст наметавонанд. Махсусан барои дастрасии бепарол тавсия " +"дода мешавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Иҷозати танҳо намоиши мизи корӣ барои корбарони дурдаст" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Агар фаъол бошад, корбарони дурдасте, ки мехоҳанд ба мизи корӣ пайваст " +"шаванд, танҳо барои намоиши мизи корӣ иҷозат доранд. Корбарони дурдаст муш " +"ва клавиатураро истифода бурда наметавонанд." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Интерфейси шабакавие, ки ҷустуҷӯ мешавад" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Агар таъин нашавад, сервер ҳамаи интерфесҳои шабакавиро ҷустуҷӯ мекунад.\n" +"\n" +"Агар хоҳед, ки пайвастҳоро танҳо аз интерфейси шабакавии махсус қабул кунед, " +"ин имконотро интихоб намоед. Барои мисол, eth0, wifi0, lo ва ғайра." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Ҷустуҷӯ ба воситаи порти иловагӣ" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Агар фаъол бошад, сервер ба ивази порти пешфарзи (5900) ба воситаи порти " +"дигар ҷустуҷӯ мекунад. Порт бояд дар калиди 'alternative-port' муайян карда " +"шавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Рақами порти иловагӣ" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Агар калиди 'use-alternative-port' фаъол бошад, сервер тавассути ин порт " +"ҷустуҷӯ мекунад. Қиматҳои иҷозашуда бояд дар ҳудуди аз 5000 то 50000 " +"истифода шаванд." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Дархости рамзгузорӣ" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Агар фаъол бошад, корбарони дурдасте, ки мехоҳанд ба мизи корӣ пайваст " +"шаванд барои дастгирии рамзгузорӣ дархост мешаванд. Агар шабакаи миёнрави " +"беэътиборро истифода баред, қатъиян тавсия дода мешавад, ки шумо барномаи " +"муштариреро, ки рамзгузориро дастгирӣ мекунад, истифода баред." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Усулҳои иҷозашуда барои санҷиши ҳаққоният" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Рӯйхати усулҳои санҷиши ҳаққониятеро, ки корбарони дурдаст метавонанд барои " +"пайдо кардани дастрасӣ ба мизи корӣ истифода баранд, намоиш медиҳад.\n" +"\n" +"Ду усули санҷиши ҳаққоният дастрасанд; \"vnc\" дархост мекунад, ки корбари " +"дурдаст пеш аз пайвастшавӣ паролеро (парол бояд тавассути калиди vnc-" +"password таъин карда шавад) ворид кунад, ва \"none\" иҷозат медиҳад, ки ягон " +"корбари дурдаст тавонад бе парол пайваст шавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Барои санҷиши ҳаққонияти \"vnc\" парол лозим аст" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Ин паролест, ки барои корбари дурдаст пешниҳод карда мешавад, агар усули " +"санҷиши ҳаққонияти \"vnc\" истифода шавад. Пароле, ки бо калид муайян " +"мешавад, дар асоси base64 рамзгузорӣ карда мешавад.\n" +"\n" +"Қимати махсуси 'keyring' (ба base64 мувофиқат намекеунад) маънои онро дорад, " +"ки парол дар анбори GNOME нигоҳ дошта мешавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Суроғаи почтаи электрониест, ки барои фиристодани суроғаи URL-и мизи кории " +"дурдаст истифода мешавад" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Ин калид суроғаи почтаи электрониеро муайян мекунад, ки барои фиристодани " +"суроғаи URL-и мизи кории дурдаст истифода мешавад, агар корбар ба суроғаи " +"URL дар диалоги хусусиятҳои мубодилакунии мизи корӣ зер кунад." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Қулф кардани экран баъд аз анҷоми пайвасти корбари охирин" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Агар фаъол бошад, баъд аз анҷоми пайвасти корбари дурдасти охирин экран қулф " +"карда мешавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Шарти намоиши нишонаи вазъият" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Ин калид рафтори нишонаи вазъиятро идора мекунад. Се имкон мавҷуданд: " +"\"ҳамеша\" - нишона доимо намоиш дода мешавад; \"муштарӣ\" - нишона намоиш " +"дода мешавад, агар касе пайваст шавад (рафтори пешфарз); \"ҳеҷ гоҳ\" - " +"нишона намоиш дода намешавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Интихоб кунед, агар хоҳед ки пасзаминаи мизи корӣ ҳангоми пайвастшавии " +"корбар ғайрифаъол шавад" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Агар фаъол бошад, пасзаминаи мизи корӣ ғайрифаъол карда мешавад ва бо " +"пасзаминаи якранга баъд аз пайвастшавии корбар иваз карда мешавад." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Интихоб кунед, агар хоҳед ки маршрутизатори UPnP барои бозфиристодан ва " +"кушодани портҳо истифода шавад" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Агар фаъол бошад, маршрутизатори UPnP-и мувофиқ бояд портҳоеро, ки бо Vino " +"истифода шуда истодаанд, бозфиристонад ва кушояд." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "" +"Интихоб кунед, агар хоҳед ки пасванди XDamage барои X.org ғайрифаъол карда " +"шавад" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Агар фаъол бошад, пасванди XDamage-ро барои X.org истифода набаред. Ин " +"пасванд бо баъзе драйверҳои видеоӣ ҳангоми истифодаи таъсирҳои 3D дуруст кор " +"намекунад. Агар онро ғайрифаъол кунед, Vino дар муҳитҳои зикршуда бо " +"коркарди суст (ҳамчун таъсири слайд) кор мекунад." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Ҳангоми пайваст огоҳ кунед" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Агар фаъол бошад, ҳангоми пайвасти корбар ба система огоҳӣ намоиш дода " +"мешавад." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Ин файли лозимии .desktop нест" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Версияи файли мизи кории номаълум: '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Оғозёбии %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Барнома ҳуҷҷатҳоро дар хати фармон қабул намекунад" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Имкони оғози номаълум: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Суроғаҳои URI-и ҳуҷҷат ба вуруди мизи кории 'Type=Link' гузошта намешаванд" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Объекти оғознашаванда" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Ғайрифаъол кардани пайваст бо мудири ҷаласа" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Файлеро, ки дорои танзимоти захирашуда мебошад, муайян кунед" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Рамзи ID-и идоракунии ҷаласа муайян кунед" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Рамзи ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Имконоти идоракунии ҷаласа:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Намоиш додани имконоти идоракунии ҷаласа:" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer-и шумо пасванди XTest-ро дастгирӣ намекунад - мизи кории дурдаст " +"танҳо барои намоиш дастрас мешавад\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "" +"Оғозидан дар ҳолати қубур барои хусусияти ‘Мубодила кардани мизи кории ман’" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- Сервери VNC барои GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Барои намоиш додани рӯйхати пурраи фармонҳои дастрас, 'vino-server --help'-" +"ро иҷро кунед" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Мубодилаи мизи кории GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Мизи кории %s дар %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Сигнали %d қабул шудааст, хориҷ мешавад." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Экран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Экран барои намоиши пешниҳод" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Ҳангоми омодасозии libnotify хатогӣ ба вуҷуд омад\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Корбаре компютери '%s' мехоҳад мизи кории шуморо тамошо ва идора кунад." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Корбари дигар мехоҳад мизи кории шуморо тамошо кунад." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Рад кардан" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Қабул кардан" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Кушоиши пайваст ба гузаргоҳ қатъ шудааст: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Мубодилаи мизи корӣ" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сервери мубодилаи мизи кории GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;мубодила;дурдаст;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Мубодилаи мизи корӣ фаъол шудааст" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "Як одам мизи кории шуморо тамошо мекунад" +msgstr[1] "%d одам мизи кории шуморо тамошо мекунад" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Ҳаноми намоиши хусусиятҳо хатогӣ ба вуҷуд омад" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Ҳаноми намоиши кӯмак хатогӣ ба вуҷуд омад" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Ин нармафзор дорои Иҷозатномаи ҷамъиятии умумии GNU версияи 2 мебошад\n" +"\n" +"Vino нармафзори ройгон аст; шумо метавонед онро паҳн кунед ва/ё\n" +"дар таҳти шартҳои Иҷозатномаи ҷамъиятии умумии GNU чӣ тавре ки\n" +"аз ҷониби Free Software Foundation; Иҷозатномаи версияи 2 (интихобӣ) ё ягон " +"версияи\n" +"интихобшудаи дертар ба чоп расидааст, тағйир диҳед.\n" +"\n" +"Vino бо умеде, ки ин нармафзор фоиданок мебошад, паҳн карда мешавад,\n" +"вале ЯГОН КАФОЛАТ ДОДА НАМЕШАВАД; ҳатто ягон КАФОЛАТИ ТИҶОРАТӢ\n" +"ё КАФОЛАТИ МУТОБИҚАТ БАРОИ МАҚСАДҲОИ МАХСУС дода намешавад. Барои\n" +"маълумоти муфассал ба Иҷозатномаи ҷамъиятии умумии GNU муроҷиат кунед.\n" +"\n" +"Шумо бояд нусхаи Иҷозатномаи ҷамъиятии умумии GNU якҷоя бо ин нармафзор\n" +"қабул кунед. Агар қабул накунед, лутфан ба суроғаи мо дар Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA нависед.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Victor Ibragimov (victor.ibragimov@gmail.com)" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Мубодила кардани мизи кории худ бо корбарони дигар" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Шумо мутмаин ҳастед, ки мехоҳед пайвасти '%s'-ро қатъ кунед?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Пайвасти корбари дурдаст аз '%s' қатъ мешавад. Шумо мутмаин ҳастед?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "" +"Шумо мутмаин ҳастед, ки мехоҳед пайвасти ҳамаи корбарони дурдастро қатъ " +"кунед?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Пайвастҳои ҳамаи корбарони дурдаст қатъ мешаванд. Шумо мутмаин ҳастед?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Қатъ кардани пайваст" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Хусусиятҳо" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Пайвасти ҳамаро қатъ кардан" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Қатъ кардани пайвасти %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Кӯмак" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Дар бораи барнома" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Корбари дигар мизи кории шуморо тамошо мекунад" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "" +"Корбаре аз компютери '%s' мизи кории шуморо ба таври дурдаст тамошо мекунад." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Корбари дигар мизи кории шуморо идора мекунад" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"Корбаре аз компютери '%s' мизи кории шуморо ба таври дурдаст идора мекунад." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Ҳангоми намоиши огоҳии пайдошаванда хатогӣ ба вуҷуд омад: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Пайвасти корбари дурдасти '%s' қатъ мешавад. Шумо мутмаин ҳастед?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Мубодила кардани иттилооти мизи кории ман" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' даъватномаи мубодилаи мизи кориро рад кард." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "\"%s\" қатъ карда шуд" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' мизи кории шуморо идора мекунад." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Дар ҳоли интизори пайвасти '%s' ба экран." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Иҷозат додан" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Рад кардан" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Хатогӣ ба вуҷуд омад:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Пароли мубодилаи мизи кории дурдаст" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Бекор шудааст" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ХАТО: Дарозии ҳадди аксари парол аз %d аломат иборат аст. Лутфан, пароли " +"дигареро ворид кунед." +msgstr[1] "" +"ХАТО: Дарозии ҳадди аксари парол аз %d аломат иборат аст. Лутфан, пароли " +"дигареро ворид кунед." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Тағйирдиҳии пароли Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Пароли нави Vino-ро ворид кунед: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Пароли нави Vino-ро такроран ворид кунед: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: парол бомуваффақият навсозӣ шудааст.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Бубахшед, паролҳо баробар нестанд.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: парол тағйир наёфт.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Намоиши версияи Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- Пароли Vino-ро навсозӣ мекунад" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "" +"Барои намоиш додани рӯйхати пурраи фармонҳои дастрас, 'vino-passwd --help'-" +"ро иҷро кунед" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "Версияи VINO: %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ХАТО: Шумо барои тағйир додани пароли Vino иҷозаҳои кофӣ надоред.\n" + +#~ msgid " or " +#~ msgstr "ё " + +#~ msgid "Sharing" +#~ msgstr "Дастрасии муштарак" + +#~ msgid "Security" +#~ msgstr "Амният" + +#~ msgid "_Never" +#~ msgstr "_Ҳеҷ гоҳ" + +#~ msgid "Question" +#~ msgstr "Савол" diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..a4ba440 --- /dev/null +++ b/po/th.po @@ -0,0 +1,1033 @@ +# Thai translation of vino. +# Copyright (C) 2005-2012 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Theppitak Karoonboonyanan <thep@linux.thai.net>, 2005-2012. +# +msgid "" +msgstr "" +"Project-Id-Version: vino 2.11.2\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2012-08-20 21:35+0000\n" +"PO-Revision-Date: 2012-09-07 20:29+0700\n" +"Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n" +"Language-Team: Thai <thai-l10n@googlegroups.com>\n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "เกิดข้อผิดพลาดขณะแสดง URL \"%s\"" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"เกิดข้อผิดพลาดขณะแสดงวิธีใช้:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "กำลังตรวจสอบการเชื่อมต่อของเครื่องนี้..." + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "พื้นโต๊ะของคุณสามารถเข้าถึงได้ในเครือข่ายเฉพาะที่นี้เท่านั้น" + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " หรือ " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "ผู้อื่นสามารถเข้าถึงเครื่องของคุณได้โดยใช้ที่อยู่ %s" + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "ไม่มีใครสามารถเข้าถึงพื้นโต๊ะของคุณได้" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "การแบ่งปันพื้นโต๊ะ" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "เลือกว่าจะอนุญาตให้ผู้ใช้อื่นมองพื้นโต๊ะของคุณอย่างไร" + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "รหัสผ่านสำหรับการแบ่งปันพื้นโต๊ะระยะไกล" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "อนุญาตให้ผู้ใช้จากเครื่องอื่นเข้าถึงพื้นโต๊ะได้" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"ถ้าเป็นค่าจริง จะอนุญาตให้เข้าถึงพื้นโต๊ะจากเครื่องอื่นผ่านโพรโทคอล RFB " +"ผู้ใช้จากเครื่องอื่นจะสามารถเชื่อมต่อมายังพื้นโต๊ะได้ด้วยโปรแกรมแสดง VNC" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "ถามผู้ใช้ก่อนเชื่อมต่อ" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"ถ้าเป็นค่าจริง จะไม่อนุญาตให้ผู้ใช้จากเครื่องอื่นเข้าถึงพื้นโต๊ะ จนกว่าผู้ใช้บนเครื่องโฮสต์จะตอบรับ " +"ขอแนะนำให้ใช้วิธีนี้ โดยเฉพาะเมื่อการเข้าถึงไม่มีการป้องกันไว้ด้วยรหัสผ่าน" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "อนุญาตให้ผู้ใช้จากเครื่องอื่นมองพื้นโต๊ะได้เท่านั้น" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"ถ้าเป็นค่าจริง ผู้ใช้จากเครื่องอื่นที่เข้าถึงพื้นโต๊ะจะได้รับอนุญาตให้มองพื้นโต๊ะได้เท่านั้น " +"โดยจะไม่สามารถใช้เมาส์หรือแป้นพิมพ์ได้" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "อินเทอร์เฟซเครือข่ายที่จะรอรับการเชื่อมต่อ" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want that accept connections only from some specific network " +"interface. eg: eth0, wifi0, lo, ..." +msgstr "" +"ถ้าไม่กำหนด เซิร์ฟเวอร์จะรอรับการเชื่อมต่อจากอินเทอร์เฟซเครือข่ายทุกอินเทอร์เฟซ\n" +"\n" +"คุณควรกำหนดค่านี้ถ้าต้องการรับการเชื่อมต่อเฉพาะจากอินเทอร์เฟซบางอินเทอร์เฟซ เช่น eth0, " +"wifi0, lo ฯลฯ เท่านั้น" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "รอรับการเชื่อมต่อที่พอร์ตอื่น" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen to another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"ถ้าเป็นจริง เซิร์ฟเวอร์จะรอรับการเชื่อมต่อที่พอร์ตอื่นแทนพอร์ตปริยาย (5900) " +"ต้องกำหนดพอร์ตไว้ในคีย์ 'alternative-port' ด้วย" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "หมายเลขพอร์ตอื่นที่จะใช้" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range from 5000 to 50000." +msgstr "" +"พอร์ตที่เซิร์ฟเวอร์จะรอรับการเชื่อมต่อถ้าคีย์ 'use-alternate-port' เป็นค่าจริง " +"ค่าที่ใช้การได้จะอยู่ในช่วงจาก 5000 ถึง 50000" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "บังคับการเข้ารหัส" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"ถ้าเป็นจริง ผู้ใช้เครื่องอื่นจะถูกบังคับให้ใช้การเชื่อมต่อที่เข้ารหัสลับได้เท่านั้น " +"ขอแนะนำอย่างมากให้ใช้ไคลเอนต์ที่รองรับการเข้ารหัสลับ ยกเว้นเครือข่ายระหว่างกลางนั้นวางใจได้" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "วิธีตรวจสอบสิทธิ์ที่อนุญาต" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"รายการวิธีการตรวจสอบสิทธิ์ที่จะใช้ตรวจสอบผู้ใช้จากเครื่องอื่นในการเข้าถึงพื้นโต๊ะ\n" +"\n" +"ค่าที่เป็นไปได้มีสองค่า; \"vnc\" จะถามรหัสผ่านจากผู้ใช้จากเครื่องอื่น (ตัวรหัสผ่านจะเก็บไว้ที่คีย์ " +"vnc-password) ก่อนเชื่อมต่อ และ \"none\" จะอนุญาตให้ผู้ใช้จากเครื่องอื่นใดก็ได้เชื่อมต่อทั้งหมด" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "รหัสผ่านสำหรับการตรวจสอบสิทธิ์แบบ \"vnc\"" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"รหัสผ่านที่จะถามจากผู้ใช้จากเครื่องอื่นเมื่อใช้การตรวจสอบสิทธิ์แบบ \"vnc\" " +"รหัสผ่านที่เก็บในคีย์นี้จะลงรหัสไว้แบบ base64\n" +"\n" +"ค่าพิเศษ 'keyring' (ซึ่งไม่ใช่ค่า base64 ที่ใช้การได้) " +"จะหมายความว่าให้เก็บรหัสผ่านไว้ในพวงกุญแจของ GNOME" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ที่อยู่อีเมลที่จะส่ง URL ของพื้นโต๊ะระยะไกลไปให้" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"คีย์นี้ระบุที่อยู่อีเมลที่จะส่ง URL ของพื้นโต๊ะระยะไกลไปให้ ถ้าผู้ใช้คลิกที่ URL " +"ในกล่องโต้ตอบปรับแต่งการแบ่งปันพื้นโต๊ะ" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "ล็อคหน้าจอเมื่อผู้ใช้คนสุดท้ายตัดการติดต่อ" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "If true, screen will be locked after the last remote client disconnect." +msgstr "ถ้าเป็นจริง หน้าจอจะถูกล็อคหลังจากผู้ใช้จากเครื่องอื่นคนสุดท้ายตัดการเชื่อมต่อ" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "จะแสดงไอคอนสถานะเมื่อใด" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - The icon will be always there; \"client\" - You will see the " +"icon only when there is someone connected, this is the default behavior; " +"\"never\" - Never shows the icon." +msgstr "" +"คีย์นี้ควบคุมพฤติกรรมของไอคอนสถานะ มีค่าเป็นไปได้สามค่า: \"always\" - แสดงไอคอนเสมอ, " +"\"client\" - แสดงไอคอนเมื่อมีผู้เชื่อมต่อเท่านั้น ซึ่งค่านี้เป็นค่าปริยาย, \"never\" - " +"ไม่ต้องแสดงไอคอน" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "When true, disable the background on receive valid session" +msgstr "ถ้าเป็นค่าจริง จะปิดการใช้ภาพพื้นหลังเมื่อรับการเชื่อมต่อวาระเรียบร้อย" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "Whether we should use UPNP to forward the port in routers" +msgstr "จะใช้ UPNP ในการส่งต่อพอร์ตจากเราเตอร์หรือไม่" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "" +"If true, we will use UPNP protocol to automatically forward the port used by " +"vino in the router." +msgstr "ถ้าเป็นจริง จะใช้โพรโทคอล UPNP ในการส่งต่อพอร์ตที่ vino ใช้จากเราเตอร์" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "จะปิดส่วนขยาย XDamage ของ X.org หรือไม่" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "" +"If true, we will not use the XDamage extension of X.org. This extension does " +"not work properly on some video drivers when using 3D effects. Disabling it " +"will make vino work on these environments with a slower rendering as side " +"effect." +msgstr "" +"ถ้าเป็นจริง จะไม่ใช้ส่วนขยาย XDamage ของ X.org " +"ส่วนขยายนี้จะทำงานได้ไม่สมบูรณ์กับไดรเวอร์การ์ดจอบางตัวเมื่อใช้เอฟเฟกต์ 3D " +"การปิดส่วนขยายนี้จะทำให้ vino ทำงานได้ในสภาพแวดล้อมเหล่านี้ " +"โดยอาจแสดงผลได้ช้าลงเป็นผลข้างเคียง" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "Notify on connect" +msgstr "แจ้งเหตุเมื่อมีการเชื่อมต่อ" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "If true, we will notify, when the user connects to the system." +msgstr "ถ้าเป็นจริง จะแจ้งเหตุเมื่อมีผู้ใช้เชื่อมต่อกับระบบ" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ปรับแต่งการแบ่งปันพื้นโต๊ะ" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "การแบ่งใช้" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "การปรับแต่งบางส่วนถูกล็อคไว้ไม่ให้เปลี่ยน" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "อนุญาตให้ผู้ใช้อื่น_มองพื้นโต๊ะของคุณ" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "พื้นโต๊ะของคุณจะถูกเปิดให้ผู้อื่นใช้ร่วมด้วย" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "อนุญาตให้ผู้ใช้อื่น_ควบคุมพื้นโต๊ะของคุณ" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "ผู้ใช้จากเครื่องอื่นสามารถควบคุมเมาส์และแป้นพิมพ์ของคุณได้" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "ระบบรักษาความปลอดภัย" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "คุณต้องยืนยั_นการเข้าถึงเครื่องนี้ก่อนทุกครั้ง" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ให้ผู้ใช้นั้น_ป้อนรหัสผ่านนี้:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "ตั้งค่าเราเตอร์ UPnP โดยอัตโนมัติให้เปิดและฟอร์เวิร์ดพอร์ตต่างๆ" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "เราเตอร์ต้องเปิดใช้ความสามารถ UPnP ด้วย" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "แสดงไอคอนพื้นที่แจ้งเหตุ" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "แสดงเ_สมอ" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "เมื่อมีผู้เชื่อมต่อเ_ท่านั้น" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ไ_ม่แสดง" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "แฟ้มนี้ไม่ใช่แฟ้ม .desktop ที่ใช้ได้" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "ไม่รู้จักแฟ้มเดสก์ท็อปรุ่น '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "กำลังเริ่ม %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "โปรแกรมไม่รับเอกสารในบรรทัดคำสั่ง" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "ไม่รู้จักตัวเลือกของการเรียกโปรแกรม: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "ไม่สามารถส่ง URI ของเอกสารไปยังรายการเดสก์ท็อปที่มี 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ไม่ใช่รายการที่เรียกทำงานได้" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ปิดใช้การเชื่อมต่อไปยังโปรแกรมจัดการวาระ" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "ระบุแฟ้มที่บันทึกค่าตั้งไว้" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "ระบุหมายเลขการจัดการวาระ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ตัวเลือกเกี่ยวกับการจัดการวาระ:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "แสดงตัวเลือกเกี่ยวกับการจัดการวาระ" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"X server ของคุณไม่รองรับส่วนขยาย XTest - " +"การเข้าถึงพื้นโต๊ะจากระยะไกลจะเป็นแบบมองได้เท่านั้น\n" + +#: ../server/vino-main.c:298 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "เปิดทำงานในโหมดท่อ เพื่อเชื่อมต่อจากการสั่ง ‘แบ่งปันพื้นโต๊ะของฉัน’" + +#: ../server/vino-main.c:304 +msgid "- VNC Server for GNOME" +msgstr "- เซิร์ฟเวอร์ VNC สำหรับ GNOME" + +#: ../server/vino-main.c:312 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "เรียก 'vino-server --help' เพื่อดูตัวเลือกบรรทัดคำสั่งที่ใช้ได้ทั้งหมด" + +#: ../server/vino-main.c:333 +msgid "GNOME Desktop Sharing" +msgstr "การแบ่งปันพื้นโต๊ะของ GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "พื้นโต๊ะระยะไกลของ %s ที่เครื่อง %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "ได้รับสัญญาณ %d, ขอออกจากโปรแกรม" + +#: ../server/vino-prompt.c:141 +msgid "Screen" +msgstr "หน้าจอ" + +#: ../server/vino-prompt.c:142 +msgid "The screen on which to display the prompt" +msgstr "หน้าจอที่จะแสดงคำถาม" + +#: ../server/vino-prompt.c:345 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "มีผู้ใช้จากเครื่อง '%s' กำลังพยายามมองหรือควบคุมพื้นโต๊ะของคุณจากระยะไกล" + +#: ../server/vino-prompt.ui.h:1 +msgid "Question" +msgstr "คำถาม" + +#: ../server/vino-prompt.ui.h:2 +msgid "Another user is trying to view your desktop." +msgstr "มีผู้ใช้อื่นกำลังพยายามมองพื้นโต๊ะของคุณ" + +#: ../server/vino-prompt.ui.h:3 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "มีผู้ใช้จากเครื่องอื่นกำลังพยายามมองหรือควบคุมพื้นโต๊ะของคุณจากระยะไกล" + +#: ../server/vino-prompt.ui.h:4 +msgid "Do you want to allow them to do so?" +msgstr "คุณจะอนุญาตหรือไม่?" + +#: ../server/vino-prompt.ui.h:5 ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_ปฏิเสธ" + +#: ../server/vino-prompt.ui.h:6 ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_อนุญาต" + +#: ../server/vino-server.c:162 ../server/vino-server.c:185 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "ไม่สามารถเปิดการเชื่อมต่อไปยังบัส: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "เซิร์ฟเวอร์แบ่งปันพื้นโต๊ะของ GNOME" + +#: ../server/vino-status-icon.c:103 ../server/vino-status-tube-icon.c:96 +msgid "Desktop sharing is enabled" +msgstr "เปิดพื้นโต๊ะให้ใช้ร่วมอยู่" + +#: ../server/vino-status-icon.c:111 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "มีผู้ใช้ %d คนกำลังมองพื้นโต๊ะของคุณ" + +#: ../server/vino-status-icon.c:212 ../server/vino-status-tube-icon.c:180 +msgid "Error displaying preferences" +msgstr "เกิดข้อผิดพลาดขณะแสดงค่าปรับแต่ง" + +#: ../server/vino-status-icon.c:234 ../server/vino-status-tube-icon.c:200 +msgid "Error displaying help" +msgstr "เกิดข้อผิดพลาดขณะแสดงวิธีใช้" + +#: ../server/vino-status-icon.c:267 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"เผยแพร่ภายใต้เงื่อนไข GNU General Public License รุ่นที่ 2\n" +"\n" +"Vino เป็นซอฟต์แวร์เสรี คุณสามารถแจกจ่ายต่อ และ/หรือ แก้ไขโปรแกรมได้\n" +"ภายใต้เงื่อนไขของ GNU General Public License ที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี\n" +"ไม่ว่าจะเป็นสัญญาอนุญาตรุ่นที่ 2 หรือรุ่นถัดมา (ตามแต่คุณจะเลือก)\n" +"\n" +"Vino เผยแพร่ด้วยความหวังว่าโปรแกรมจะมีประโยชน์ แต่ _ไม่มีการรับประกันใดๆ_\n" +"ไม่มีแม้การรับประกัน _อรรถประโยชน์เชิงพาณิชย์_ หรือ _ความเหมาะสม\n" +"สำหรับวัตถุประสงค์เฉพาะกิจใดๆ_ กรุณาอ่าน GNU General Public License\n" +"เพื่อดูรายละเอียดเพิ่มเติม\n" +"\n" +"คุณควรจะได้รับสำเนาของ GNU General Public License มาพร้อมกับโปรแกรมนี้\n" +"ถ้าคุณไม่ได้รับ กรุณาติดต่อไปที่ Free Software Foundation, Inc.,\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:282 +msgid "translator-credits" +msgstr "เทพพิทักษ์ การุญบุญญานันท์ <thep@linux.thai.net>" + +#: ../server/vino-status-icon.c:288 +msgid "Share your desktop with other users" +msgstr "แบ่งพื้นโต๊ะของคุณให้ผู้อื่นใช้ร่วม" + +#: ../server/vino-status-icon.c:355 ../server/vino-status-tube-icon.c:232 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "ยืนยันที่จะตัดการเชื่อมต่อกับ '%s' หรือไม่?" + +#: ../server/vino-status-icon.c:358 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "ผู้ใช้ระยะไกลจากเครื่อง '%s' จะถูกตัดการเชื่อมต่อ คุณแน่ใจหรือไม่?" + +#: ../server/vino-status-icon.c:364 +msgid "Are you sure you want to disconnect all clients?" +msgstr "ยืนยันที่จะตัดการเชื่อมต่อกับทุกเครื่องหรือไม่?" + +#: ../server/vino-status-icon.c:366 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "ผู้ใช้จากเครื่องอื่นทั้งหมดจะถูกตัดการเชื่อมต่อ คุณแน่ใจหรือไม่?" + +#: ../server/vino-status-icon.c:378 ../server/vino-status-tube-icon.c:246 +msgid "Disconnect" +msgstr "ตัดการเชื่อมต่อ" + +#: ../server/vino-status-icon.c:404 ../server/vino-status-tube-icon.c:271 +msgid "_Preferences" +msgstr "_ปรับแต่ง" + +#: ../server/vino-status-icon.c:419 +msgid "Disconnect all" +msgstr "ตัดการเชื่อมต่อทั้งหมด" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:443 ../server/vino-status-tube-icon.c:284 +#, c-format +msgid "Disconnect %s" +msgstr "ตัดการเชื่อมต่อกับ %s" + +#: ../server/vino-status-icon.c:464 ../server/vino-status-tube-icon.c:303 +msgid "_Help" +msgstr "_วิธีใช้" + +#: ../server/vino-status-icon.c:472 +msgid "_About" +msgstr "เ_กี่ยวกับ" + +#: ../server/vino-status-icon.c:605 ../server/vino-status-tube-icon.c:400 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "เกิดข้อผิดพลาดขณะตั้งต้น libnotify\n" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:626 +msgid "Another user is viewing your desktop" +msgstr "มีผู้ใช้อื่นกำลังมองพื้นโต๊ะของคุณ" + +#: ../server/vino-status-icon.c:628 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "มีผู้ใช้จากเครื่อง '%s' กำลังมองพื้นโต๊ะของคุณจากระยะไกล" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:634 +msgid "Another user is controlling your desktop" +msgstr "มีผู้ใช้อื่นกำลังควบคุมพื้นโต๊ะของคุณ" + +#: ../server/vino-status-icon.c:636 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "มีผู้ใช้จากเครื่อง '%s' กำลังควบคุมพื้นโต๊ะของคุณจากระยะไกล" + +#: ../server/vino-status-icon.c:664 ../server/vino-status-tube-icon.c:437 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "เกิดข้อผิดพลาดขณะแสดงกรอบคำพูดแจ้งเหตุ: %s\n" + +#: ../server/vino-status-tube-icon.c:235 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "ผู้ใช้ '%s' จากเครื่องอื่นจะถูกตัดการเชื่อมต่อ คุณแน่ใจหรือไม่?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "แบ่งพื้นโต๊ะของฉันให้ผู้อื่นใช้ร่วม" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' ปฏิเสธคำเชิญให้แบ่งปันพื้นโต๊ะ" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' ตัดการเชื่อมต่อแล้ว" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' กำลังควบคุมพื้นโต๊ะของคุณจากระยะไกล" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "กำลังรอให้ '%s' เชื่อมต่อมาที่หน้าจอ" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "เกิดข้อผิดพลาด:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "ยกเลิก" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "ข้อผิดพลาด: ความยาวสูงสุดของรหัสผ่านคือ %d อักขระ กรุณาป้อนรหัสผ่านใหม่" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "กำลังเปลี่ยนรหัสผ่าน Vino\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "ตั้งรหัสผ่านใหม่สำหรับ Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "พิมพ์รหัสผ่านใหม่สำหรับ Vino ซ้ำอีกครั้ง: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: ปรับข้อมูลรหัสผ่านเรียบร้อยแล้ว\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "ขออภัย รหัสผ่านไม่ตรงกัน\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: รหัสผ่านไม่มีการเปลี่ยนแปลง\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "แสดงรุ่นของ Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- เปลี่ยนรหัสผ่าน Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "เรียก 'vino-passwd --help' เพื่อดูตัวเลือกบรรทัดคำสั่งที่ใช้ได้ทั้งหมด" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO รุ่น %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ข้อผิดพลาด: คุณไม่มีสิทธิ์เปลี่ยนรหัสผ่าน Vino\n" + +#~ msgid "Remote Desktop" +#~ msgstr "พื้นโต๊ะระยะไกล" + +#~ msgid "Enable remote desktop access" +#~ msgstr "เปิดใช้การเข้าถึงพื้นโต๊ะจากเครื่องอื่น" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "พื้นโต๊ะระยะไกลของ GNOME" + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "มีปัญหาในการลงทะเบียนเซิร์ฟเวอร์พื้นโต๊ะระยะไกลกับ bonobo-activation; " +#~ "จะออกจากโปรแกรม ...\n" + +#~ msgid "_Send address by email" +#~ msgstr "_ส่งที่อยู่ทางอีเมล" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_คัดลอกที่อยู่เข้าคลิปบอร์ด" + +#~ msgid "Al_ways display an icon" +#~ msgstr "แสดงไอคอนเ_สมอ" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "ความยาวสูงสุด: 8 ตัวอักษร" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "คุณจะได้รับการขออนุญาตเชื่อมต่อทุกครั้ง" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_ตั้งค่าเครือข่ายให้ยอมรับการเชื่อมต่อโดยอัตโนมัติ" + +#~ msgid "_Never display an icon" +#~ msgstr "ไ_ม่แสดงไอคอน" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "แสดงไอคอนเมื่อมีผู้เ_ชื่อมต่อเท่านั้น" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "เซิร์ฟเวอร์พื้นโต๊ะระยะไกลกำลังทำงานอยู่แล้ว จะออกจากโปรแกรม ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "เกิดข้อผิดพลาดขณะสื่อสารกับ GConf คุณได้เข้าระบบด้วยวาระ GNOME หรือเปล่า?" + +#~ msgid "Error message:" +#~ msgstr "ข้อความข้อผิดพลาด:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "หน่วยความจำหมดขณะจัดการข้อความ '%s'" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "หน่วยความจำหมดขณะลงทะเบียนพาธของออบเจ็กต์ '%s'" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "ไม่สามารถขอใช้ชื่อ D-Bus '%s' ได้\n" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "ปรับแต่งการเข้าถึงพื้นโต๊ะของคุณจากระยะไกล" + +#~ msgid "<b>Network</b>" +#~ msgstr "<b>เครือข่าย</b>" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "_ถามการยืนยันจากคุณก่อน" + +#~ msgid "Advanced" +#~ msgstr "ขั้นสูง" + +#~ msgid "Disable the _wallpaper when connected" +#~ msgstr "ไม่ใช้ภาพ_พื้นหลังเมื่อเชื่อมต่อ" + +#~ msgid "Disable the wallpaper when successfull connection" +#~ msgstr "ปิดการใช้ภาพพื้นหลังเมื่อเชื่อมต่อสำเร็จ" + +#~ msgid "General" +#~ msgstr "ทั่วไป" + +#~ msgid "" +#~ "Remote users' VNC clients accessing the desktop are required to support " +#~ "encryption" +#~ msgstr "" +#~ "โปรแกรมลูกข่าย VNC ของผู้ใช้จากเครื่องอื่นที่จะเข้าถึงพื้นโต๊ะจะต้องรองรับการเข้ารหัสลับด้วย" + +#~ msgid "Screen will be locked after the last remote client disconnect" +#~ msgstr "หน้าจอจะถูกล็อคหลังจากผู้ใช้จากเครื่องอื่นคนสุดท้ายตัดการเชื่อมต่อ" + +#~ msgid "The server will only accept connections from localhost" +#~ msgstr "เซิร์ฟเวอร์จะรับการเชื่อมต่อจาก localhost เท่านั้น" + +#~ msgid "The server will use another port, instead of the default (5900)" +#~ msgstr "เซิร์ฟเวอร์จะใช้พอร์ตอื่นแทนพอร์ตปริยาย (5900)" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "ผู้ใช้ทั่วไปสามารถมองพื้นโต๊ะของคุณได้โดยใช้คำสั่ง:" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "เมื่อมีผู้ใช้พยายามมองหรือควบคุมพื้นโต๊ะของคุณ:" + +#~ msgid "_Lock screen on disconnect" +#~ msgstr "_ล็อคหน้าจอเมื่อตัดการเชื่อมต่อ" + +#~ msgid "_Only allow local connections" +#~ msgstr "รับการเชื่อมต่อจากใ_นเครื่องเดียวกันเท่านั้น" + +#~ msgid "_Password:" +#~ msgstr "_รหัสผ่าน:" + +#~ msgid "_Require encryption" +#~ msgstr "_บังคับการเข้ารหัสลับ" + +#~ msgid "_Use an alternative port:" +#~ msgstr "ใช้พอร์ต_อื่น:" + +#~ msgid "" +#~ "If true, the server will only accept connections from localhost and " +#~ "network connections will be rejected. Set this option to true if you wish " +#~ "to exclusively use a tunneling mechanism to access the server, such as " +#~ "ssh." +#~ msgstr "" +#~ "ถ้าเป็นจริง เซิร์ฟเวอร์จะรับการเชื่อมต่อจาก localhost เท่านั้น " +#~ "และจะปฏิเสธการเชื่อมต่อจากเครือข่ายทั้งหมด คุณควรกำหนดค่านี้เป็นจริง " +#~ "ถ้าคุณต้องการใช้กลไกการติดต่อผ่านท่อ (tunnel) เช่น ssh ในการติดต่อกับเซิร์ฟเวอร์" + +#~ msgid "Only allow local connections" +#~ msgstr "รับการเชื่อมต่อจากในเครื่องเดียวกันเท่านั้น" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "เซิร์ฟเวอร์พื้นโต๊ะระยะไกลตาย กำลังเริ่มทำงานใหม่\n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "เรียกใช้ %s ไม่สำเร็จ: %s\n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "เรียกใช้ %s ไม่สำเร็จ: ไม่ทราบสาเหตุ\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "ไม่สามารถเรียกใช้เซิร์ฟเวอร์พื้นโต๊ะระยะไกลได้: พยายามหลายครั้งแล้ว\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "กำลังเริ่มใช้งานเซิร์ฟเวอร์พื้นโต๊ะระยะไกล" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "จะไม่เรียกใช้เซิร์ฟเวอร์พื้นโต๊ะระยะไกล" + +#~ msgid "" +#~ "If checked, screen will be locked after the last remote client disconnect" +#~ msgstr "ถ้าเลือก หน้าจอจะถูกล็อคหลังจากผู้ใช้จากเครื่องอื่นคนสุดท้ายตัดการเชื่อมต่อ" + +#~ msgid "failed to register with the message bus" +#~ msgstr "ลงทะเบียนกับบัสข้อความไม่สำเร็จ" + +#~ msgid "not connected to the message bus" +#~ msgstr "ไม่ได้เชื่อมต่อกับบัสข้อความ" + +#~ msgid "Error in dbus" +#~ msgstr "เกิดข้อผิดพลาดใน dbus" + +#~ msgid "The screen to be monitored" +#~ msgstr "หน้าจอที่จะเฝ้ามอง" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "หน้าจอที่จะสร้างเซิร์ฟเวอร์ VNC" + +#~ msgid "On Hold" +#~ msgstr "ยับยั้งไว้" + +#~ msgid "Place all clients on hold" +#~ msgstr "ยับยั้งไคลเอนต์ทั้งหมดไว้" + +#~ msgid "Prompt enabled" +#~ msgstr "เปิดใช้การถาม" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "ถามผู้ใช้เมื่อมีความพยายามเชื่อมต่อ" + +#~ msgid "View Only" +#~ msgstr "มองอย่างเดียว" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "ไม่รับข้อมูลแป้นพิมพ์/เมาส์จากไคลเอนต์" + +#~ msgid "Local Only" +#~ msgstr "ในเครื่องเท่านั้น" + +#~ msgid "Require Encryption" +#~ msgstr "บังคับการเข้ารหัส" + +#~ msgid "Require clients to use encryption" +#~ msgstr "บังคับให้ไคลเอนต์ต้องเข้ารหัสข้อมูล" + +#~ msgid "Authentication methods" +#~ msgstr "วิธีตรวจสอบสิทธิ์" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "วิธีตรวจสอบสิทธิ์ทั้งหมดที่เซิร์ฟเวอร์นี้อนุญาต" + +#~ msgid "VNC Password" +#~ msgstr "รหัสผ่าน VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "รหัสผ่าน (ลงรหัสแบบ base64) ที่จะใช้ตรวจสอบสิทธิ์ด้วยวิธี VncAuth" + +#~ msgid "Listen on the port specified by the 'alternative-port' property" +#~ msgstr "รอรับการเชื่อมต่อที่พอร์ตที่ระบุในค่า 'alternative-port'" + +#~ msgid "" +#~ "Listen on the specified port number if the 'use-alternative-port' " +#~ "property is TRUE" +#~ msgstr "รอรับการเชื่อมต่อที่พอร์ตที่กำหนด ถ้าค่า 'use-alternative-port' เป็นจริง" + +#~ msgid "Port server number" +#~ msgstr "หมายเลขพอร์ตของเซิร์ฟเวอร์" + +#~ msgid "The port used by this server" +#~ msgstr "พอร์ตที่เซิร์ฟเวอร์นี้จะใช้" + +#~ msgid "" +#~ "There was an error displaying jelp:\n" +#~ " %s" +#~ msgstr "" +#~ "เกิดข้อผิดพลาดขณะแสดงวิธีใช้:\n" +#~ " %s" + +#~ msgid "Licensed under the GNU General Public License Version 2" +#~ msgstr "แจกจ่ายภายใต้สัญญาอนุญาต GNU General Public License รุ่นที่ 2" + +#~ msgid "" +#~ "Vino is free software; you can redistribute it and/or\n" +#~ "modify it under the terms of the GNU General Public License\n" +#~ "as published by the Free Software Foundation; either version 2\n" +#~ "of the License, or (at your option) any later version." +#~ msgstr "" +#~ "Vino เป็นซอฟต์แวร์เสรี คุณสามารถแจกจ่ายต่อ และ/หรือ แก้ไขโปรแกรมได้ ภายใต้เงื่อนไขของ\n" +#~ "GNU General Public License ที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี ไม่ว่าจะเป็นสัญญาอนุญาตรุ่นที่ " +#~ "2\n" +#~ "หรือรุ่นถัดมา (ตามแต่คุณจะเลือก)" + +#~ msgid "" +#~ "Vino is distributed in the hope that it will be useful,\n" +#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +#~ "GNU General Public License for more details." +#~ msgstr "" +#~ "Vino เผยแพร่ด้วยความหวังว่าโปรแกรมจะมีประโยชน์ แต่ _ไม่มีการรับประกันใดๆ_\n" +#~ "ไม่มีแม้การรับประกัน _อรรถประโยชน์เชิงพาณิชย์_ หรือ\n" +#~ "_ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะกิจใดๆ_ กรุณาอ่าน GNU General Public License\n" +#~ "เพื่อดูรายละเอียดเพิ่มเติม" + +#~ msgid "" +#~ "You should have received a copy of the GNU General Public License\n" +#~ "along with this program; if not, write to the Free Software\n" +#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +#~ "02110-1301, USA." +#~ msgstr "" +#~ "คุณควรจะได้รับสำเนาของ GNU General Public License มาพร้อมกับโปรแกรมนี้\n" +#~ "ถ้าคุณไม่ได้รับ กรุณาติดต่อไปที่ Free Software Foundation, Inc., 51 Franklin " +#~ "Street,\n" +#~ "Fifth Floor, Boston, MA 02110-1307 USA" + +#~ msgid "GNOME Remote Access" +#~ msgstr "พื้นโต๊ะระยะไกลของ GNOME" + +#~ msgid "GNOME Remote Access - Confirmation" +#~ msgstr "พื้นโต๊ะระยะไกลของ GNOME - ยืนยัน" + +#~ msgid "Leave as it is" +#~ msgstr "ปล่อยไว้เหมือนเดิม" + +#~ msgid "Connected machines, click to disconnect" +#~ msgstr "เครื่องที่เชื่อมต่ออยู่, คลิกเพื่อตัดการเชื่อมต่อ" + +#~ msgid "Address" +#~ msgstr "ที่อยู่" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "ที่อยู่ที่ชี้โดยวิดเจ็ตนี้" + +#~ msgid "Tooltip" +#~ msgstr "คำแนะนำ" + +#~ msgid "A tooltip for this URL" +#~ msgstr "คำแนะนำสำหรับ URL นี้" + +#~ msgid "URL color" +#~ msgstr "สีของ URL" + +#~ msgid "The color of the URL's label" +#~ msgstr "สีของป้าย URL" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..fc1c001 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,816 @@ +# translation of vino to Turkish +# This file is distributed under the same license as the vino package. +# Copyright (C) 2004. +# +# +# Baris Cicek <baris@teamforce.name.tr>, 2004, 2007, 2008, 2009. +# Muhammet Kara <muhammetk@gmail.com>, 2011, 2012, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-12-03 23:53+0000\n" +"PO-Revision-Date: 2014-12-04 21:00+0200\n" +"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" +"Language-Team: Türkçe <gnome-turk@gnome.org>\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Kullanıcıya bağlantıyı gerçekleştirmeden önce sor" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Eğer seçiliyse, uzaktaki kullanıcıların masaüstüne erişimine ana makinedeki " +"kullanıcı bağlantıyı onaylamadan izin verilmeyecek. Bağlantı parola korumalı " +"olmadığı zamanlar için tavsiye edilir." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Uzaktaki kullanıcıların sadece görüntülemesine izin ver" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Eğer seçiliyse, uzaktaki kullanıcının sadece masaüstünü görüntülemesine izin " +"verilecek. Uzaktaki kullanıcı fare ya da klavye kullanamayacak." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Dinlemek için ağ arayüzü" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Eğer atanmamışsa, sunucu tüm ağ arayüzleri üzerinden dinler.\n" +"\n" +"Bunu eğer sadece bazı belirli ağ arayüzleri üzerinden bağlantı kabul etmek " +"istiyorsanız atayın. Örn: eth0, wifi0, lo, ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Alternatif bir port üzerinden dinle" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Eğer seçiliyse, sunucu öntanımlı port (5900) yerine başka bir port üzerinde " +"dinleyecek. Bu port, 'alternative-port' anahtarında belirtilmelidir." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Alternatif port numarası" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Eğer 'use-alternative-port' anahtarı seçiliyse sunucunun dinleyeceği port. " +"Geçerli değerler 5000 ile 50000 arasındadır." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Şifreleme gerektir" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Eğer seçiliyse, uzaktaki kullanıcının erişimi şifreleme desteği " +"gerektirecek. Aradaki ağ güvenilir olmadığı müddetce şifreleme desteği olan " +"bir istemci kullanmanız önemle tavsiye edilir." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "İzin verilen kimlik doğrulama metodları" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Uzaktaki kullanıcıların masaüstüne erişmek için kullanacakları kimlik " +"doğrulama yöntemlerini listeler.\n" +"Mümkün olan iki kimlik doğrulama yöntemi vardır; \"vnc\" uzaktaki " +"kullanıcıya bağlanmadan önce parola sorulmasını sağlar (parola vnc-password " +"anahtarı ile ayarlanır) ve \"none\" uzaktaki her kullanıcının bağlanmasına " +"izin verir." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "\"vnc\" kimlik doğrulaması için parola gerekli" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Eğer \"vnc\" kimlik doğrulama yöntemi kullanılırsa uzaktaki kullanıcıya " +"sorulacak parola. Anahtarda belirtilen parola base64 kodludur.\n" +"\n" +"'keyring' özel değeri (ki bu, geçerli bir base64 kodlaması değildir), " +"parolanın GNOME anahtarlığında saklandığı anlamına gelir." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Uzaktaki masaüstü URL'sinin gönderileceği e-posta adresi" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Bu anahtar, eğer kullanıcı Masaüstü Paylaşımı tercihleri penceresindeki URL " +"adresine tıklarsa uzak masaüstü URL adresinin gönderileceği e-posta adresini " +"belirtir." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Son kullanıcı bağlantıyı kestiğinde ekranı kilitle" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Eğer seçiliyse, uzaktaki son istemci bağlantıyı kestiğinde ekran " +"kilitlenecek." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Durum simgesinin ne zaman gösterileceği" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Bu anahtar durum simgesinin işleyişini kontrol eder. Üç seçenek vardır: " +"\"always\" - simge her zaman gösterilir; \"client\" - simgeyi sadece birisi " +"bağlandığında görebilirsiniz (bu öntanımlı işleyiştir); \"never\" - asla " +"simge gösterilmez." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "" +"Bir kullanıcı bağlandığında masaüstü arka planının devre dışı bırakılması" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Seçili olduğunda, bir kullanıcı başarıyla bağlandığında masaüstü arka " +"planını devre dışı bırakır ve tek bir renk bloğu ile değiştirir." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Portları yönlendirmek ve açmak için UPnP yönlendirici (router) kullanılması" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Eğer seçiliyse, Vino tarafından kullanılacak portu UPnP özellikli " +"yönlendiricinin açması ve yönlendirilmesi talep edilir." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "X.org'un XDamage eklentisinin kullanılması" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Eğer seçiliyse, X.org'un XDamage eklentisini kullanmayacağız. Bu eklenti " +"bazı video sürücülerinde 3B etkileri kullanıldığında doğru çalışmıyor. Bunu " +"kapatmak Vino'nun bu ortamlarda daha yavaş tarama yan etkisiyle çalışmasını " +"sağlayacak." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Bağlandığında bildir" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Eğer seçiliyse, bir kullanıcı sisteme bağlandığında bildirim gösterilir." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Dosya geçerli bir .desktop dosyası değil" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Tanımlanamayan masaüstü dosyası Sürüm '%s'" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "%s başlatılıyor" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Uygulama komut satırında belgeleri kabul etmez" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tanımlanamayan başlangıç seçeneği: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Bir 'Type=Link' masaüstü girişine belge URI'leri geçilemez" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Başlatılabilir bir öğe değil" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Oturum yöneticisini devre dışı bırak" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Kayıtlı yapılandırmayı içeren dosyayı belirt" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "DOSYA" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Oturum yöneticisi kimliğini belirtin" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Oturum yöneticisi seçenekleri:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Oturum yönetimi seçeneklerini göster" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XSunucunuz XTest eklentisini desteklemiyor - uzaktaki masaüstü erişimi " +"sadece görünüm şeklinde olacak\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "‘Masaüstümü Paylaş’ özelliği için tüp kipinde başla" + +#: ../server/vino-main.c:255 +msgid "- VNC Server for GNOME" +msgstr "- GNOME için VNC sunucusu" + +#: ../server/vino-main.c:263 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Tüm geçerli komut satırı seçeneklerini tam listesini görmek için 'vino-" +"server --help' çalıştırın" + +#: ../server/vino-main.c:275 +msgid "GNOME Desktop Sharing" +msgstr "GNOME Masaüstü Paylaşımı" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s kullanıcısının %s üzerindeki masaüstü" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d sinyali alındı, çıkılıyor." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Ekran" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Belirtimin gösterileceği ekran" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify başlatılırken hata\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"'%s' bilgisayarındaki kullanıcı uzaktan masaüstünüzü kontrol etmek ya da " +"görüntülemek istiyor." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Başka bir kullanıcı masaüstünüzü görüntülemeye çalışıyor." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Reddet" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Kabul et" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Veri yoluna bağlantı açılamadı: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Masaüstü Paylaşımı" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME Masaüstü Paylaşım Sunucusu" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;paylaşım;uzakbağlantı;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Masaüstü paylaşımı etkin" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d kişi masaüstünüzü görüntülüyor" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Tercihler görüntülenirken hata" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Yardım görüntülenirken hata" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"GNU Genel Kamu Lisansı Sürüm 2 altında lisanslanmıştır\n" +"\n" +"Vino özgür yazılımdır; Free Software Foundation tarafınca yayınlanmış GNU\n" +"Genel Kamu Lisansı ikinci sürüm ya da (seçiminize istinaden) sonraki bir\n" +"sürüm şartlarınca değiştirilebilir ve dağıtılabilir.\n" +"\n" +"Vino kullanışlı olması maksadıyla dağıtılmaktadır, ancak\n" +"HİÇBİR GARANTİSİ YOKTUR; aynı zamanda BİR AMACA UYGUNLUĞU ya da\n" +"SATILABİLİRLİĞİ garanti etmez. Daha fazla ayrıntı için GNU Genel Kamu\n" +"Lisansını inceleyin.\n" +"\n" +"GNU Genel Kamu Lisansı'nın bir kopyasını Vino ile almış\n" +"olmalısınız; eğer almadıysanız Free Software Foundation, Inc., 59 Temple\n" +"Place, Suite 330, Boston, MA 02111-1307 USA adresine yazın\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Barış Çiçek <baris@teamforce.name.tr>\n" +"Muhammet Kara <muhammet.k@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Masaüstünüzü diğer kullanıcılar ile paylaşın" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "'%s' bağlantısını kesmek istediğinizden emin misiniz?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "" +"'%s' konumundaki uzaktaki kullanıcının bağlantısı kesilecek. Emin misiniz?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Tüm istemcilerin bağlantılarını kesmek istediğinizden emin misiniz?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Tüm uzaktaki kullanıcıların bağlantıları kesilecek. Emin misiniz?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Bağlantıyı kes" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Tercihler" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Tüm bağlantıları kes" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s bağlantısını kes" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Yardım" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Hakkında" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Masaüstünüzü başka bir kullanıcı görüntülüyor" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "'%s' bilgisayarındaki bir kullanıcı masaüstünüzü uzaktan görüntülüyor." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Masaüstünüzü başka bir kullanıcı kontrol ediyor" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "" +"'%s' bilgisayarındaki bir kullanıcı masaüstünüzü uzaktan kontrol ediyor." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Uyarı balonunu gösteriken hata: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Uzaktaki kullanıcı '%s' bağlantısı kesilecek. Emin misiniz?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Masaüstü bilgimi paylaş" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "'%s' masaüstü paylaşım davetlerini reddetti." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "'%s' bağlantısı kesildi" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "'%s' uzaktan masaüstünüzü kontrol ediyor." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "'%s' ekrana bağlanmak için bekliyor." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "_İzin ver" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Geri çevir" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Bir hata oluştu:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "URL \"%s\" görüntülenirken bir hata oluştu" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Yardım görüntülenirken bir hata oluştu:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Bu makinenin bağlanabilirliği kontrol ediliyor..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Masaüstünüz sadece yerel ağ üzerinden erişilebilir." + +#~ msgid " or " +#~ msgstr " ya da " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Diğerleri bilgisayarınıza %s adresini kullanarak ulaşabilirler." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Masaüstünüze kimse ulaşamaz." + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "Masaüstünüzü diğer kullanıcıların nasıl görebileceklerini seçin" + +#, fuzzy +#~| msgid "Retype new Vino password: " +#~ msgid "Remote desktop sharing password" +#~ msgstr "Yeni Vino parolasını yeniden yazın: " + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "Masaüstüne uzaktan erişimi etkinleştir" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "Eğer doğruysa (true), RFB iletişim kuralı ile uzaktan masaüstü erişimine " +#~ "izin verir. Uzak makinelerdeki kullanıcılar bir VNC görüntüleyici " +#~ "kullanarak masaüstüne bağlanabilirler." + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Eğer seçiliyse, vino tarafından kullanılan port router içerisinde UPnP " +#~ "protokolü kullanılarak kendiliğiden yönlendirilecek." + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "Masaüstü Paylaşım Tercihleri" + +#~ msgid "Sharing" +#~ msgstr "Paylaşım" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "Bu tercihlerden bir kısmı kilitli" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "Masaüstünüzü diğer _kullanıcıların görüntülemesine izin ver" + +#~ msgid "Your desktop will be shared" +#~ msgstr "Masaüstünüz paylaşılacak" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "Masaüstünüzü diğer kullanıcıların k_ontrol etmesine izin ver" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "Uzaktaki kullanıcılar farenizi ve klavyenizi kontrol edebilirler" + +#~ msgid "Security" +#~ msgstr "Güvenlik" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "_Bu makineye her erişimi onaylamalısınız" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "_Kullanıcının parola girmesini zorunlu kıl:" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "" +#~ "UPnP yönlendiricisini (router) port açmak ve yönlendimek için otomatik " +#~ "olarak _yapılandır" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "Router'ın UPnP özelliğinin etkinleştirilmiş olması gereklidir" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "Uyarı Alanı Simgesini Göster" + +#~ msgid "Al_ways" +#~ msgstr "Her _Zaman" + +#~ msgid "_Only when someone is connected" +#~ msgstr "_Sadece birisi bağlandığında" + +#~ msgid "_Never" +#~ msgstr "Hiçbir _zaman" + +#~ msgid "Question" +#~ msgstr "Soru" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Başka bir bilgisayardaki kullanıcı uzaktan masaüstünüzü kontrol etmek ya " +#~ "da görüntülemek istiyor." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Yapmalarına izin vermek istiyor musunuz?" + +#~ msgid "Cancelled" +#~ msgstr "İptal Edildi" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "" +#~ "HATA: Parolanın azami uzunluğu %d karakterdir. Lütfen parolayı tekrar " +#~ "girin." + +#~ msgid "Changing Vino password.\n" +#~ msgstr "Vino parolası değiştiriliyor.\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "Yeni Vino parolasını girin: " + +#~ msgid "Retype new Vino password: " +#~ msgstr "Yeni Vino parolasını yeniden yazın: " + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd: parola başarıyla güncellendi.\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "Üzgünüm, parolalar uyuşmuyor.\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd: parola değişmedi.\n" + +#~ msgid "Show Vino version" +#~ msgstr "Vino sürümünü göster" + +#~ msgid "- Updates Vino password" +#~ msgstr "- Vino parolasını günceller" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "" +#~ "Tüm geçerli komut satırı seçeneklerini tam listesini görmek için 'vino-" +#~ "passwd --help' çalıştırın" + +#~ msgid "VINO Version %s\n" +#~ msgstr "VINO Sürüm %s\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "" +#~ "HATA: Vino parolasını değiştirmek için yeterli izne sahip değilsiniz.\n" + +#~ msgid "Remote Desktop" +#~ msgstr "Uzaktaki Masaüstü" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Uzaktan masaüstü erişimini etkinleştir" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME Uzaktaki Masaüstü" + +#~ msgid "_Send address by email" +#~ msgstr "_Adresi e-posta ile gönder" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "Adres panoya _kopyala" + +#~ msgid "Al_ways display an icon" +#~ msgstr "_Her zaman bir simge göster" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Azami boyut: 8 karakter" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "" +#~ "Her gelen bağlantının kabul edilmesi ya da reddedilmesi için " +#~ "sorulacaksınız" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Ağı kendiliğinden bağlantıları kabul edecek şekilde yapılandır" + +#~ msgid "_Never display an icon" +#~ msgstr "_Asla bir simge gösterme" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "Sadece birisi _bağlandığında simge göster" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Uzaktaki Masaüstü sunucusu zaten çalışıyor; çıkılıyor ...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "GConf ile iletişim kurulurken hata. GNOME oturumuna giriş yaptınız mı?" + +#~ msgid "Error message:" +#~ msgstr "Hata mesajı:" diff --git a/po/ug.po b/po/ug.po new file mode 100644 index 0000000..2dfa32b --- /dev/null +++ b/po/ug.po @@ -0,0 +1,893 @@ +# Uighur Translation of Vino +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>, 2005 +# Sahran <sahran@live.com>,2010 +# Gheyret Kenji <gheyret@yahoo.com>, 2010 +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-01-28 19:57+0000\n" +"PO-Revision-Date: 2013-02-16 13:36+0900\n" +"Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n" +"Language-Team: GNOME Uighur Translation Project <gnome-uighur@yahoogroups.com>\n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "URL «%s» نى كۆرسىتىۋاتقاندا خاتالىق كۆرۈلدى." + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "ياردەمنى كۆرسىتىشتە خاتالىق كۆرۈلدى: \n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "مەزكۇر كومپيۇتېرنىڭ باغلىنىش ئۇچۇرلىرىنى تەكشۈرۈۋاتىدۇ…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "ئۈستەلئۈستىڭىزنى پەقەت يەرلىك توردىلا زىيارەت قىلىشقا بولىدۇ." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " ياكى " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "باشقىلار %s دېگەن ئادرېسنى ئىشلىتىپ كومپيۇتېرىڭىزنى زىيارەت قىلالايدۇ." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "ئۈستەلئۈستىنى ھېچكىم زىيارەت قىلالمايدۇ." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "ئۈستەلئۈستىنى ھەمبەھىرلەش" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "يىراقتىكى ئۈستەلئۈستىنى كۆرسىتىش ئۇسۇلىنى تاللاش پروگراممىسى" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "ئۈستەلئۈستى ھەمبەھىرى مايىللىقى" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "ھەمبەھىر" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "بىر قىسىم مايىللىق قۇلۇپلاندى" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "باشقىلارنىڭ كومپيۇتېرىڭىزنى كۆرۈشىگە رۇخسەت قىلىش(_V)" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "كومپيۇتېرىڭىز ھەمبەھىرلىنىدۇ" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "باشقا ئىشلەتكۈچىلەرنىڭ كومپيۇتېرىڭىزنى كونترول قىلىشىغا رۇخسەت قىلىڭ(_A)" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "يىراقتىكى ئىشلەتكۈچى چاشقىنەك ۋە ھەرپتاختىڭىزنى باشقۇرالايدۇ." + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "بىخەتەرلىك" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "مەزكۇر كومپيۇتېرغا بولغان ھەر بىر زىيارەتنى جەزملە(_Y)" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "ئىشلەتكۈچى بۇ ئىمنى كىرگۈزۈشى زۆرۈر(_R):" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "UPnP يېتەكلىگۈچنىڭ ئوچۇق ۋە ئۇلاپ تارقىتىدىغان ئېغىزنى ئۆزلۈكىدىن سەپلەيدۇ(_C)" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "router نىڭ UPnP ئىقتىدارى ئىناۋەتلىك قىلىنىشى كېرەك" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "ئۇقتۇرۇش رايونى سىنبەلگىسىنى كۆرسىتىش" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "ھەمىشە(_W)" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "پەقەت بىرەرى باغلانغاندىلا(_O)" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "ھەرگىز(_N)" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "يىراقتىن ئۈستەلئۈستىنى زىيارەت قىلىشنى ئىناۋەتلىك قىل" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "ئەگەر true بولسا، ئۈستەلئۈستىنى RFB كېلىشىمى ئارقىلىق زىيارەت قىلىشقا يول قويىدۇ.يىراقتىكى كومپيۇتېردىكى ئىشلەتكۈچىلەر VNC كۆرگۈ ئىشلىتىپ ئۈستەلئۈستىگە باغلىنالايدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "باغلىنىشنى ئاخىرلاشتۇرۇشتىن بۇرۇن ئىشلەتكۈچىدىن سوراش" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "ئەگەر true بولسا، يىراقتىكى ئىشلەتكۈچىلەر ساھىبخانا كومپيۇتېر ئۈستىدىكى ئىشلەتكۈچى رۇخسەت قىلمىغۇچە كىرەلمەيدۇ. مەخپىي شىفىر بىلەن قوغدالمىغان ئەھۋالدا بۇنى ئىشلىتىش ئالاھىدە تەلەپ قىلىنىدۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "يىراقتىكى ئىشلەتكۈچىلەرنىڭ پەقەت كۆرۈشىگىلا رۇخسەت قىلىش" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "ئەگەر true بولسا، يىراقتىكى ئىشلەتكۈچى ئۈستەلئۈستىنى كۆرەلەيدۇ. چاشقىنەك ۋە ھەرپتاختىنى ئىشلىتەلمەيدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "تىڭشايدىغان تور ئارايۈزى(تور كارتىسى)" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "ئەگەر بېكىتىلمىسە، مۇلازىمېتىر بارلىق تور ئارايۈزىنى تىڭشايدۇ.\n" +"\n" +" ئەگەر بەلگىلەنگەن تور ئارايۈزىدە تىڭشىماقچى بولسىڭىز بۇنى بېكىتىڭ. قىممەتلەر eth0، wifi0، lo، ..." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "باشقا بىر ئېغىزنى تىڭشا" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "ئەگەر true بولسا، مۇلازىمېتىر كۆڭۈلدىكى ئېغىز(5900) دا تىڭشىماي، باشقا بىر ئېغىزدا تىڭشايدۇ. بۇ ئېغىز 'alternative-port' دېگەن ئاچقۇچتا بەلگىلىنىشى كېرەك." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "باشقا ئېغىز نومۇرى" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "بۇ 'use-alternative-port' كۇنۇپكىسى true قىلىپ تەڭشەلسە مۇلازىمېتىر تىڭشايدىغان ئېغىز نومۇرى. ئىشلەتكىلى بولىدىغان قىممەت ئېلىش دائىرىسى 5000 دىن 50000 غىچە." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "شىفىرلاش زۆرۈر" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "ئەگەر true بولسا، يىراقتىكى ئىشلەتكۈچى ئۈستەلئۈستىنى زىيارەت قىلغاندا شىفىرلاشنى قوللاش تەلەپ قىلىنىدۇ. خېرىدار تەرەپ پروگراممىڭىزنىڭ شىفىرلاشنى قوللىشىنى كۈچلۈك تەۋسىيە قىلىمىز، ئارىلىقتىكى تور يېتەرلىك ئىشەنچلىك بولسا بۇ باشقا گەپ." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "رۇخسەت قىلىنغان سالاھىيەت دەلىللەش ئۇسۇللىرى" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "يىراقتىكى ئىشلەتكۈچىلەرنىڭ كومپيۇتېرغا كىرىشىدىكى تەكشۈرۈش ئۇسۇللىرى.\n" +"\n" +"بۇ يەردە ئىككى خىل تەكشۈرۈش ئۇسۇلى مەۋجۇت؛ \"vnc\" ئۇلىنىشتىن بۇرۇن يىراقتىكى ئىشلەتكۈچىلەرنىڭ ئىمىنى كىرگۈزۈشىنى سورايدۇ (ئىم \"vnc_password\" تەرىپىدىن بەلگىلىنىدۇ)\"none\" ھەرقانداق ئىشلەتكۈچىنىڭ باغلىشىغا رۇخسەت قىلىدۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "«vnc» سالاھىيىتىنى دەلىللەش ئۈچۈن ئۈچۈن ئىم تەلەپ قىلىنىدۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "ئەگەر \"vnc\" دەلىللەش ئۇسۇلى قوللىنىلسا يىراقتىكى ئىشلەتكۈچى ئىم كىرگۈزگەندە ئەسكەرتىدۇ. بۇ ئاچقۇچ ئىمنىڭ base64 كودلانغانلىقىنى كۆرسىتىدۇ.\n" +"\n" +"ئەگەر 'keyring' نىڭ ئالاھىدە قىممىتى (بۇ قىممەت ئىناۋەتلىك base64 كودلىنىشى) قىلىپ بەلگىلەنسە ئىم گىنوم ئاچقۇچ ھالقىسىدا ساقلىنىدىغانلىقىنى بىلدۈرىدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "ئادرېس E-mail يىراقتىكى كومپيۇتېرنىڭ ئادرېسى ئەۋەتىلمەكچى بولغان" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "بۇ ئاچقۇچ ئەگەر مەلۇم ئىشلەتكۈچى يىراقتىكى ئۈستەلئۈستى ھەمبەھىر مايىللىق سۆزلەشكۈسىدىكى ئادرېسنى چەككەندە يىراقتىكى ئۈستەلئۈستىنىڭ URL نى ئەۋەتىدىغان ئېلخەت ئادرېسىنى بەلگىلەيدۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "ئەڭ ئاخىرقى ئىشلەتكۈچى ئۈزۈلگەندە ئېكراننى قۇلۇپلا" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "ئەگەر true بولسا، ئەڭ ئاخىرقى يىراقتىكى ئىشلەتكۈچى ئۈزۈلگەندىن كېيىن ئېكران قۇلۇپلىنىدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "ھالەت سىنبەلگىسىنى قاچان كۆرسىتىدۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "بۇ ئاچقۇچ ھالەت سىنبەلگىسىنىڭ ھەرىكىتىنى تىزگىنلەيدۇ. ئۈچ تاللانما بار: «ھەمىشە» - سىنبەلگە كۆرسىتىدۇ؛ «خېرىدار» - پەقەت باشقىلار باغلانغاندىلا ئاندىن سىنبەلگىنى كۆرەلەيسىز، بۇ كۆڭۈلدىكى مەشغۇلات؛ «ھەرگىز» - سىنبەلگىنى ھەرگىز كۆرسەتمەيدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "بىر ئىشلەتكۈچى باغلانغاندا ئۈستەلئۈستى تەگلىكىنى ئىناۋەتسىز قىلسۇنمۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "ئەگەر true بولسا، بىر ئىشلەتكۈچى باغلانغاندا ئېكران تەكلىكى بىر خىل رەڭدىلا كۆرسىتىلىدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "UPnP يېتەكلىگۈچى ئوچۇق ۋە ئۇلاپ تارقىتىدىغان ئېغىزنى ئىشلەتسۇنمۇ" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "ئەگەر true بولسا، UPnP ئىقتىدارى بار يېتەكلىگۈچ Vino ئىشلەتكەن ئېغىزنى ئېچىپ ئۇلاپ تارقىتىدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "بىز X.org نىڭ XDamage كېڭەيتىلمىسىنى چەكلەمدۇق يوق" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "ئەگەر true بولسا، بىز X.org نىڭ XDamage كېڭەيتىلمىسىنى ئىشلەتمەيمىز. بۇ كېڭەيتىلمە بەزى كۆرسىتىش كارتىسىدا 3D (ئۈچ ئۆلچەملىك) ئۈنۈمنى نورمال ئىشلەتكىلى بولمايدۇ. ئۇ چەكلەنسە vino بۇ مۇھىتلاردا خىزمەت قىلالايدۇ ئەمما رەڭلەش ئاستىراق بولىدۇ." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "باغلانغاندا ئۇقتۇرسۇن" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "ئەگەر true بولسا، ئىشلەتكۈچى سىستېمىغا باغلانغاندا، ئۇقتۇرۇش قىلىدۇ." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "يىراقتىكى ئۈستەلئۈستى ھەمبەھىرىنىڭ ئىمى" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "ھۆججەت ئىناۋەتلىك .desktop ھۆججىتى ئەمەس." + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "تونۇيالمىغان ئۈستەلئۈستى ھۆججەت نەشرى ‹%s›" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "قوزغىلىۋاتقىنى %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "پروگرامما بۇيرۇق قۇرىدا پۈتۈكنى قوبۇل قىلالمايدۇ" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "تونۇمايدىغان ئىجرا تاللانمىسى: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "URI پۈتۈكنى 'Type=Link' ئۈستەلئۈستى تۈرىگە يوللىيالمىدى." + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "ئىجراچان تۈر ئەمەس" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "ئەڭگىمە باشقۇرغۇچقا باغلىنىشنى ئىناۋەتسىز قىل" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "سەپلىمە ساقلانغان ھۆججەتنى بەلگىلە" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "FILE" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "ئەڭگىمە باشقۇرغۇ ID سېنى بەلگىلە" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "كىملىكى(ID)" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "ئەڭگىمە باشقۇرغۇ تاللانمىلىرى:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "ئەڭگىمە باشقۇرغۇ تاللانمىلىرى كۆرسەت" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "سىزنىڭ XServer ىڭىز Xtest نىڭ كېڭەيتىلمىسىنى قوللىمايدۇ - يىراقتىكى كومپيۇتېرنى پەقەت كۆرۈشكىلا بولىدۇ\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "«ئۈستەلئۈستى ھەمبەھىر» ئىقتىدارىنى tube ھالەتتە قوزغىتىدۇ" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "گىنوم نىڭ VNC مۇلازىمېتىرى" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "«vino-server --help» ئىجرا قىلىنسا بۇيرۇق قۇرى تاللانمىسىنى ئىشلىتىشنىڭ تولۇق تىزىمى كۆرۈنىدۇ." + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "گىنوم ئۈستەلئۈستى ھەمبەھىرى" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s@%s نىڭ يىراقتىكى ئۈستەلئۈستى" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "%d دېگەن سىگنالنى تاپشۇرۇۋالدى، چېكىنىۋاتىدۇ." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "ئېكران" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "كىرگۈزۈشنى كۆرسىتىدىغان ئېكران" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "libnotify دەسلەپلەشتۈرۈشتە خاتالىق كۆرۈلدى\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "كومپيۇتېر %s ئۈستىدىكى مەلۇم ئىشلەتكۈچى يىراقتىن سىزنىڭ كومپيۇتېرىڭىزنى كۆرمەكچى ياكى كونترول قىلماقچى" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "باشقا ئىشلەتكۈچى ئۈستەلئۈستىڭىزنى كۆرمەكچى" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "رەت قىل" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "قوشۇل" + +#: ../server/vino-server.c:164 ../server/vino-server.c:187 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "باش لىنىيىگە باشلىنىشنى ئېچىش مەغلۇپ بولدى: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "گىنوم ئۈستەلئۈستى ھەمبەھىر مۇلازىمېتىرى" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;ھەمبەھىر;يىراق;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "ئۈستەلئۈستى ھەمبەھىرى قوزغىتىلغان" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d كىشى ئۈستەلئۈستىڭىزنى كۆرۈۋاتىدۇ" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "مايىللىقنى كۆرسىتىشتە خاتالىق كۆرۈلدى" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "ياردەمنى كۆرسىتىشتە خاتالىق كۆرۈلدى" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "GNU ئادەتتىكى ئاممىۋى ئىجازەتنامە ئىككىنچى نەشرى بويىچە ئىجازەت بېرىلدى\n" +"\n" +"Vino ئەركىن يۇمشاق دېتال؛ سىز ئەركىن يۇمشاق دېتال ۋەخپىسى تارقاتقان GNU ئادەتتىكى ئاممىۋى ئىجازەتنامە بويىچە ئۇنى قايتا تارقىتالايسىز ياكى ئۆزگەرتەلەيسىز؛ سىز شۇ ئىجازەت كېلىشىمىنىڭ ئىككىنچى نەشرى ياكى يۇقىرى نەشرىنى ئىشلەتسىڭىز بولىدۇ.\n" +"\n" +"Vino نى تارقىتىشتىكى مەقسەت سىزگە قۇلايلىق ئېلىپ كېلىش، ئەمما سودا ياكى باشقا ئالاھىدە قوللىنىشقا نىسبەتەن ھېچقانداق كاپالەت يوق. GNU ئادەتتىكى ئاممىۋى ئىجازەت كېلىشىمىنى كۆرۈپ تېخىمۇ كۆپ تەپسىلاتقا ئېرىشىڭ.\n" +"\n" +"مەزكۇر پروگرامما بىلەن بىرگە ئادەتتىكى ئاممىۋى ئىجازەتنامە(GNU General Public) ئىجازەتنامىسى چوقۇم بىرگە بولىدۇ. ئۇنداق بولمىسا ئەركىن يۇمشاق دېتال ۋەخپىسىگە خەت يېزىڭ. ئادرېسى: 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Gheyret Kenji <gheyret@gmail.com>\n" +"Sahran<sahran@live.com>\n" +"Muhemmed Erdem <misran_erdem@hotmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "ئۈستەلئۈستىڭىزنى باشقا ئىشلەتكۈچىلەرگە ھەمبەھىرلەڭ" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "راستىنىلا «%s» نىڭ باغلىنىشىنى ئۈزەمسىز؟" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "‹%s› دىكى ئىشلەتكۈچى ئۈزۈلىدۇ. شۇنداقمۇ؟" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "راستىنىلا ھەممە خېرىدار باغلىنىشىنى ئۈزەمسىز؟" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "يىراقتىكى ھەممە ئىشلەتكۈچى ئۈزۈلىدۇ. شۇنداقمۇ؟" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "ئۈز" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "مايىللىق(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "ھەممىنى ئۈز" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "%s نى ئۈز" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "ياردەم(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "ھەققىدە(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "باشقا بىر ئىشلەتكۈچى ئۈستەلئۈستىڭىزنى كۆرۈۋاتىدۇ." + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "‹%s› كومپيۇتېردىكى بىر ئىشلەتكۈچى ئۈستەلئۈستىڭىزنى يىراقتىن كۆرۈۋاتىدۇ." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "باشقا بىر ئىشلەتكۈچى كومپيۇتېرىڭىزنى يىراقتىن باشقۇرۇۋاتىدۇ." + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "‹%s› كومپيۇتېردىكى بىر ئىشلەتكۈچى كومپيۇتېرىڭىزنى يىراقتىن باشقۇرۇۋاتىدۇ." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "كۆپۈكچە ئۇقتۇرۇشنى كۆرسىتىۋاتقاندا خاتالىق كۆرۈلدى: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "يىراقتىكى ئىشلەتكۈچى ‹%s› ئۈزۈلىدۇ. شۇنداقمۇ؟" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "ئۈستەلئۈستى ئۇچۇرلىرىمنى ھەمبەھىرلە" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "‹%s› ئۈستەلئۈستىنى ھەمبەھىرلەش تەكلىپىنى رەت قىلدى." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "‹%s› ئۈزۈلدى." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "‹%s› كومپيۇتېرىڭىزنى يىراقتىن باشقۇرۇۋاتىدۇ." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "‹%s› نىڭ ئېكرانغا باغلىنىشىنى كۈتۈۋاتىدۇ." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "يول قويۇش(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "رەت قىلىش(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "خاتالىق يۈز بەردى:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "ئەمەلدىن قالدۇرۇلدى" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "خاتالىق: ئىمنىڭ ئۇزۇنلۇقى ئەڭ ئۇزۇن بولغاندا %d ھەرپ بولىدۇ. ئىمىنى قايتا كىرگۈزۈڭ." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Vino نىڭ ئىمىنى ئۆزگەرتىۋاتىدۇ.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Vino نىڭ يېڭى ئىمىنى كىرگۈزۈڭ:ئە " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Vino نىڭ يېڭى ئىمىنى قايتا كىرگۈزۈڭ: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: ئىم مۇۋەپپەقىيەتلىك ئۆزگەرتىلدى.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "كەچۈرۈڭ، ئىم بىردەك ئەمەس.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: ئىم ئۆزگەرمىدى.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Vino نىڭ نەشرىنى كۆرسەت" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "-Vino نىڭ ئىمىنى يېڭىلايدۇ" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "'vino-passwd --help' نى ئىجرا قىلىپ بۇيرۇق قۇرىنىڭ ئىشلەتكىلى بولىدىغان تاللانمىسىنىڭ ھەممىسىنى كۆرگىلى بولىدۇ" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO نەشرى %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "خاتالىق: Vino نىڭ ئىمىنى ئۆزگەرتىشكە ھوقۇقىڭىز يەتمەيدۇ.\n" + +#~ msgid "Question" +#~ msgstr "سوئال" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "باشقا كومپيۇتېر ئۈستىدىكى مەلۇم ئىشلەتكۈچى يىراقتىن سىزنىڭ " +#~ "كومپيۇتېرىڭىزنى كۆرمەكچى ياكى كونترول قىلماقچى" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "ئۇلارنىڭ شۇنداق قىلىشىغا يول قويامسىز؟" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "ئەگەر true بولسا، UPNP كېلىشىمىنى ئىشلىتىپ router (يول تاللىغۇچ) تىكى " +#~ "vino ئىشلەتكەن ئېغىزغا ئۆزلۈكىدىن جاۋاب قايتۇرىدۇ." + +#~ msgid "Remote Desktop" +#~ msgstr "Desktop يىراقتىكى" + +#~ msgid "Enable remote desktop access" +#~ msgstr "يىراقتىكى كومپيۇتېرغا كىرىشكە رۇخسەت قىلىش" + +#~ msgid "Al_ways display an icon" +#~ msgstr "سىنبەلگىنى ھەمىشە كۆرسەت(_W)" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "تور باغلىنىشنى ئاپتوماتىك قوبۇل قىلىدىغان قىلىپ تەڭشە(_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "سىنبەلگىنى ھەرگىز كۆرسەتمە(_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "باغلىنىش بولغاندىلا سىنبەلگىنى كۆرسەت(_O)" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME يىراقتىكى ئۈستەلئۈستى" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "ئەڭ كۆپ بولغاندا: 8 ھەرپ" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "باغلىنىش تەلىپىنى قوبۇل قىلىش ياكى رەت قىلىشنى ھەر قېتىم سورايدۇ." + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "" +#~ "يىراقتىكى ئۈستەلئۈستى مۇلازىمېتىرى ئاللىقاچان يۈرگۈزۈلۈۋاتىدۇ؛ " +#~ "چېكىنىۋاتىدۇ.....\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "" +#~ "GConf بىلەن ئالاقىلىشىۋاتقاندا خاتالىق كۆرۈلدى. GNOME ئەڭگىمەسىگە تىزىمغا " +#~ "كىردىڭىزمۇ؟" + +#~ msgid "Error message:" +#~ msgstr "خاتالىق ئۇچۇرى:" + +#~ msgid "Send this command by email" +#~ msgstr "بۇ كوماندىنى ئېلېكترونلۇق پوچتا بىلەن ئەۋەتىش" + +#~ msgid "Set your remote desktop access preferences" +#~ msgstr "قا كىرىش مايىللىقىڭىزنى بەلگىلەڭ Desktop يىراقتىكى" + +#~ msgid " " +#~ msgstr " " + +#~ msgid " " +#~ msgstr " " + +#~ msgid "*" +#~ msgstr "*" + +#~ msgid "A_sk you for confirmation" +#~ msgstr "(_s)ماقۇللۇق بېرىڭ" + +#~ msgid "Users can view your desktop using this command:" +#~ msgstr "ئىشلەتكۈچىلەر بۇ كوماندا ئارقىلىق سىزنىڭ كومپيۇتېرىڭىزنى كۆرەلەيدۇ" + +#~ msgid "When a user tries to view or control your desktop:" +#~ msgstr "" +#~ "مەلۇم ئىشلەتكۈچى سىزنىڭ كومپيۇتېرىڭىزنى كۆرمەكچى ياكى كونترول قىلماقچى " +#~ "بولسا" + +#~ msgid "_Password:" +#~ msgstr "مەخپىي شىفىر" + +#~ msgid "Address" +#~ msgstr "ئادرېس" + +#~ msgid "The address pointed to by the widget" +#~ msgstr "كۆزنەك كۆرسەتكەن ئادرېس" + +#~ msgid "Tooltip" +#~ msgstr "زاپچاس كۆرسەتمىسى" + +#~ msgid "A tooltip for this URL" +#~ msgstr " نىڭ زاپچاس كۆرسەتمىسى URL بۇ" + +#~ msgid "URL color" +#~ msgstr "نىڭ رەڭگى URL" + +#~ msgid "The color of the URL's label" +#~ msgstr "نىڭ بەلگىسىنىڭ رەڭگى URL" + +#~ msgid "The screen to be monitored" +#~ msgstr "كۆزەتمەكچى بولغان ئېكران" + +#~ msgid "The screen for which to create a VNC server" +#~ msgstr "مۇلازىمەتچىسىنى قۇرماقچى بولغان ئېكران VNC" + +#~ msgid "On Hold" +#~ msgstr "توختىتىپ قويماق" + +#~ msgid "Place all clients on hold" +#~ msgstr "ھەممە ئىشلەتكۈچىنى توختىتىپ قويماق" + +#~ msgid "Prompt enabled" +#~ msgstr "كىرگۈزۈشنى ئاكتىپلاشتۇرماق" + +#~ msgid "Prompt the user about connection attempts" +#~ msgstr "ئۇلاش ئۇرۇنۇشلىرىنى ئىشلەتكۈچىگە كۆرسىتىش" + +#~ msgid "View Only" +#~ msgstr "پەقەتلا كۆرۈش" + +#~ msgid "Disallow keyboard/pointer input from clients" +#~ msgstr "" +#~ "ئىشلەتكۈچىنىڭ كۇنۇپكىدىن ياكى نۇر توچكىسىدىن كىرگۈزۈشىگە رۇخسەت قىلماسلىق" + +#~ msgid "Require Encryption" +#~ msgstr "نى تەلەپ قىلىش encryption" + +#~ msgid "Require clients to use encryption" +#~ msgstr "نى ئىشلىتىشنى تەلەپ قىلىش encryption ئىشلەتكۈچىدىن" + +#~ msgid "Authentication methods" +#~ msgstr "تەكشۈرۈش ئۇسۇللىرى" + +#~ msgid "The authentication methods this server should allow" +#~ msgstr "بۇ مۇلازىمەتچى رۇخسەت قىلىدىغان تەكشۈرۈش ئۇسۇللىرى" + +#~ msgid "VNC Password" +#~ msgstr "مەخپىي شىفىرى VNC" + +#~ msgid "" +#~ "The password (base64 encoded) used to authenticate types using the " +#~ "VncAuth method" +#~ msgstr "(كودلانغان base64)ئۇسۇلى ئارقىلىق تەكشۈرۈلگەن مەخپىي شىفىر VncAuth " + +#~ msgid "" +#~ "Problem registering the remote desktop server with bonobo-activation; " +#~ "exiting ...\n" +#~ msgstr "" +#~ "بىلەن يىراقتىكى desktop مۇلازىمەتچىنى تىزىملاشتا مەسىلە كۆرۈلدى؛" +#~ "چېكىنىۋاتىدۇ.......\n" + +#~ msgid "Remote desktop server died, restarting\n" +#~ msgstr "" +#~ "مۇلازىمەتچى توختاپ قالدى، قايتىدىن قوزغىلىۋاتىدۇ desktop يىراقتىكى \n" + +#~ msgid "Activation of %s failed: %s\n" +#~ msgstr "%s :نى ئاكتىپلاشتۇرۇش مەغلۇپ بولدى %s \n" + +#~ msgid "Activation of %s failed: Unknown Error\n" +#~ msgstr "نى ئاكتىپلاشتۇرۇش مەغلۇپ بولدى: نامەلۇم خاتالىق %s\n" + +#~ msgid "Failed to activate remote desktop server: tried too many times\n" +#~ msgstr "" +#~ "يىراقتىكى مۇلازىمەتچىنى ئاكتىپلاشتۇرۇش مەغلۇپ بولدى: ئۇرۇنۇش كۆپ بولۇپ " +#~ "كەتتى\n" + +#~ msgid "Starting remote desktop server" +#~ msgstr "مۇلازىمەتچى قوزغىتىلدى desktop يىراقتىكى" + +#~ msgid "Not starting remote desktop server" +#~ msgstr "مۇلازىمەتچى قوزغىتىلمىدى desktop يىراقتىكى" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..b40e790 --- /dev/null +++ b/po/uk.po @@ -0,0 +1,847 @@ +# Ukrainian translation to vino. +# Copyright (C) Free Software Foundation +# This file is distributed under the same license as the vino package. +# Maxim Dziumanenko <dziumanenko@gmail.com>, 2004-2009 +# Korostil Daniel <ted.korostiled@gmail.com>, 2011, 2012. +# Re. <ted.korostiled@gmail.com>, 2012. +# Daniel Korostil <ted.korostiled@gmail.com>, 2013. +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-27 19:28+0200\n" +"PO-Revision-Date: 2013-03-27 15:29+0300\n" +"Last-Translator: Daniel Korostil <ted.korostiled@gmail.com>\n" +"Language-Team: linux.org.ua\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: ../capplet/vino-message-box.c:55 +#, c-format +msgid "There was an error showing the URL \"%s\"" +msgstr "Помилка при показі посилання «%s»" + +#: ../capplet/vino-preferences.c:245 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Помилка показу довідки:\n" +"%s" + +#: ../capplet/vino-preferences.c:278 +msgid "Checking the connectivity of this machine..." +msgstr "Перевірка зв'язку з цим комп'ютером…" + +#: ../capplet/vino-preferences.c:298 +msgid "Your desktop is only reachable over the local network." +msgstr "Ваша стільниця доступна лише з локальної мережі." + +#: ../capplet/vino-preferences.c:311 +msgid " or " +msgstr " або " + +#: ../capplet/vino-preferences.c:315 +#, c-format +msgid "Others can access your computer using the address %s." +msgstr "Інші можуть отримати доступ до комп'ютера, скориставшись адресою %s." + +#: ../capplet/vino-preferences.c:324 +msgid "Nobody can access your desktop." +msgstr "Ніхто не може отримати доступу до комп'ютера." + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Cпільне користування стільницею " + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Choose how other users can remotely view your desktop" +msgstr "Виберіть спосіб віддаленого перегляду вашої стільниці" + +#: ../capplet/vino-preferences.ui.h:1 +msgid "Desktop Sharing Preferences" +msgstr "Налаштування спільно використання віддаленої стільниці" + +#: ../capplet/vino-preferences.ui.h:2 +msgid "Sharing" +msgstr "Спільне користування" + +#: ../capplet/vino-preferences.ui.h:3 +msgid "Some of these preferences are locked down" +msgstr "Деякі з цих налаштувань заблоковано" + +#: ../capplet/vino-preferences.ui.h:4 +msgid "Allow other users to _view your desktop" +msgstr "Дозволити іншим користувачам пере_глядати вашу стільницю" + +#: ../capplet/vino-preferences.ui.h:5 +msgid "Your desktop will be shared" +msgstr "Ваша стільниця буде спільною" + +#: ../capplet/vino-preferences.ui.h:6 +msgid "_Allow other users to control your desktop" +msgstr "Дозво_лити іншим користувачам контролювати вашу стільницю" + +#: ../capplet/vino-preferences.ui.h:7 +msgid "Remote users are able to control your mouse and keyboard" +msgstr "Дозволити віддаленим користувачам контролювати клавіатурою та мишею" + +#: ../capplet/vino-preferences.ui.h:8 +msgid "Security" +msgstr "Безпека" + +#: ../capplet/vino-preferences.ui.h:9 +msgid "_You must confirm each access to this machine" +msgstr "_Підтверджувати особисто кожне з'єднання до цього комп'ютера" + +#: ../capplet/vino-preferences.ui.h:10 +msgid "_Require the user to enter this password:" +msgstr "_Вимагати цей пароль від користувача:" + +#: ../capplet/vino-preferences.ui.h:11 +msgid "Automatically _configure UPnP router to open and forward ports" +msgstr "" +"Автоматично _налаштувати маршрутизатор UPnP, щоб відкрити переспрямовані " +"порти" + +#: ../capplet/vino-preferences.ui.h:12 +msgid "The router must have the UPnP feature enabled" +msgstr "У маршрутизаторі треба увімкнути функцію UPnP" + +#: ../capplet/vino-preferences.ui.h:13 +msgid "Show Notification Area Icon" +msgstr "Показувати піктограму ділянки сповіщення" + +#: ../capplet/vino-preferences.ui.h:14 +msgid "Al_ways" +msgstr "_Завжди" + +#: ../capplet/vino-preferences.ui.h:15 +msgid "_Only when someone is connected" +msgstr "_Лише, коли хтось під'єднаний" + +#: ../capplet/vino-preferences.ui.h:16 +msgid "_Never" +msgstr "_Ніколи" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "Увімкнути віддалений доступ до стільниці" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"Якщо це позначено, дозволяє віддалено досягати стільниці через протокол RFB. " +"Користувачі на віддалених машинах можуть з'єднуватись до стільниці через " +"переглядач VNC." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "Питати користувача перед завершенням з'єднання" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Якщо ввімкнено, віддалений доступ до стільниці буде заборонено, доки " +"користувач головної машини не схвалить з'єднання. Особливо рекомендується " +"при безпарольному з'єднанні." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "Віддаленим користувачам дозволено лише перегляд стільниці" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Якщо увімкнено, віддалений доступ до стільниці дозволено лише для перегляду. " +"Віддалені користувачі не зможуть використовувати клавіатуру та мишу." + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "Мережний інтерфейс для очікування" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Якщо не встановлено, сервер буде очікувати з'єднання на всіх мережевих " +"інтерфейсах.\n" +"\n" +"Встановіть цей параметр, якщо бажаєте приймати з'єднання лише від певного " +"мережевого інтерфейсу. Наприклад, eth0, wifi0, lo, тощо." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "Очікувати на альтернативний порт" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Якщо позначено, сервер буде очікувати на інший порт, замість типового " +"(5900). Порт потрібно вказати у ключі «alternative-port»." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "Альтернативний номер порту" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Порт, який сервер очікуватиме, якщо встановлено ключ «use-alternative-port». " +"Допустимі значення у діапазоні від 5000 до 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "Вимагати шифрування" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Якщо увімкнено, віддалений доступ до робочого столу дозволяється лише при " +"використанні шифрування. Наполегливо рекомендується, щоб ви використовували " +"програми, які підтримують шифрування, крім випадку коли доступ відбувається " +"через захищену мережу." + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "Дозволені способи автентифікації" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Перелік способів автентифікації, з якими віддалені користувачі можуть " +"одержати доступ до стільниці.\n" +"\n" +"Є два можливі способи автентифікації; «vnc» змушує віддаленого користувача " +"перед з'єднанням вводити пароль (пароль визначається ключем vnc-password) та " +"«none», який дозволяє під'єднуватись будь-якому користувачу." + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "Пароль, потрібний для автентифікації «vnc»" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Пароль, який буде вимагатись у віддаленого користувача за використання " +"способу автентифікації «vnc». Пароль вказується у системі кодуванні base64.\n" +"\n" +"Спеціальне значення «keyring» (яке недоступне для base64) означає, що пароль " +"зберігається у сховищі ключів GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Електронна адреса, на яку слід відправляти посилання віддаленої стільниці" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Цей ключ визначає адресу електронної пошти, на яку потрібно надіслати URL, " +"якщо користувач клацає на URL у вікні налаштування віддаленого спільно " +"використання стільниці." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "Блокувати екран після від'єднання останнього користувача" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Якщо увімкнено, екран блокуватиметься після вимкнення останнього віддаленого " +"клієнта." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "Коли слід показувати піктограму стану" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Цей ключ відповідає за показ піктограми стану. Доступно три стани: «always» " +"— показувати піктограму постійно; «client» — показувати піктограму, якщо є " +"наявні з'єднання з кимось (це типова поведінка); «never» — ніколи не " +"показувати." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Чи вмикати тло стільниці, коли користувача під'єднано" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Якщо встановлено, вимкнено тло стільниці й замінено на один блок кольору, " +"якщо користувача успішно під'єднано." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "" +"Чи слід використовувати маршрутизатори UPnP для перенаправлення і відкриття " +"портів" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Якщо вказано, чи маршрутизатор сумісний з UPnP має перенаправляти і " +"відкривати порти через Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Чи варто вимкнути розширення XDamage у X.org" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Якщо встановлено, не буде використовуватись розширення XDamage у X.org. Це " +"розширення не працює коректно на деяких відеодрайверах, якщо використовувати " +"просторові ефекти. Його вимкнення дасть змогу Vino працювати з цими " +"розширеннями, проте повільніше." + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "Сповістити на з'єднанні" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "" +"Якщо зазначено, показує сповіщенння, коли користувач під'єднався до системи." + +#: ../common/vino-keyring.c:54 ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "Пароль до оприлюднення віддаленої стільниці" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Файл не є коректним файлом .desktop" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Не розпізнано версію файла стільниці «%s»" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Запускається %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Програма не підтримує прийняття документів у командному рядку" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Не розпізнано параметр запуску: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "" +"Не вдалось передати посилання документу до запису стільниці 'Type=Link'" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Пункт без можливості запуску" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Вимкнути з'єднання з менеджером сеансів" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Вказати файл, що містить збережені налаштування" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "ФАЙЛ" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Вказати ідентифікатор керування сеансами" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Ідентифікатор" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Параметри керування сеансами:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Показати параметри керування сеансами" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Ваш XServer не підтримує розширення XTest — режим доступу до віддаленої " +"стільниці буде лише для перегляду\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Запустити в режимі тунелю, для «Оприлюднити мою стільницю»." + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "— сервер VNC для GNOME" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Запустіть 'vino-server --help' для перегляду повного списку можливих " +"параметрів" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "Спільне використання стільниці для GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "0" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Віддалена стільниця користувача %s на %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Отримано сигнал %d, вихід." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Екран" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Екран, на якому показується запрошення" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Помилка запуску libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Користувач на комп'ютері «%s» намагається віддалено переглянути та " +"вконтролювати вашу стільницю." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Інший користувач намагається переглянути вашу стільницю." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Відмовити" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Дозволити" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Не вдалось відкрити з'єднання з шиною: %s\n" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Сервер спільного використання стільниці для GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;спільний;віддалений;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Увімкнено спільне користування стільницею " + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d особа переглядає вашу стільницю" +msgstr[1] "%d особи переглядають вашу стільницю" +msgstr[2] "%d осіб переглядають вашу стільницю" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Помилка при показі налаштувань" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Помилка при показі довідки" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Ліцензується на умовах General Public License версії 2\n" +"\n" +"Vino є вільною програмою; ви можете розповсюджувати її й/або змінювати її на " +"умовах ліцензії GNU General Public License, яку опублікували Free Software " +"Foundation; версії 2 цієї ліцензії або (на ваш розсуд) будь-якою старшою " +"версією.\n" +"Vino постачається зі сподіванням, що буде корисним, але БЕЗ БУДЬ-ЯКИХ " +"ГАРАНТІЙ; навіть без неявної гарантії ПРИДАТНОСТІ ДО ПРОДАЖУ чи " +"ВІДПОВІДНОСТІ ПЕВНІЙ МЕТІ. Докладніше дивіться GNU General Public License.\n" +"Ви мали б отримати копію ліцензії GNU General Public License разом з " +"програмою, якщо це не так напишіть Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Максим Дзюманенко <dziumanenko@gmail.com>\n" +"Коростіль Данило <ted.korostiled@gmail.com>" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Оприлюднити вашу стільницю іншим користувачам" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Від'єднати «%s»?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Віддаленого користувача з «%s» буде від'єднано. Впевнені?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Від'єднати усіх клієнтів?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Усіх віддалених користувачів буде від'єднано. Впевнені?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Від'єднати" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Налаштування" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Від'єднати всіх" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Від'єднати %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "_Довідка" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Про програму" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Інший користувач переглядає вашу стільницю" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Користувач на комп'ютері «%s» віддалено переглядає вашу стільницю." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Інший користувач контролює вашу стільницю" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Користувач на комп'ютері «%s» віддалено контролює вашу стільницю." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Помилка при показі діаграми сповіщення: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Віддаленого користувача «%s» буде від'єднано. Впевнені?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Оприлюднити мою інформацію про стільницю" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "«%s» відмовив у запрошенні спільного користування стільницею." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "«%s» вимкнено" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "«%s» віддалено контролює вашу стільницю." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Очікування «%s» для з'єднання з екраном." + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "_Дозволити" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "_Відмовити" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "Трапилась помилка:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "Скасовано" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "" +"ПОМИЛКА: Максимальна довжина паролю %d символ. Введіть інший пароль." +msgstr[1] "" +"ПОМИЛКА: Максимальна довжина паролю %d символи. Введіть інший пароль." +msgstr[2] "" +"ПОМИЛКА: Максимальна довжина паролю %d символів. Введіть інший пароль." + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "Зміна паролю Vino.\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "Введіть новий пароль Vino: " + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "Повторно введіть пароль Vino: " + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd: пароль успішно оновлено.\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "Даруйте, але паролі не збігаються.\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd: пароль не змінено.\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "Показати версію Vino" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "— оновлення паролю Vino" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "Запустіть 'vino-passwd --help' для перегляду повного списку параметрів" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO версія %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "ПОМИЛКА: немає достатньо прав для зміни паролю Vino.\n" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "Якщо встановлено, буде використовуватись протокол UPNP для автоматичного " +#~ "налаштування портів маршрутизатора, що використовує vino." + +#~ msgid "Question" +#~ msgstr "Запитання" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "" +#~ "Користувач з іншого комп'ютера намагається віддалено переглянути та " +#~ "вконтролювати вашу стільницю." + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "Дозволити це йому?" + +#~ msgid "Remote Desktop" +#~ msgstr "Віддалена стільниця" + +#~ msgid "Enable remote desktop access" +#~ msgstr "Увімкнути віддалений доступ до стільниці" + +#~ msgid "Al_ways display an icon" +#~ msgstr "Зав_жди показувати піктограму" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "_Налаштувати мережу автоматично для прийняття з'єднань" + +#~ msgid "_Never display an icon" +#~ msgstr "_Ніколи не показувати піктограму" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "_Показувати значок, лише якщо хтось під'єднаний" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "Віддалена стільниця GNOME" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "Максимальний розмір: 8 символів" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "У вас буде запитано дозвіл або відмову на вхідні з'єднання" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "Сервер віддаленої стільниці вже запущено; вихід …\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "Помилка під час зв'язку з GConf. Ви увійшли у сеанс GNOME?" + +#~ msgid "Error message:" +#~ msgstr "Повідомлення про помилку:" + +#~ msgid "_Send address by email" +#~ msgstr "_Надіслати цю команду ел.поштою" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "_Копіювати адресу у буфер обміну" diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..d54c6b4 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,611 @@ +# Vietnamese translation for Vino +# Copyright © 2014 GNOME i18n Project for Vietnamese. +# This file is distributed under the same license as the vino package. +# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2004, 2007, 2012. +# Clytie Siddall <clytie@riverland.net.au>, 2005-2009. +# Trần Ngọc Quân <vnwildman@gmail.com>, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: vino master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2014-11-26 23:50+0000\n" +"PO-Revision-Date: 2014-11-27 13:25+0700\n" +"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" +"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "Nhắc người dùng trước khi kết nối xong" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Nếu đúng thì không cho phép người dùng từ xa truy cập cho đến khi người dùng " +"trên máy chính chấp nhận kết nối. Khuyến khích đặc biệt khi truy cập không " +"được bảo mật bằng mật khẩu." + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "Cho phép người dùng từ xa chỉ xem màn hình làm việc" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"Đúng thì người dùng từ xa truy cập màn hình nền chỉ có khả năng xem. Người " +"dùng từ xa sẽ không thể sử dụng con chuột hoặc bàn phím để điều khiển." + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "Giao diện mạng để lắng nghe" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"Không đặt thì trình phục vụ sẽ lắng nghe trên mọi giao diện mạng.\n" +"\n" +"Hãy đặt tuỳ chọn này nếu bạn muốn nó chấp nhận kết nối chỉ từ một giao diện " +"nào đó, v.d. eth0, wifi0, lo và tương tự như thế." + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "Lắng nghe trên cổng thay thế" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"Nếu đúng (true) thì trình phục vụ sẽ lắng nghe trên cổng khác, thay cho cổng " +"mặc định (5900). Cổng khác này cần phải được chỉ định trong khoá " +"“alternative-port”." + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "Số hiệu cổng thay thế" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"Cổng trên đó trình phục vụ sẽ lắng nghe nếu khoá “use-alternative-" +"port” (dùng cổng thay thế) được đặt là đúng (true). Giá trị hợp lệ nằm trong " +"phạm vi 5000 đến 50000." + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "Đòi hỏi mật mã" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Đúng thì người dùng từ xa phải hỗ trợ khả năng mật mã. Rất khuyên bạn sử " +"dụng một ứng dụng khách hỗ trợ mật mã, trừ khi bạn tin cậy hoàn toàn mạng " +"trung gian." + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "Phương pháp xác thực đã chấp nhận" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"Liệt kê các phương pháp xác thực với chúng người dùng từ xa có thể truy cập " +"màn hình làm việc.\n" +"\n" +"Có hai phương pháp truy cập có thể: \"vnc\" gây ra người dùng từ xa được " +"nhắc nhập mật khẩu (được ghi rõ trong khóa \"vnc-password\") trước khi kết " +"nối, còn \"none\" (không có) cho phép mọi người dùng từ xa có khả năng truy " +"cập." + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "Mật khẩu cần thiết để xác thực “vnc”" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"Mật khẩu người dùng từ xa được nhắc nhập nếu phương pháp xác thực \"vnc\" " +"được dùng. Mật khẩu được chỉ ra bằng khoá được mã hóa kiểu base64.\n" +"\n" +"Giá trị đặc biệt \"keyring\" (không phải là giá trị base64 hợp lệ) nghĩa là " +"mật khẩu lưu trong vòng khoá GNOME." + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "" +"Địa chỉ thư điện tử cho đó cần gửi địa chỉ URL của màn hình làm việc từ xa" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"Khóa này ghi rõ địa chỉ thư điện tử cho đó địa chỉ URL của màn hình từ xa " +"nên được gửi, nếu người dùng nhấn vào URL trong hộp thoại Tùy thích của Chia " +"Sẻ Màn Hình Làm Việc Từ Xa." + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "Khoá màn hình khi người dùng cuối cùng ngắt kết nối" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "" +"Nếu đúng thì màn hình bị khoá sau khi ứng dụng khách từ xa cuối cùng ngắt " +"kết nối." + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "Có nên hiển thị biểu tượng trạng thái khi nào" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"Khoá này điều khiển ứng xử của biểu tượng trạng thái. Có ba tùy chọn:\n" +" * always\t\tbiểu tượng luôn luôn ở đó\n" +" * client\t\tbạn thấy biểu tượng chỉ khi người dùng có kết nối (mặc định)\n" +" * never\t\tkhông bao giờ hiển thị biểu tượng." + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "Có tắt nền khi người dùng được kết nối hay không" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "" +"Nếu đúng, tắt ảnh nền màn hình và thay thế nó bằng một khối màu đơn khi một " +"người dùng kết nối." + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "Có nên để bộ định tuyến UPNP chuyển tiếp và mở cổng hay không" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"Nếu đúng, yêu cầu rằng bộ định tuyến có khả năng UPnp nên chuyển và mở cổng " +"được dùng bởi Vino." + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "Chúng tôi có nên tắt phần mở rộng XDamage dành cho X.org hay không" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"Nếu đúng, không dùng phần mở rộng XDamage dành cho X.org. Phần mở rộng này " +"không hoạt động đúng trên một số trình điều khiển khi dùng hiệu ứng 3D. Tắt " +"nó sẽ làm cho Vino hoạt động trong môi trường này, với tốc độ vẽ chậm hơn vì " +"hiệu ứng cạnh (side effect)." + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "Thông báo khi kết nối" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "Nếu đúng, hiển thị thông báo khi một người dùng kết nối vào hệ thống." + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "Không phải tập tin .desktop hợp lệ" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "Không nhận ra phiên bản tập tin .desktop “%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "Đang khởi động %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "Ứng dụng không chấp nhận tài liệu trên dòng lệnh" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "Tuỳ chọn thực thi không nhận ra: %d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "Không thể chuyển URI tài liệu cho mục desktop “Type=Link”" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "Không phải mục chạy được" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "Tắt kết nối với bộ quản lý phiên chạy" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "Chỉ định tập tin chứa cấu hình đã lưu" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "TẬP-TIN" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "Ghi rõ Mã số phiên chạy quản lý" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "Mã số" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "Các tùy chọn quản lý phiên:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "Hiện các tùy chọn quản lý phiên chạy" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"XServer (trình hỗ trợ hệ thống cửa sổ X) của bạn không hỗ trợ phần mở rộng " +"XTest nên truy cập vào màn hình làm việc từ xa chỉ có khả năng xem\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "Hoạt động ở chế độ tube, dành cho đặc tính “Chia sẻ máy tính của tôi”" + +#: ../server/vino-main.c:255 +msgid "- VNC Server for GNOME" +msgstr " - Máy chủ VNC cho GNOME" + +#: ../server/vino-main.c:263 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "" +"Hãy chạy \"vino-server --help\" để thấy một danh sách đầy đủ các tuỳ chọn " +"dòng lệnh" + +#: ../server/vino-main.c:275 +msgid "GNOME Desktop Sharing" +msgstr "Chia sẻ Màn hình GNOME" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:tài_khoản_người_xem" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "Màn hình nền từ xa của %s trên %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "Nhận được tín hiệu %d, đang thoát." + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "Màn hình" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Màn hình cần hiển thị lời nhắc" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "Gặp lỗi khi khởi tạo libnotify\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Người dùng trên máy “%s” đang cố xem hoặc điều khiển màn hình làm việc của " +"bạn từ xa." + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "Người dùng khác đang cố xem màn hình làm việc của bạn." + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "Từ chối" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "Nhận lời" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "Gặp lỗi khi mở kết nối đến bus: %s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "Chia sẻ màn hình" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "Máy chủ Chia sẻ màn hình GNOME" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;chia;sẻ;se;từ;xa;điều;khiển;dieu;khien;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "Đã bật chia sẻ màn hình nền" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d người đang xem màn hình của bạn" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "Gặp lỗi khi hiển thị tuỳ thích" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "Gặp lỗi khi hiển thị trợ giúp" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"Được phát hành với điều kiện của Giấy phép Công Chung GNU (GPL) phiên bản 2\n" +"\n" +"Chương trình này là phần mềm tự do; bạn có thể phát hành lại nó và/hoặc sửa\n" +"đổi nó với điều kiện của Giấy phép Công cộng GNU như được xuất bản bởi Tổ\n" +"chức Phần mềm Tự do; hoặc phiên bản 2 của Giấy phép này, hoặc (tùy chọn) " +"bất\n" +"kỳ phiên bản sau nào.\n" +"\n" +"Chương trình này được phát hành vì mong muốn nó có ích, nhưng KHÔNG CÓ BẢO\n" +"HÀNH GÌ CẢ, THẬM CHÍ KHÔNG CÓ BẢO ĐẢM ĐƯỢC NGỤ Ý KHẢ NĂNG BÁN HAY KHẢ NĂNG\n" +"LÀM ĐƯỢC VIỆC DỨT KHOÁT. Xem Giấy phép Công cộng GNU để biết thêm chi tiết.\n" +"\n" +"Bạn đã nhận một bản sao của Giấy phép Công cộng GNU cùng với chương trình\n" +"này; nếu không, hãy viết thư cho Tổ chức Phần mềm Tự do,\n" +"Free Software Foundation, Inc.,\n" +"51 Franklin Street, Fifth Floor,\n" +"Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "Nhóm Việt hoá GNOME (http://gnomevi.sourceforge.net)" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "Chia sẻ màn hình của bạn với người khác" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "Bạn có chắc muốn ngắt kết nối “%s” chứ?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "Người dùng từ “%s” sẽ bị ngắt kết nối. Bạn chắc chứ?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "Bạn có chắc muốn ngắt kết nối mọi người không?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "Mọi người sẽ bị ngắt kết nối. Bạn chắc chứ?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "Ngắt kết nối" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "_Tuỳ thích" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "Ngắt tất cả kết nối" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "Ngắt kết nối %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "Trợ _giúp" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "_Giới thiệu" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "Cho phép người khác xem màn hình làm việc của bạn" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "Người dùng trên máy “%s” xem màn hình làm việc của bạn từ xa." + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "Cho phép người dùng khác điều khiển màn hình làm việc của bạn" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "Người dùng trên máy “%s” điều khiển màn hình làm việc của bạn từ xa." + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "Lỗi hiển thị bong bóng thông báo: %s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "Người dùng từ xa “%s” sẽ bị ngắt kết nối. Bạn chắc chứ?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "Chia sẻ thông tin màn hình của bạn" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "“%s” đã từ chối lời mời chia sẻ màn hình." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "“%s” đã ngắt kết nối" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "“%s” đang điều khiển màn hình của bạn." + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "Đang chờ “%s” kết nối vào màn hình." + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "Cho _phép" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "_Từ chối" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "Đã có lỗi xảy ra:" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "Gặp lỗi khi hiển thị địa chỉ URL “%s”" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "Gặp lỗi khi hiển thị trợ giúp:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "Đang kiểm tra tình trạng kết nối của máy này…" + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "Chỉ có thể tiếp cận tới màn hình nền của bạn qua mạng cục bộ." + +#~ msgid " or " +#~ msgstr " hoặc " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "Người khác có thể truy cập đến máy tính của bạn dùng địa chỉ %s." + +#~ msgid "Nobody can access your desktop." +#~ msgstr "Không có ai có khả năng truy cập đến màn hình nền của bạn." diff --git a/po/wa.po b/po/wa.po new file mode 100644 index 0000000..0eff5a0 --- /dev/null +++ b/po/wa.po @@ -0,0 +1,361 @@ +# SOME DESCRIPTIVE TITLE. +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Pablo Saratxaga <pablo@mandriva.com>, 2005. +# Pablo Saratxaga <pablo@walon.org>, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-04-01 21:01+0200\n" +"PO-Revision-Date: 2005-04-19 17:19+0200\n" +"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n" +"Language-Team: Walloon <linux-wa@walon.org>\n" +"Language: wa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: KBabel 1.3.1\n" + +#: capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Emile cisse comande ci" + +#: capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Åk n' a nén stî tot håynant l' aidance:\n" +"%s" + +#: capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "Sicribanne å lon" + +#: capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Definixhoz vos preferinces po l' accès å scribanne å lon" + +#: capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Såvrité</b>" + +#: capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Pårtaedje</b>" + +#: capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "_Dimander èn acertinaedje" + +#: capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Permete ki ds ôtes uzeus voeyexhe _vosse sicribanne" + +#: capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Preferinces do scribanne då lon" + +#: capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Sacwantes di ces preferinces ci sont serêyes" + +#: capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "Les uzeus polèt vey vosse sicribanne avou l' comande:" + +#: capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Cwand èn uzeu saye di vey ou d' controler vosse sicribanne:" + +#: capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Permete a ds ôtes uzeus di controler vosse sicribanne" + +#: capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "_Sicret:" + +#: capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "_Oblidjî l' uzeu a dner on scret:" + +#: capplet/vino-url.c:158 +msgid "Address" +msgstr "Adresse" + +#: capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "L' adresse pontieye pa l' ahesse (widget)" + +#: capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Racsegne" + +#: capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Ene racsegne po cisse hårdêye ci" + +#: capplet/vino-url.c:173 +msgid "URL color" +msgstr "Coleur pol hårdêye" + +#: capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "Li coleur po l' etikete del hårdêye" + +#: server/vino-fb.c:947 server/vino-prompt.c:144 server/vino-server.c:851 +msgid "Screen" +msgstr "Waitroûle" + +#: server/vino-fb.c:948 +msgid "The screen to be monitored" +msgstr "Li waitroûle a corwaitî" + +#: server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"Li sierveu X da vosse ni sopoite nén l' fonccion d' rawete XTest - ça fwait " +"k' l' accès då lon å scribanne ni pout esse k' e môde seulmint-lére\n" + +#: server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "Li waitroûle k' on-z î håynêye li kesse" + +#: server/vino-prompt.c:385 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Èn uzeu sol copiutrece «%s» å lon saye di vey ou d' controler vosse " +"sicribanne." + +#: server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Èn ôte uzeu saye di vey vosse sicribanne.</b></big>" + +#: server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Èn uzeu so ene ôte copiutrece å lon saye di vey ou d' controler vosse " +"sicribanne." + +#: server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Voloz vs elzî permete di fé çoula?" + +#: server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Kesse" + +#: server/vino-prompt.glade.h:5 server/vino-util.c:64 +msgid "_Allow" +msgstr "_Permete" + +#: server/vino-prompt.glade.h:6 server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Rifuzer" + +#: server/vino-server.c:852 +msgid "The screen for which to create a VNC server" +msgstr "Li waitroûle k' on ndè vout fé on sierveu VNC" + +#: server/vino-server.c:859 +msgid "On Hold" +msgstr "Fé ratinde" + +#: server/vino-server.c:860 +msgid "Place all clients on hold" +msgstr "Fé ratinde tos les cliyints" + +#: server/vino-server.c:867 +msgid "Prompt enabled" +msgstr "Mete èn alaedje li kesse" + +#: server/vino-server.c:868 +msgid "Prompt the user about connection attempts" +msgstr "Dimander a l' uzeu cwè fé avou les sayes di raloyaedje" + +#: server/vino-server.c:875 +msgid "View Only" +msgstr "Vey seulmint" + +#: server/vino-server.c:876 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Dismete l' intrêye taprece/sori po les cliyints" + +#: server/vino-server.c:883 +msgid "Require Encryption" +msgstr "Oblidjî l' ecriptaedje" + +#: server/vino-server.c:884 +msgid "Require clients to use encryption" +msgstr "Oblidjî les cliyints a-z eployî l' ecriptaedje" + +#: server/vino-server.c:891 +msgid "Authentication methods" +msgstr "Metôdes d' otintifiaedje" + +#: server/vino-server.c:892 +msgid "The authentication methods this server should allow" +msgstr "Les metôdes d' otintifiaedje ki ç' sierveu ci acceptêye" + +#: server/vino-server.c:900 +msgid "VNC Password" +msgstr "Sicret VNC" + +#: server/vino-server.c:901 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"Li scret (ecôdé e base64) eployî po les sôres d' otintifiaedje avou " +"l' metôde VncAuth" + +#: server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Metôdes d' otintifiaedje permetowes" + +#: server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Adresse emile kel hårdêye do scribanne å lon doet esse evoyeye" + +#: server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Mete en alaedje l' accès å scribanne då lon" + +#: server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Si vraiy, permete les accès då lon å scribanne åd triviè do protocole RFB. " +"Les uzeus so des copiutreces å lon polèt adon si raloyî sol sicribanne avou " +"on cliyint vncviewer." + +#: server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Si vraiy, les uzeus so des copiutreces å lon n' ont nén accès å scribanne " +"disk' a tant ki l' uzeu so l' éndjole lodjoe ni dene nén si acoird pol " +"raloyaedje. Ricmandé tot pårticulirmint cwand l' accès n' est nén protedjî " +"avou on scret." + +#: server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"Si vraiy, les uzeus so des copiutreces å lon n' ont èn accès å scribanne " +"k' e môde seulmint-lére. Les uzeus då lon èn polèt nén eployî l' taprece ou " +"l' sori." + +#: server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Si vraiy, les uzeus so des copiutreces å lon sont-st oblidjîs d' eployî " +"l' ecriptaedje divant d' aveur accès å scribanne. C' est foitmint ricmande " +"d' eployî on cliyint ki sopoite l' ecriptaedje, a moens ki vos årîz pår " +"fiyate dins l' rantoele." + +#: server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" + +#: server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Peremete ås uzeus då lon d' seulmint di seulmint vey li scribanne" + +#: server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "I gn a mezåjhe d' on scret po l' otintifiaedje «vnc»" + +#: server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Dimander a l' uzeu divant d' completer l' raloyaedje" + +#: server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Oblidjî l' ecriptaedje" + +#: server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" + +#: server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" + +#: server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "" + +#: server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" + +#: session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "" + +#: session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "" + +#: session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "" + +#: session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" + +#: session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Enondant li sierveu di scribanne då lon" + +#: session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "" diff --git a/po/xh.po b/po/xh.po new file mode 100644 index 0000000..82ec1c3 --- /dev/null +++ b/po/xh.po @@ -0,0 +1,377 @@ +# Xhosa translation of vino +# Copyright (C) 2005 Canonical Ltd. +# This file is distributed under the same license as the vino package. +# Translation by Canonical Ltd <translations@canonical.com> with thanks to +# Translation World CC in South Africa, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: vino\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-03-30 16:14+0200\n" +"PO-Revision-Date: 2005-03-22 17:15+0200\n" +"Last-Translator: Canonical Ltd <translations@canonical.com>\n" +"Language-Team: Xhosa <xh-translate@ubuntu.com>\n" +"Language: xh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../capplet/vino-preferences.c:807 +msgid "Send this command by email" +msgstr "Thumela lo myalelo nge-imeyile" + +#: ../capplet/vino-preferences.c:842 +#, c-format +msgid "" +"There was an error displaying help:\n" +"%s" +msgstr "" +"Kwabakho impazamo ekuboniseni unceda:\n" +"%s" + +#: ../capplet/vino-preferences.desktop.in.in.h:1 +msgid "Remote Desktop" +msgstr "i-Desktop Ekude" + +#: ../capplet/vino-preferences.desktop.in.in.h:2 +msgid "Set your remote desktop access preferences" +msgstr "Misela uluhlu lwezinto ezikhethekayo ezifikelelekayo kwi-desktop ekude" + +#: ../capplet/vino-preferences.glade.h:1 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:2 +msgid " " +msgstr " " + +#: ../capplet/vino-preferences.glade.h:3 +msgid "*" +msgstr "*" + +#: ../capplet/vino-preferences.glade.h:4 +msgid "<b>Security</b>" +msgstr "<b>Ukhuseleko</b>" + +#: ../capplet/vino-preferences.glade.h:5 +msgid "<b>Sharing</b>" +msgstr "<b>Iyabelana</b>" + +#: ../capplet/vino-preferences.glade.h:6 +msgid "A_sk you for confirmation" +msgstr "Ic_ela wena yenzela uqinisekiso" + +#: ../capplet/vino-preferences.glade.h:7 +msgid "Allow other users to _view your desktop" +msgstr "Vumela abanye abasebenzisi ba _bonise i-desktop yakho" + +#: ../capplet/vino-preferences.glade.h:8 +msgid "Remote Desktop Preferences" +msgstr "Izinto Ekunokukhethwa kuzo Ezikude ze-Desktop" + +#: ../capplet/vino-preferences.glade.h:9 +msgid "Some of these preferences are locked down" +msgstr "Ezinye zezi zinto ekunokukhethwa kuzo zitshixelwe phantsi" + +#: ../capplet/vino-preferences.glade.h:10 +msgid "Users can view your desktop using this command:" +msgstr "Abasebenzisi bangabonisa i-desktop yakho besebenzisa lo myalelo:" + +#: ../capplet/vino-preferences.glade.h:11 +msgid "When a user tries to view or control your desktop:" +msgstr "Xa umsebenzisi ezama ukubonisa okanye elawula i-desktop yakho:" + +#: ../capplet/vino-preferences.glade.h:12 +msgid "_Allow other users to control your desktop" +msgstr "_Vumela abanye abasebenzisi ukuba balawulu i-desktop yakho" + +#: ../capplet/vino-preferences.glade.h:13 +msgid "_Password:" +msgstr "i-_Password:" + +#: ../capplet/vino-preferences.glade.h:14 +msgid "_Require the user to enter this password:" +msgstr "_Cela umsebenzisi angenise le-password:" + +#: ../capplet/vino-url.c:158 +msgid "Address" +msgstr "Idilesi" + +#: ../capplet/vino-url.c:159 +msgid "The address pointed to by the widget" +msgstr "Idilesi ekhonjwe yi-widget" + +#: ../capplet/vino-url.c:166 +msgid "Tooltip" +msgstr "Inkcazelo yesixhobo" + +#: ../capplet/vino-url.c:167 +msgid "A tooltip for this URL" +msgstr "Inkcazelo yesixhobo yale-URL" + +#: ../capplet/vino-url.c:173 +msgid "URL color" +msgstr "Umbala we-URL" + +#: ../capplet/vino-url.c:174 +msgid "The color of the URL's label" +msgstr "Umbala welebhile ye-URL" + +#: ../server/vino-fb.c:947 ../server/vino-prompt.c:144 +#: ../server/vino-server.c:851 +msgid "Screen" +msgstr "Iskrini" + +#: ../server/vino-fb.c:948 +msgid "The screen to be monitored" +msgstr "Iskrini emasonganyelwe" + +#: ../server/vino-main.c:78 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "" +"I-XSeva ayisixhasi isongezo esiyi XTest - ukufikelela okude kwe-desktop kuya " +"bonisa-kuphela\n" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "I-screen apho kuboniswa kwesiqhubi" + +#: ../server/vino-prompt.c:385 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "" +"Umsebenzisi kwikhompyutha '%s' uzama ukuyibonisa kude okanye ukuyilawula i-" +"desktop yakho." + +#: ../server/vino-prompt.glade.h:1 +msgid "<big><b>Another user is trying to view your desktop.</b></big>" +msgstr "<big><b>Omnye umsebenzisi uzama ukubonisa i-desktop yakho.</b></big>" + +#: ../server/vino-prompt.glade.h:2 +msgid "" +"A user on another computer is trying to remotely view or control your " +"desktop." +msgstr "" +"Umsebenzisi kwenye ikhompyutha uzama ukubonisa kude okanye ukulawula " +"ikhompyutha yakho." + +#: ../server/vino-prompt.glade.h:3 +msgid "Do you want to allow them to do so?" +msgstr "Uyafuna ukubavumela ukuba benze oko?" + +#: ../server/vino-prompt.glade.h:4 +msgid "Question" +msgstr "Umbuzo" + +#: ../server/vino-prompt.glade.h:5 ../server/vino-util.c:64 +msgid "_Allow" +msgstr "_Vumela" + +#: ../server/vino-prompt.glade.h:6 ../server/vino-util.c:65 +msgid "_Refuse" +msgstr "_Landula" + +#: ../server/vino-server.c:852 +msgid "The screen for which to create a VNC server" +msgstr "Isikrini ekuza kudalwa kuso iseva ye-VNC" + +#: ../server/vino-server.c:859 +msgid "On Hold" +msgstr "Ekumiso" + +#: ../server/vino-server.c:860 +msgid "Place all clients on hold" +msgstr "Beka bonke abaxhasi kumiso" + +#: ../server/vino-server.c:867 +msgid "Prompt enabled" +msgstr "Isiqhubi senziwe ukuba sisebenze" + +#: ../server/vino-server.c:868 +msgid "Prompt the user about connection attempts" +msgstr "Qhuba umsebenzi ngeenzame zoqhagamshelwano" + +#: ../server/vino-server.c:875 +msgid "View Only" +msgstr "Bonisa kuphela" + +#: ../server/vino-server.c:876 +msgid "Disallow keyboard/pointer input from clients" +msgstr "Musa ukuvumela ingeniso ye-keyboard/isikhombisi usuke kubaxhasi" + +#: ../server/vino-server.c:883 +msgid "Require Encryption" +msgstr "Cela Ukuvulwa Kombhalo Ofihlakeleyo" + +#: ../server/vino-server.c:884 +msgid "Require clients to use encryption" +msgstr "Cela abaxhasi ukuba basebenzise ukuvulwa kombhalo ofihlakeleyo" + +#: ../server/vino-server.c:891 +msgid "Authentication methods" +msgstr "Iindlela zokuqinisekisa" + +#: ../server/vino-server.c:892 +msgid "The authentication methods this server should allow" +msgstr "Iindlela zokuqinisekisa emazivunyelwe yile seva" + +#: ../server/vino-server.c:900 +msgid "VNC Password" +msgstr "I-VNC Password" + +#: ../server/vino-server.c:901 +msgid "" +"The password (base64 encoded) used to authenticate types using the VncAuth " +"method" +msgstr "" +"I-password (base64 inxulunyanisiwe) esetyenziswe ukuqinisekisa iintlobo " +"ezisebenzisa indlela ye-VncAuth" + +#: ../server/vino-server.schemas.in.h:1 +msgid "Allowed authentication methods" +msgstr "Iindlela zokuqinisekisa ezivunyelweyo" + +#: ../server/vino-server.schemas.in.h:2 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "Idilesi ye-imeyile apho i-desktop ekude ye-URL mayithunyelwe khona" + +#: ../server/vino-server.schemas.in.h:3 +msgid "Enable remote desktop access" +msgstr "Yenza ukuba kubekho ukufikelela kwe-desktop ekude" + +#: ../server/vino-server.schemas.in.h:4 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a vncviewer." +msgstr "" +"Ukuba yinyani, ivumela ukufikelela okukude ukuba kuye kwi-desktop ngendlela " +"edlula kwimithetho yokusebenza ye-RFB. Abasebenzisi kwiimatshini ezikude " +"banganxulumana ne-deskto besebenzisa isibonisi se-vnc." + +#: ../server/vino-server.schemas.in.h:5 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"Ukuba yinyani, abasebenzisi abakude abafikelela i-desktop abavunyelwanga " +"ukufikelela de umsebenzisi kwimatshini engumququzeli alwamkele " +"uqhagamshelwano. Iyakhuthazwa ikakhulu xa ufikelelo lungakhuselwanga yi-" +"password." + +#: ../server/vino-server.schemas.in.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote user's will not be able to use the mouse or keyboard." +msgstr "" +"Ukuba yinyani, abasebenzisi abakude abafikelela i-desktop bavunyelwa kuphela " +"ukubonisa i-desktop. Abasebenzisi abakude abasayi kuvunyelwa ukusebenzisa i-" +"mouse okanye i-keyboard." + +#: ../server/vino-server.schemas.in.h:7 +msgid "" +"If true, remote users accessing the desktop are required to be able support " +"encyrption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"Ukuba yinyani, abasebenzisi abakude abafikelela kwi-desktop bayacelwa ukuba " +"babe nako ukuxhasa ukuvulwa kombhalo ofihlakeleyo. Iyakhuthazwa kakhulu into " +"yokuba usebenzise umxhasi oxhasa inkqubo yokuvulwa kombhalo ofihlakeleyo " +"ngaphandle kokuba uthungelwano olulamlayo luthenjiwe." + +#: ../server/vino-server.schemas.in.h:8 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop. There are two possible authentication methods; \"vnc\" causes the " +"remote user to be prompted for a password (the password is specified by the " +"vnc_password key) before connecting and \"none\" which allows any remote " +"user to connect." +msgstr "" +"Idwelisa iindlela zoqinisekiso ekuthi ngazo abasebenzisi abakude " +"bangayifikelela i-desktop, Zimbini iindlela ezingakhoyo zoqinisekiso; i \"vnc" +"\" yenza ukuba umsebenzisi okude aqhutywe afunwe i-password (i-password " +"ibalulwe ngesitshixo se-password ye_vnc) ngaphambi kokuba aqhagamshelane " +"kwakunye ne \"none\" evumela nawuphi na umsebenzisi okude ukuba " +"aqhagamshelane." + +#: ../server/vino-server.schemas.in.h:9 +msgid "Only allow remote users to view the desktop" +msgstr "Ivumela kuphela abasebenzisi abakude ukubonisa i-desktop" + +#: ../server/vino-server.schemas.in.h:10 +msgid "Password required for \"vnc\" authentication" +msgstr "i-Password ecelelwa uqinisekiso lwe \"vnc\"" + +#: ../server/vino-server.schemas.in.h:11 +msgid "Prompt the user before completing a connection" +msgstr "Qhuba umsebenzisi ngaphambi kokugqiba uqhagamshelwano" + +#: ../server/vino-server.schemas.in.h:12 +msgid "Require encryption" +msgstr "Cela ukuvulwa kombhalo ofihlakeleyo" + +#: ../server/vino-server.schemas.in.h:13 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded." +msgstr "" +"I-password ekuya kuthi ngayo umsebenzisi aqhutywe ngayo ukuba indlela " +"yoqinisekiso i \"vnc\" iyasetyenziswa. I-password ebalulwa ngesitshixo " +"inxulumana ne-base64." + +#: ../server/vino-server.schemas.in.h:14 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Remote Desktop preferences " +"dialog." +msgstr "" +"Esi sitshixo sibalula idilesi ye-imeyile apho i-URL ye-desktop ekude " +"kufuneka ithunyelwe khona ukuba umsebenzisi ucofa kwi-URL ekunxibelelwano " +"lwezinto ekunokukhethwa kuzo kwi-Desktop Ekude." + +#: ../server/vino-shell.c:76 +msgid "Remote Desktop server already running; exiting ...\n" +msgstr "Iseva ye-Desktop Ekude sele iphumeza; iyaphuma...\n" + +#: ../server/vino-shell.c:79 +msgid "" +"Problem registering the remote desktop server with bonobo-activation; " +"exiting ...\n" +msgstr "" +"Ingxaki ekuboniseni iseva ye-desktop ekude kwi-bonobo-activation; " +"iyaphuma...\n" + +#: ../session/vino-session.c:133 +msgid "Remote desktop server died, restarting\n" +msgstr "Iseva ye-desktop ekude ifile, iyaqalisa kwakhona\n" + +#: ../session/vino-session.c:154 +#, c-format +msgid "Activation of %s failed: %s\n" +msgstr "Ukwenza ukuba i %s isebenze kwakhona akuphumelelanga: %s\n" + +#: ../session/vino-session.c:160 +#, c-format +msgid "Activation of %s failed: Unknown Error\n" +msgstr "" +"Ukwenza ukuba i %s isebenze kwakhona akuphumelelanga: Impazamo Engaziwayo\n" + +#: ../session/vino-session.c:231 +msgid "Failed to activate remote desktop server: tried too many times\n" +msgstr "" +"Ayiphumelelanga ukwenza ukuba iseva ye-desktop ekude isebenze: izama " +"amaxesha amaninzi kakhulu\n" + +#: ../session/vino-session.c:295 +msgid "Starting remote desktop server" +msgstr "Iqalisa iseva ye-desktop ekude" + +#: ../session/vino-session.c:300 +msgid "Not starting remote desktop server" +msgstr "Ayiqalisi seva ye-desktop ekude" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..4e9e085 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,820 @@ +# Simplified Chinese translation for vino. +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the vino package. +# Li Shaojie <storm-119@163.com> ,2004. +# Yang Zhang <zyangmath@gmail.com>, 2007. +# Deng Xiyue <manphiz@gmail.com>, 2008. +# 甘露(Gan Lu) <rhythm.gan@gmail.com>, 2009. +# Lele Long <schemacs@gmail.com>, 2011. +# YunQiang Su <wzssyqa@gmail.com>, 2011, 2012. +# eternalhui <www.eternalhui@gmail.com>, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: vino HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2013-08-08 20:04+0000\n" +"PO-Revision-Date: 2013-11-23 16:18+0800\n" +"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n" +"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.5\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "允许远程访问桌面" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "" +"如果为 true,允许通过 RFB 协议远程访问桌面。之后远程机器的的用户可以使用 VNC " +"查看器连接到桌面。" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "完成连接前提示用户" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"如果为 true,直到主机的用户批准了连接,远程用户才可以访问远程桌面。特别推荐使" +"用于没有密码保护的访问。" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "仅允许远程用户查看桌面" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "" +"如果为 true,远程用户访问桌面时只允许查看桌面。远程用户不能使用鼠标与键盘。" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "用于监听的网络接口" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +#| msgid "" +#| "If not set, the server will listen on all network interfaces.\n" +#| "\n" +#| "Set this if you want that accept connections only from some specific " +#| "network interface. eg: eth0, wifi0, lo, ..." +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"如果不设置,服务器将监听所有网络接口。\n" +"\n" +"如果您只打算接收来自某些指定网络接口的连接(eth0,wifi0,lo 等),请设置该值。" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "监听替代端口" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +#| msgid "" +#| "If true, the server will listen to another port, instead of the default " +#| "(5900). The port must be specified in the 'alternative-port' key." +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"如果为 true,服务器将监听另一个端口,而不是默认的 5900。端口号必须" +"在“alternative-port”键中指定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "替代端口号" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +#| msgid "" +#| "The port which the server will listen to if the 'use-alternative-port' " +#| "key is set to true. Valid values are in the range from 5000 to 50000." +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"在“use-alternative-port”键设置为 true 时,服务器将监听的端口号。可取值的范围" +"为 5000 到 50000。" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "请求加密" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"如果为 true,要求访问桌面的远程用户支持加密。强烈推荐您使用支持加密的客户端," +"除非中间网络足够可信。" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "允许的验证方法" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"列出远程用户访问使用的验证方法。\n" +"\n" +"有两种可能的验证方法:“vnc”在连接之前提示远程用户输入密码(密码由 vnc-" +"password 键指定)或者“none”,允许任何远程用户连接。" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "“vnc” 认证时所需的密码" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"在使用“vnc”验证方法时,提示远程用户输入的密码。由此键指定的密码会用 base64 进" +"行编码。\n" +"\n" +"如果为特殊值“keyring”(这不是有效的 base64 编码值),表示密码存储在 GNOME 密钥" +"环中。" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "发送远程桌面 URL 地址的电子邮箱地址" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"此键指定接收远程桌面 URL 的电子邮箱地址。在用户点击了桌面共享首选项对话框内" +"的 URL 时,会向此邮箱发送对应的 URL。" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "最后一个用户断开连接时锁住屏幕" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +#| msgid "" +#| "If true, screen will be locked after the last remote client disconnect." +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "如果为 true,在最后一个远程客户端断开连接后屏幕将被锁定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "何时显示状态图标" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +#| msgid "" +#| "This key controls the behavior of the status icon. There are three " +#| "options: \"always\" - The icon will be always there; \"client\" - You " +#| "will see the icon only when there is someone connected, this is the " +#| "default behavior; \"never\" - Never shows the icon." +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"此键控制状态图标的行为。有三个选项:“always” - 总是显示图标;“client” - 您将仅在" +"有人连接的时候看到图标,这是默认行为;“never” - 从不显示图标。" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +#| msgid "When true, disable the background on receive valid session" +msgid "Whether to disable the desktop background when a user is connected" +msgstr "当为 True 时,将在用户连接后禁用背景" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "如果为 true,有用户成功连接时将桌面背景替换为单色。" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +#| msgid "Whether we should use UPNP to forward the port in routers" +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "是否用 UPNP 路由器来转发和打开端口" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"如果为 true,要求具有 UPnP 转发功能的路由器转发并开放 Vino 使用的端口。" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "我们是否应当禁用 X.org 的 XDamage 扩展" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +#| msgid "" +#| "If true, we will not use the XDamage extension of X.org. This extension " +#| "does not work properly on some video drivers when using 3D effects. " +#| "Disabling it will make vino work on these environments with a slower " +#| "rendering as side effect." +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"如果为 true,我们将不使用 X.org 的 XDamage 扩展。这个扩展在一些显卡上不能正常使" +"用 3D 效果。禁用它将会使 vino 在这些环境下能够工作,但是渲染会慢一点。" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "连接时提示" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +#| msgid "If true, we will notify, when the user connects to the system." +msgid "If true, show a notification when a user connects to the system." +msgstr "如果为 true,当用户连接到此系统时会显示通知。" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "文件不是一个有效的 .desktop 文件" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "不可识别的桌面文件版本“%s”" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "正在启动 %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "应用程序在命令行下不接受文档" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "不可识别的加载选项:%d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "不能将文档 URI 传递给一个“Type=Link”桌面项" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "不是一个可加载项" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "禁用到会话管理器的连接" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "指定包含已保存配置的文件" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "文件" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "指定会话管理器 ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "会话管理器选项:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "显示会话管理器选项" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "您的 XServer 不支持 XTest 扩展 - 远程桌面访问只能查看\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "以电视机(tube)模式启动,用于‘共享我的桌面’功能" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME 的 VNC 服务端" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "运行“vino-server --help”查看可用命令行选项的完整列表" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME 桌面共享" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusernam" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s 在 %s 上的远程桌面" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "收到信号 %d,正在退出。" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "屏幕" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "显示提示信息的屏幕" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "初始化 libnotify 出错\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "计算机“%s”上的一位用户正在尝试远程查看或控制您的桌面。" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "另一位用户正在尝试查看您的桌面。" + +#: ../server/vino-prompt.c:291 +#| msgid "_Refuse" +msgid "Refuse" +msgstr "拒绝" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "接受" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "打开到总线的连接失败:%s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "桌面共享" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME 桌面共享服务器" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "桌面共享已开启" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "%d 位用户正在查看您的桌面" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "显示首选项时出错" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "显示帮助时出错" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"在 GNU GPL V2 下授权\n" +"\n" +"Vino 是自由软件;您可以在自由软件基金会发布的 GNU 通用公共\n" +"许可证的条款下重新发布或修改它;您应当使用协议的第二版或更高的版本。\n" +"\n" +"Vino 发布的目的是希望它对您有用,但没有任何保证;对于以任何\n" +"用途使用它所造成的任何直接或间接后果都不承担任何责任。请参\n" +"看 GNU GPL 协议中的细节。\n" +"\n" +"您应该在收到本程序的同时收到了 GNU GPL 协议的副本;如果您\n" +"没有收到的话,请给自由软件基金会写信,地址是\n" +"51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"Li Shaojie <storm-119@163.com>, 2004\n" +"Yang Zhang <zyangmath@gmail.com>, 2007\n" +"Deng Xiyue <manphiz@gmail.com>, 2008\n" +"甘露(Gan Lu) <rhythm.gan@gmail.com>, 2009\n" +"Tao Wei <weitao1979@gmail.com>\n" +"Lele Long <schemacs@gmail.com>, 2011\n" +"eternalhui www.eternalhui@gmail.com>,2013" + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "与其它用户共享您的桌面" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "您确定要断开连接“%s”吗?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "将要断开与来自“%s”的远程用户的连接。您确定吗?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "您确定要断开与所有客户端的连接吗?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "将要断开与所有远程用户的连接。您确定吗?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "断开连接" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "首选项(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "断开所有连接" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "断开连接 %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "帮助(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "关于(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "其它用户正在查看您的桌面" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "位于计算机“%s”上的用户正在远程查看您的桌面。" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "其他用户正在控制您的桌面" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "位于计算机“%s”上的用户正在远程控制您的桌面。" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "显示气泡通知时出错:%s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "将要断开远程用户“%s”的连接。您确定吗?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "共享我的桌面信息" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "“%s”拒绝了桌面共享邀请。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "“%s”已经断开连接" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "“%s”正在远程控制您的桌面。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "等待“%s”连接到屏幕。" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "允许(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "拒绝(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "发生了一个错误:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "远程桌面共享密码:" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "已取消" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "错误:密码最长为 %d 字符。请重新输入密码。" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "正在更改 Vino 密码。\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "输入新的 Vino 密码:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "再输一次新的 Vino 密码:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd:密码更新成功。\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "对不起,两次密码不一致。\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd:密码没有更改。\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "显示 Vino 版本" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- 更新 Vino 密码" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "运行 “vino-passwd --help”查看可用命令行选项的完整列表" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO 版本 %s\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "错误:您没有足够的权限来更改 Vino 密码。\n" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "显示网址 “%s” 时出现了一个错误" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "显示帮助时出现了一个错误:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "正在检查本机的联网状态..." + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "您的桌面仅可在本地网络中访问。" + +#~ msgid " or " +#~ msgstr "或者" + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "其他人可以使用这个地址 %s 来访问您的电脑。" + +#~ msgid "Nobody can access your desktop." +#~ msgstr "没有人可以访问您的桌面。" + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "选择其他用户如何远程查看您的桌面" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "如果为 True,将使用 UPNP 协议来自动转发路由器中 vino 所使用的端口。" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "桌面共享首选项" + +#~ msgid "Sharing" +#~ msgstr "共享" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "某些首选项已被锁定" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "允许其他人查看您的桌面(_V)" + +#~ msgid "Your desktop will be shared" +#~ msgstr "您的桌面将被共享" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "允许其他用户控制您的桌面(_A)" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "远程用户能够控制您的鼠标和键盘" + +#~ msgid "Security" +#~ msgstr "安全" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "您必须为本机器确认每次访问(_Y)" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "要求用户输入此密码(_R):" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "自动配置 UPnP 路由器开放和转发端口(_C)" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "路由器必须启用 UPnP 功能" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "显示通知区域图标" + +#~ msgid "Al_ways" +#~ msgstr "总是(_W)" + +#~ msgid "_Only when someone is connected" +#~ msgstr "只在有用户连接时(_O)" + +#~ msgid "_Never" +#~ msgstr "永不(_N)" + +#~ msgid "Question" +#~ msgstr "问题" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "其他计算机上的一位用户在尝试远程查看或控制您的桌面。" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "您允许他们这样做吗?" + +#~ msgid "Remote Desktop" +#~ msgstr "远程桌面" + +#~ msgid "Enable remote desktop access" +#~ msgstr "启用远程桌面访问" + +#~ msgid "Al_ways display an icon" +#~ msgstr "总是显示图标(_W)" + +#~ msgid "_Configure network automatically to accept connections" +#~ msgstr "配置网络为自动接受连接(_C)" + +#~ msgid "_Never display an icon" +#~ msgstr "从不显示图标(_N)" + +#~ msgid "_Only display an icon when there is someone connected" +#~ msgstr "仅在别人连接上时显示图标(_O)" + +#~ msgid "GNOME Remote Desktop" +#~ msgstr "GNOME 远程桌面" + +#~ msgid "_Send address by email" +#~ msgstr "通过电子邮件发送地址(_S)" + +#~ msgid "_Copy address to clipboard" +#~ msgstr "复制地址到剪贴板(_C)" + +#~ msgid "Maximum size: 8 characters" +#~ msgstr "最大大小:8 个字符" + +#~ msgid "You will be queried to allow or to refuse every incoming connection" +#~ msgstr "您将会被问到是否允许或拒绝每个进入的连接。" + +#~ msgid "Remote Desktop server already running; exiting ...\n" +#~ msgstr "远程桌面服务器已经在运行;退出...\n" + +#~ msgid "" +#~ "Error while communicating with GConf. Are you logged into a GNOME session?" +#~ msgstr "和 GConf 通讯时出现了错误。您已经登录到了一个 GNOME 会话吗?" + +#~ msgid "Error message:" +#~ msgstr "错误信息:" + +#~ msgid "Out of memory handling '%s' message" +#~ msgstr "处理消息“%s”时内存用尽" + +#~ msgid "Out of memory registering object path '%s'" +#~ msgstr "注册对象路径“%s”时内存用尽" + +#~ msgid "Failed to acquire D-Bus name '%s'\n" +#~ msgstr "获取 D-Bus 名称“%s”失败\n" diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..32c9d0d --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,721 @@ +# Chinese (Hong Kong) translation of vino. +# Copyright (C) 2004-06 Free Software Foundation, Inc. +# Chi-Wei Chen <michelin@seed.net.tw>, 2004. +# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2009. +# Wei-Lun Chao <chaoweilun@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: vino 3.3.4\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-24 19:26+0800\n" +"PO-Revision-Date: 2013-09-24 19:26+0800\n" +"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n" +"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Enable remote access to the desktop" +msgstr "啟用遠端對桌面的存取" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, allows remote access to the desktop via the RFB protocol. Users on " +"remote machines may then connect to the desktop using a VNC viewer." +msgstr "如設定為 true,允許遠端電腦以 RFB 協定使用桌面。遠端電腦的使用者就可以用 VNC viewer 連接到桌面。" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Prompt the user before completing a connection" +msgstr "在完成連接前提示使用者" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "如設定為 true,除非是在主機的用戶允許,否則遠端使用者不被允許使用桌面。建議使用,特別是沒有密碼保護的情形下。" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Only allow remote users to view the desktop" +msgstr "只允許遠端使用者去觀看桌面" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "如設定為 true,遠端使用者僅被允許觀看桌面。他們將無法使用滑鼠或鍵盤。" + +#: ../common/org.gnome.Vino.gschema.xml.h:7 +msgid "Network interface for listening" +msgstr "要聽取的網絡介面" + +#: ../common/org.gnome.Vino.gschema.xml.h:8 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"如果不設定,伺服器就會聽取所有的網絡介面。\n" +"\n" +"如果你只想接受來自特定網絡介面的連線就設定它。例如:eth0、wifi0、lo 等等。" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Listen on an alternative port" +msgstr "監聽替代的連接埠" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "如設定為 true,該伺服器會監聽其他連接埠,而非預設值 (5900)。此連接埠必須在「alternative-port」設定鍵中指定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Alternative port number" +msgstr "替代連接埠號" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "如「use-alternative-port」鍵值設為 true 時,伺服器要監聽的連接埠。可用的數值範圍為 5000 到 50000。" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Require encryption" +msgstr "需要加密" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "如設定為 true,要存取桌面的遠端使用者必須支援加密。強烈建議使用支援加密的客戶端,除非兩者間的網絡是可信賴的。" + +#: ../common/org.gnome.Vino.gschema.xml.h:17 +msgid "Allowed authentication methods" +msgstr "允許的核對方式" + +#: ../common/org.gnome.Vino.gschema.xml.h:18 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"列出遠端使用者可以使用的核對方式。\n" +"\n" +"有兩種可能的核對方式:一是「vnc」,即在連接前提示遠端使用者輸入密碼 (此密碼是由 vnc-password 設定鍵決定),或者是「none」,即允許任何遠端使用者連接。" + +#: ../common/org.gnome.Vino.gschema.xml.h:21 +msgid "Password required for \"vnc\" authentication" +msgstr "“vnc”核對方式需要密碼" + +#: ../common/org.gnome.Vino.gschema.xml.h:22 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"如果使用「vnc」核對方法的話,遠端使用者需要輸入這個密碼。此密碼是用 base64 編碼的。\n" +"\n" +"若看到特殊的數值「keyring」(不是有效的 base64) 表示密碼是儲存在 GNOME 密碼匙圈裏。" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "遠端桌面的 URL 應該寄送至這個電郵地址" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "這個設定鍵所指定的電子郵件位址是當使用者按下桌面分享偏好設定對話方塊中的 URL,遠端桌面網址應寄送的位址。" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "Lock the screen when last user disconnect" +msgstr "當最後的使用者斷線時鎖定畫面" + +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "如設定為 true,畫面會在最後的遠端客戶端斷線後鎖定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "When the status icon should be shown" +msgstr "何時要顯示狀態圖示" + +# (pofilter) gconf: do not translate gconf attribute: "always", "client", "never" +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "這個設定鍵控制了狀態圖示的行為。一共有三種選項:「always」(總是)─ 總是顯示圖示;「client」(客戶端) ─ 只在有人連線時才顯示圖示 (這是預設的行為);「never」(永不) ─ 永遠不顯示圖示。" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "當有使用者連線時是否停用桌面背景" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "當 true 時,有使用者成功連線時停用桌面背景並以單一顏色區塊取代它。" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "是否要使用 UPnP 在路由器中轉址與開啟連接埠" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "如果設定為 true,要求支援 UPnP 的路由器應該轉址並開啟 Vino 使用的連接埠。" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "我們是否要停用 X.org 的 XDamage 延伸功能" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "如果設為 true,我們將不會使用 X.org 的 XDamage 延伸功能。這項延伸功能在部分視像驅動程式下使用 3D 效果時無法正常運作。將它停用的副作用為 Vino 在這些環境下的繪製速度會變得較慢。" + +#: ../common/org.gnome.Vino.gschema.xml.h:37 +msgid "Notify on connect" +msgstr "連線時通知" + +#: ../common/org.gnome.Vino.gschema.xml.h:38 +msgid "If true, show a notification when a user connects to the system." +msgstr "如果設為 true,當使用者連線到系統時顯示通知。" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "檔案不是有效的 .desktop 檔案" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "無法辨識的桌面檔案版本「%s」" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "準備啟動 %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "應用程式不接受以命令列開啟文件" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "無法辨識的啟動選項:%d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "不能傳送文件 URI 至「Type=Link」桌面項目" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "不是可以啟動的項目" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "停用到作業階段管理程式的連線" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "指定含有已儲存組態的檔案" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "檔案" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "指定作業階段管理 ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "作業階段管理選項:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "顯示作業階段管理選項" + +#: ../server/vino-main.c:202 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "你的 X Server 不支援 XTest 延伸功能 ─ 只可以觀看遠端桌面\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:301 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "以管道模式啟動,用於「分享我的桌面」功能" + +#: ../server/vino-main.c:307 +msgid "- VNC Server for GNOME" +msgstr "- GNOME 的 VNC 伺服器" + +#: ../server/vino-main.c:315 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "執行‘vino-server --help‘ 以查看所有可用的命令列選項清單" + +#: ../server/vino-main.c:336 +msgid "GNOME Desktop Sharing" +msgstr "GNOME 桌面分享" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s 的遠端桌面於 %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "收到信號 %d,正在離開。" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "螢幕" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "顯示提示的螢幕" + +#: ../server/vino-prompt.c:263 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "初始化 libnotify 時發生錯誤\n" + +#: ../server/vino-prompt.c:282 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "在電腦‘%s’上的使用者正嘗試觀看或控制你的桌面" + +#: ../server/vino-prompt.c:285 +msgid "Another user is trying to view your desktop." +msgstr "另一個使用者正嘗試觀看你的桌面。" + +#: ../server/vino-prompt.c:291 +msgid "Refuse" +msgstr "拒絕" + +#: ../server/vino-prompt.c:297 +msgid "Accept" +msgstr "接受" + +#: ../server/vino-server.c:166 ../server/vino-server.c:189 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "開啟至 bus 的連線失敗:%s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "桌面分享" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME 桌面分享伺服器" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;分享;遠端;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "桌面共享已啟用" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "一個使用者正在觀看你的桌面" +msgstr[1] "%d 個使用者正在觀看你的桌面" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "顯示偏好設定時發生錯誤" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "顯示說明文件時發生錯誤" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"以 GNU 通用公共授權條款第二版授權\n" +"\n" +"Vino 為自由軟件;你可根據據自由軟件\n" +"基金會所發表的 GNU 通用公共授權條款(\n" +"可選用第二版或以後的任何版本)規定,\n" +"將本程式再散布或修改,或兩者同時進行。\n" +"\n" +"Vino 係基於使用目的而加以散布,然而\n" +"不負任何擔保責任;亦無對適售性或\n" +"特定目的適用性所為的默示性擔保。\n" +"詳情請參照 GNU 通用公共授權。\n" +"\n" +"你應該已收到附於本程式的GNU 通用公共授權\n" +"的副本;如果沒有,請寫信至:Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"如對翻譯有任何意見,請送一封電子郵件給\n" +"以下地址,GNOME 翻譯隊伍會盡快回覆你:\n" +"zh-l10n@lists.linux.org.tw\n" +"\n" +"Chi-Wei Chen <michelin@seed.net.tw>, 2004." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "與別的使用者分享你的桌面" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "你確定要將‘%s’斷線?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "來自‘%s’的遠端使用者會被斷線。你確定嗎?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "確定要將所有的客戶端斷線?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "所有的遠端使用者會被斷線。你確定嗎?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "斷線" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "偏好設定(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "全部斷線" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "斷線 %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "求助(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "關於(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "其他使用者正在觀看你的桌面" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "在電腦‘%s’上的使用者正遠端觀看你的桌面。" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "其他使用者正在控制你的桌面" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "在電腦‘%s’上的使用者正遠端控制你的桌面。" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "顯示通知氣泡視窗時發生錯誤:%s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "遠端使用者「%s」會被斷線。你確定嗎?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "分享我的桌面資訊" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "「%s」拒絕了桌面分享邀請。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "「%s」已斷線" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "「%s」正在遠端控制你的桌面。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "正在等候「%s」連線至畫面。" + +#: ../server/vino-util.c:89 +msgid "_Allow" +msgstr "允許(_A)" + +#: ../server/vino-util.c:90 +msgid "_Refuse" +msgstr "拒絕(_R)" + +#: ../server/vino-util.c:140 +msgid "An error has occurred:" +msgstr "發生錯誤:" + +#: ../tools/vino-passwd.c:54 +msgid "Remote desktop sharing password" +msgstr "遠端桌面分享密碼" + +#: ../tools/vino-passwd.c:108 +#, c-format +msgid "Cancelled" +msgstr "已取消" + +#: ../tools/vino-passwd.c:115 +#, c-format +msgid "" +"ERROR: Maximum length of password is %d character. Please, re-enter the " +"password." +msgid_plural "" +"ERROR: Maximum length of password is %d characters. Please, re-enter the " +"password." +msgstr[0] "錯誤:密碼的最大長度為 %d 個字符。請重新輸入密碼。" +msgstr[1] "錯誤:密碼的最大長度為 %d 個字符。請重新輸入密碼。" + +#: ../tools/vino-passwd.c:149 +#, c-format +msgid "Changing Vino password.\n" +msgstr "正在改變 Vino 密碼。\n" + +#: ../tools/vino-passwd.c:151 +msgid "Enter new Vino password: " +msgstr "輸入新的 Vino 密碼:" + +#: ../tools/vino-passwd.c:154 +msgid "Retype new Vino password: " +msgstr "再輸入一次 Vino 密碼:" + +#: ../tools/vino-passwd.c:160 +#, c-format +msgid "vino-passwd: password updated successfully.\n" +msgstr "vino-passwd:密碼更新成功。\n" + +#: ../tools/vino-passwd.c:165 +#, c-format +msgid "Sorry, passwords do not match.\n" +msgstr "抱歉,密碼不相符。\n" + +#: ../tools/vino-passwd.c:166 +#, c-format +msgid "vino-passwd: password unchanged.\n" +msgstr "vino-passwd:密碼沒有改變。\n" + +#: ../tools/vino-passwd.c:182 +msgid "Show Vino version" +msgstr "顯示 Vino 版本" + +#: ../tools/vino-passwd.c:191 +msgid "- Updates Vino password" +msgstr "- 更新 Vino 密碼" + +#: ../tools/vino-passwd.c:201 +msgid "" +"Run 'vino-passwd --help' to see a full list of available command line options" +msgstr "執行‘vino-passwd --help‘ 以查看所有可用的命令列選項清單" + +#: ../tools/vino-passwd.c:208 +#, c-format +msgid "VINO Version %s\n" +msgstr "VINO %s 版\n" + +#: ../tools/vino-passwd.c:219 +#, c-format +msgid "ERROR: You do not have enough permissions to change Vino password.\n" +msgstr "錯誤:你沒有足夠的權限來改變 Vino 密碼。\n" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "顯示網址「%s」時發生錯誤" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "顯示說明文件時發生錯誤:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "正在檢查這個機器的連線能力…" + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "您的桌面只能透過區域網路使用。" + +#~ msgid " or " +#~ msgstr " 或 " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "其他人可以使用位址 %s 來存取您的電腦。" + +#~ msgid "Nobody can access your desktop." +#~ msgstr "其他人不能存取您的桌面。" + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "選擇其他使用者要以何種方式遠端觀看您的桌面" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "桌面分享偏好設定" + +#~ msgid "Sharing" +#~ msgstr "分享" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "一部分偏好設定已被鎖定" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "允許其他使用者觀看您的桌面(_V)" + +#~ msgid "Your desktop will be shared" +#~ msgstr "將會分享您的桌面" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "允許其他使用者控制您的桌面(_A)" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "遠端使用者可以控制您的滑鼠和鍵盤" + +#~ msgid "Security" +#~ msgstr "安全性" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "您必須確認每次對這臺機器的連線(_Y)" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "使用者需要輸入密碼(_R):" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "自動設定 UPnP 路由來開啟並將連接埠轉址(_C)" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "路由器必須啟用 UPnP 功能" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "在通知區中顯示圖示" + +#~ msgid "Al_ways" +#~ msgstr "永遠(_W)" + +#~ msgid "_Only when someone is connected" +#~ msgstr "只在有人連線時(_O)" + +#~ msgid "_Never" +#~ msgstr "永不(_N)" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "如果設為 true,我們會使用 UPNP 通訊協定讓路由器自動轉址 vino 所使用的連接" +#~ "埠。" + +#~ msgid "Question" +#~ msgstr "問題" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "在另一臺電腦上的使用者正嘗試觀看或控制您的桌面。" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "您允許他們這樣做嗎?" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..1978f14 --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,721 @@ +# Chinese (Taiwan) translation of vino. +# Copyright (C) 2004-06 Free Software Foundation, Inc. +# Chi-Wei Chen <michelin@seed.net.tw>, 2004. +# Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2009. +# Wei-Lun Chao <chaoweilun@gmail.com>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: vino 3.3.4\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=vino&keywords=I18N+L10N&component=Preferences Dialog\n" +"POT-Creation-Date: 2015-07-21 12:03+0000\n" +"PO-Revision-Date: 2013-02-03 23:18+0800\n" +"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n" +"Language-Team: Chinese (traditional)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../common/org.gnome.Vino.gschema.xml.h:1 +msgid "Prompt the user before completing a connection" +msgstr "在完成連接前提示使用者" + +#: ../common/org.gnome.Vino.gschema.xml.h:2 +msgid "" +"If true, remote users accessing the desktop are not allowed access until the " +"user on the host machine approves the connection. Recommended especially " +"when access is not password protected." +msgstr "" +"如設定為 true,除非是在主機的用戶允許,否則遠端使用者不被允許使用桌面。建議使" +"用,特別是沒有密碼保護的情形下。" + +#: ../common/org.gnome.Vino.gschema.xml.h:3 +msgid "Only allow remote users to view the desktop" +msgstr "只允許遠端使用者去觀看桌面" + +#: ../common/org.gnome.Vino.gschema.xml.h:4 +msgid "" +"If true, remote users accessing the desktop are only allowed to view the " +"desktop. Remote users will not be able to use the mouse or keyboard." +msgstr "如設定為 true,遠端使用者僅被允許觀看桌面。他們將無法使用滑鼠或鍵盤。" + +#: ../common/org.gnome.Vino.gschema.xml.h:5 +msgid "Network interface for listening" +msgstr "要聽取的網路介面" + +#: ../common/org.gnome.Vino.gschema.xml.h:6 +msgid "" +"If not set, the server will listen on all network interfaces.\n" +"\n" +"Set this if you want to accept connections only from some specific network " +"interface. For example, eth0, wifi0, lo and so on." +msgstr "" +"如果不設定,伺服器就會聽取所有的網路介面。\n" +"\n" +"如果您只想接受來自特定網路介面的連線就設定它。例如:eth0、wifi0、lo 等等。" + +#: ../common/org.gnome.Vino.gschema.xml.h:9 +msgid "Listen on an alternative port" +msgstr "監聽替代的連接埠" + +#: ../common/org.gnome.Vino.gschema.xml.h:10 +msgid "" +"If true, the server will listen on another port, instead of the default " +"(5900). The port must be specified in the 'alternative-port' key." +msgstr "" +"如設定為 true,該伺服器會監聽其他連接埠,而非預設值 (5900)。此連接埠必須在" +"「alternative-port」設定鍵中指定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:11 +msgid "Alternative port number" +msgstr "替代連接埠號" + +#: ../common/org.gnome.Vino.gschema.xml.h:12 +msgid "" +"The port which the server will listen to if the 'use-alternative-port' key " +"is set to true. Valid values are in the range of 5000 to 50000." +msgstr "" +"如「use-alternative-port」鍵值設為 true 時,伺服器要監聽的連接埠。可用的數值" +"範圍為 5000 到 50000。" + +#: ../common/org.gnome.Vino.gschema.xml.h:13 +msgid "Require encryption" +msgstr "需要加密" + +#: ../common/org.gnome.Vino.gschema.xml.h:14 +msgid "" +"If true, remote users accessing the desktop are required to support " +"encryption. It is highly recommended that you use a client which supports " +"encryption unless the intervening network is trusted." +msgstr "" +"如設定為 true,要存取桌面的遠端使用者必須支援加密。強烈建議使用支援加密的客戶" +"端,除非兩者間的網路是可信賴的。" + +#: ../common/org.gnome.Vino.gschema.xml.h:15 +msgid "Allowed authentication methods" +msgstr "允許的核對方式" + +#: ../common/org.gnome.Vino.gschema.xml.h:16 +msgid "" +"Lists the authentication methods with which remote users may access the " +"desktop.\n" +"\n" +"There are two possible authentication methods; \"vnc\" causes the remote " +"user to be prompted for a password (the password is specified by the vnc-" +"password key) before connecting and \"none\" which allows any remote user to " +"connect." +msgstr "" +"列出遠端使用者可以使用的核對方式。\n" +"\n" +"有兩種可能的核對方式:一是「vnc」,即在連接前提示遠端使用者輸入密碼 (此密碼是" +"由 vnc-password 設定鍵決定),或者是「none」,即允許任何遠端使用者連接。" + +#: ../common/org.gnome.Vino.gschema.xml.h:19 +msgid "Password required for \"vnc\" authentication" +msgstr "“vnc”核對方式需要密碼" + +#: ../common/org.gnome.Vino.gschema.xml.h:20 +msgid "" +"The password which the remote user will be prompted for if the \"vnc\" " +"authentication method is used. The password specified by the key is base64 " +"encoded.\n" +"\n" +"The special value of 'keyring' (which is not valid base64) means that the " +"password is stored in the GNOME keyring." +msgstr "" +"如果使用「vnc」核對方法的話,遠端使用者需要輸入這個密碼。此密碼是用 base64 編" +"碼的。\n" +"\n" +"若看到特殊的數值「keyring」(不是有效的 base64) 表示密碼是儲存在 GNOME 鑰匙圈" +"裡。" + +#: ../common/org.gnome.Vino.gschema.xml.h:23 +msgid "E-mail address to which the remote desktop URL should be sent" +msgstr "遠端桌面的 URL 應該寄送至這個電郵地址" + +#: ../common/org.gnome.Vino.gschema.xml.h:24 +msgid "" +"This key specifies the e-mail address to which the remote desktop URL should " +"be sent if the user clicks on the URL in the Desktop Sharing preferences " +"dialog." +msgstr "" +"這個設定鍵所指定的電子郵件位址是當使用者按下桌面分享偏好設定對話方塊中的 " +"URL,遠端桌面網址應寄送的位址。" + +#: ../common/org.gnome.Vino.gschema.xml.h:25 +msgid "Lock the screen when last user disconnect" +msgstr "當最後的使用者斷線時鎖定畫面" + +#: ../common/org.gnome.Vino.gschema.xml.h:26 +msgid "" +"If true, the screen will be locked after the last remote client disconnects." +msgstr "如設定為 true,畫面會在最後的遠端客戶端斷線後鎖定。" + +#: ../common/org.gnome.Vino.gschema.xml.h:27 +msgid "When the status icon should be shown" +msgstr "何時要顯示狀態圖示" + +# (pofilter) gconf: do not translate gconf attribute: "always", "client", "never" +#: ../common/org.gnome.Vino.gschema.xml.h:28 +msgid "" +"This key controls the behavior of the status icon. There are three options: " +"\"always\" - the icon will always be present; \"client\" - the icon will " +"only be present when someone is connected (this is the default behavior); " +"\"never\" - the icon will not be present." +msgstr "" +"這個設定鍵控制了狀態圖示的行為。一共有三種選項:「always」(總是)─ 總是顯示圖" +"示;「client」(客戶端) ─ 只在有人連線時才顯示圖示 (這是預設的行為);「never」" +"(永不) ─ 永遠不顯示圖示。" + +#: ../common/org.gnome.Vino.gschema.xml.h:29 +msgid "Whether to disable the desktop background when a user is connected" +msgstr "當有使用者連線時是否停用桌面背景" + +#: ../common/org.gnome.Vino.gschema.xml.h:30 +msgid "" +"When true, disable the desktop background and replace it with a single block " +"of color when a user successfully connects." +msgstr "當 true 時,有使用者成功連線時停用桌面背景並以單一顏色區塊取代它。" + +#: ../common/org.gnome.Vino.gschema.xml.h:31 +msgid "Whether a UPnP router should be used to forward and open ports" +msgstr "是否要使用 UPnP 在路由器中轉址與開啟連接埠" + +#: ../common/org.gnome.Vino.gschema.xml.h:32 +msgid "" +"If true, request that a UPnP-capable router should forward and open the port " +"used by Vino." +msgstr "" +"如果設定為 true,要求支援 UPnP 的路由器應該轉址並開啟 Vino 使用的連接埠。" + +#: ../common/org.gnome.Vino.gschema.xml.h:33 +msgid "Whether we should disable the XDamage extension of X.org" +msgstr "我們是否要停用 X.org 的 XDamage 延伸功能" + +#: ../common/org.gnome.Vino.gschema.xml.h:34 +msgid "" +"If true, do not use the XDamage extension of X.org. This extension does not " +"work properly on some video drivers when using 3D effects. Disabling it will " +"make Vino work in these environments, with slower rendering as a side effect." +msgstr "" +"如果設為 true,我們將不會使用 X.org 的 XDamage 延伸功能。這項延伸功能在部分視" +"訊驅動程式下使用 3D 效果時無法正常運作。將它停用的副作用為 Vino 在這些環境下" +"的繪製速度會變得較慢。" + +#: ../common/org.gnome.Vino.gschema.xml.h:35 +msgid "Notify on connect" +msgstr "連線時通知" + +#: ../common/org.gnome.Vino.gschema.xml.h:36 +msgid "If true, show a notification when a user connects to the system." +msgstr "如果設為 true,當使用者連線到系統時顯示通知。" + +#: ../server/smclient/eggdesktopfile.c:165 +#, c-format +msgid "File is not a valid .desktop file" +msgstr "檔案不是有效的 .desktop 檔案" + +#. translators: 'Version' is from a desktop file, and +#. * should not be translated. '%s' would probably be a +#. * version number. +#: ../server/smclient/eggdesktopfile.c:191 +#, c-format +msgid "Unrecognized desktop file Version '%s'" +msgstr "無法辨識的桌面檔案版本「%s」" + +#: ../server/smclient/eggdesktopfile.c:974 +#, c-format +msgid "Starting %s" +msgstr "準備啟動 %s" + +#: ../server/smclient/eggdesktopfile.c:1116 +#, c-format +msgid "Application does not accept documents on command line" +msgstr "應用程式不接受以命令列開啟文件" + +#: ../server/smclient/eggdesktopfile.c:1184 +#, c-format +msgid "Unrecognized launch option: %d" +msgstr "無法辨識的啟動選項:%d" + +#. translators: The 'Type=Link' string is found in a +#. * desktop file, and should not be translated. +#: ../server/smclient/eggdesktopfile.c:1391 +#, c-format +msgid "Can't pass document URIs to a 'Type=Link' desktop entry" +msgstr "不能傳送文件 URI 至「Type=Link」桌面項目" + +#: ../server/smclient/eggdesktopfile.c:1412 +#, c-format +msgid "Not a launchable item" +msgstr "不是可以啟動的項目" + +#: ../server/smclient/eggsmclient.c:226 +msgid "Disable connection to session manager" +msgstr "停用到作業階段管理員的連線" + +#: ../server/smclient/eggsmclient.c:229 +msgid "Specify file containing saved configuration" +msgstr "指定含有已儲存設定的檔案" + +#: ../server/smclient/eggsmclient.c:229 +msgid "FILE" +msgstr "檔案" + +#: ../server/smclient/eggsmclient.c:232 +msgid "Specify session management ID" +msgstr "指定作業階段管理 ID" + +#: ../server/smclient/eggsmclient.c:232 +msgid "ID" +msgstr "ID" + +#: ../server/smclient/eggsmclient.c:253 +msgid "Session management options:" +msgstr "作業階段管理選項:" + +#: ../server/smclient/eggsmclient.c:254 +msgid "Show session management options" +msgstr "顯示作業階段管理選項" + +#: ../server/vino-main.c:153 +msgid "" +"Your XServer does not support the XTest extension - remote desktop access " +"will be view-only\n" +msgstr "您的 X Server 不支援 XTest 延伸功能 ─ 只可以觀看遠端桌面\n" + +#. Tube mode uses Telepathy's Tubes to share a user's desktop directly +#. * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes +#. +#: ../server/vino-main.c:249 +msgid "Start in tube mode, for the ‘Share my Desktop’ feature" +msgstr "以管道模式啟動,用於「分享我的桌面」功能" + +#: ../server/vino-main.c:260 +msgid "- VNC Server for GNOME" +msgstr "- GNOME 的 VNC 伺服器" + +#: ../server/vino-main.c:268 +msgid "" +"Run 'vino-server --help' to see a full list of available command line options" +msgstr "執行‘vino-server --help‘ 以查看所有可用的命令列選項清單" + +#: ../server/vino-main.c:280 +msgid "GNOME Desktop Sharing" +msgstr "GNOME 桌面分享" + +#. +#. * Translators: translate "vino-mdns:showusername" to +#. * "1" if "%s's remote desktop" doesn't make sense in +#. * your language. +#. +#: ../server/vino-mdns.c:62 +msgid "vino-mdns:showusername" +msgstr "vino-mdns:showusername" + +#. +#. * Translators: this string is used ONLY if you +#. * translated "vino-mdns:showusername" to anything +#. * other than "1" +#. +#: ../server/vino-mdns.c:74 +#, c-format +msgid "%s's remote desktop on %s" +msgstr "%s 的遠端桌面於 %s" + +#: ../server/vino-prefs.c:111 +#, c-format +msgid "Received signal %d, exiting." +msgstr "收到信號 %d,正在離開。" + +#: ../server/vino-prompt.c:144 +msgid "Screen" +msgstr "螢幕" + +#: ../server/vino-prompt.c:145 +msgid "The screen on which to display the prompt" +msgstr "顯示提示的螢幕" + +#: ../server/vino-prompt.c:270 ../server/vino-status-icon.c:598 +#: ../server/vino-status-tube-icon.c:389 +#, c-format +msgid "Error initializing libnotify\n" +msgstr "初始化 libnotify 時發生錯誤\n" + +#: ../server/vino-prompt.c:289 +#, c-format +msgid "" +"A user on the computer '%s' is trying to remotely view or control your " +"desktop." +msgstr "在電腦‘%s’上的使用者正嘗試觀看或控制您的桌面" + +#: ../server/vino-prompt.c:292 +msgid "Another user is trying to view your desktop." +msgstr "另一個使用者正嘗試觀看您的桌面。" + +#: ../server/vino-prompt.c:298 +msgid "Refuse" +msgstr "拒絕" + +#: ../server/vino-prompt.c:304 +msgid "Accept" +msgstr "接受" + +#: ../server/vino-server.c:159 ../server/vino-server.c:182 +#, c-format +msgid "Failed to open connection to bus: %s\n" +msgstr "開啟至 bus 的連線失敗:%s\n" + +#: ../server/vino-server.desktop.in.in.h:1 +msgid "Desktop Sharing" +msgstr "桌面分享" + +#: ../server/vino-server.desktop.in.in.h:2 +msgid "GNOME Desktop Sharing Server" +msgstr "GNOME 桌面分享伺服器" + +#: ../server/vino-server.desktop.in.in.h:3 +msgid "vnc;share;remote;" +msgstr "vnc;share;remote;分享;遠端;" + +#: ../server/vino-status-icon.c:97 ../server/vino-status-tube-icon.c:90 +msgid "Desktop sharing is enabled" +msgstr "桌面共享已啟用" + +#: ../server/vino-status-icon.c:105 +#, c-format +msgid "One person is viewing your desktop" +msgid_plural "%d people are viewing your desktop" +msgstr[0] "一個使用者正在觀看您的桌面" +msgstr[1] "%d 個使用者正在觀看您的桌面" + +#: ../server/vino-status-icon.c:208 ../server/vino-status-tube-icon.c:172 +msgid "Error displaying preferences" +msgstr "顯示偏好設定時發生錯誤" + +#: ../server/vino-status-icon.c:230 ../server/vino-status-tube-icon.c:192 +msgid "Error displaying help" +msgstr "顯示說明文件時發生錯誤" + +#: ../server/vino-status-icon.c:263 +msgid "" +"Licensed under the GNU General Public License Version 2\n" +"\n" +"Vino is free software; you can redistribute it and/or\n" +"modify it under the terms of the GNU General Public License\n" +"as published by the Free Software Foundation; either version 2\n" +"of the License, or (at your option) any later version.\n" +"\n" +"Vino is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +"You should have received a copy of the GNU General Public License\n" +"along with this program; if not, write to the Free Software\n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" +msgstr "" +"以 GNU 通用公共授權條款第二版授權\n" +"\n" +"Vino 為自由軟體;您可依據自由軟體\n" +"基金會所發表的 GNU 通用公共授權條款(\n" +"可選用第二版或以後的任何版本)規定,\n" +"將本程式再散布或修改,或兩者同時進行。\n" +"\n" +"Vino 係基於使用目的而加以散布,然而\n" +"不負任何擔保責任;亦無對適售性或\n" +"特定目的適用性所為的默示性擔保。\n" +"詳情請參照 GNU 通用公共授權。\n" +"\n" +"您應該已收到附於本程式的GNU 通用公共授權\n" +"的副本;如果沒有,請寫信至:Free Software \n" +"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" +"02110-1301, USA.\n" + +#. Translators comment: put your own name here to appear in the about dialog. +#: ../server/vino-status-icon.c:278 +msgid "translator-credits" +msgstr "" +"如對翻譯有任何意見,請送一封電子郵件給\n" +"以下地址,GNOME 翻譯團隊會盡快回覆您:\n" +"zh-l10n@lists.linux.org.tw\n" +"\n" +"Chi-Wei Chen <michelin@seed.net.tw>, 2004." + +#: ../server/vino-status-icon.c:284 +msgid "Share your desktop with other users" +msgstr "與別的使用者分享您的桌面" + +#: ../server/vino-status-icon.c:351 ../server/vino-status-tube-icon.c:224 +#, c-format +msgid "Are you sure you want to disconnect '%s'?" +msgstr "您確定要將‘%s’斷線?" + +#: ../server/vino-status-icon.c:354 +#, c-format +msgid "The remote user from '%s' will be disconnected. Are you sure?" +msgstr "來自‘%s’的遠端使用者會被斷線。您確定嗎?" + +#: ../server/vino-status-icon.c:360 +msgid "Are you sure you want to disconnect all clients?" +msgstr "確定要將所有的客戶端斷線?" + +#: ../server/vino-status-icon.c:362 +msgid "All remote users will be disconnected. Are you sure?" +msgstr "所有的遠端使用者會被斷線。您確定嗎?" + +#: ../server/vino-status-icon.c:374 ../server/vino-status-tube-icon.c:238 +msgid "Disconnect" +msgstr "斷線" + +#: ../server/vino-status-icon.c:400 ../server/vino-status-tube-icon.c:263 +msgid "_Preferences" +msgstr "偏好設定(_P)" + +#: ../server/vino-status-icon.c:415 +msgid "Disconnect all" +msgstr "全部斷線" + +#. Translators: %s is a hostname +#. Translators: %s is the alias of the telepathy contact +#: ../server/vino-status-icon.c:439 ../server/vino-status-tube-icon.c:276 +#, c-format +msgid "Disconnect %s" +msgstr "斷線 %s" + +#: ../server/vino-status-icon.c:460 ../server/vino-status-tube-icon.c:295 +msgid "_Help" +msgstr "求助(_H)" + +#: ../server/vino-status-icon.c:468 +msgid "_About" +msgstr "關於(_A)" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:619 +msgid "Another user is viewing your desktop" +msgstr "其他使用者正在觀看您的桌面" + +#: ../server/vino-status-icon.c:621 +#, c-format +msgid "A user on the computer '%s' is remotely viewing your desktop." +msgstr "在電腦‘%s’上的使用者正遠端觀看您的桌面。" + +#. Translators: %s is a hostname +#: ../server/vino-status-icon.c:627 +msgid "Another user is controlling your desktop" +msgstr "其他使用者正在控制您的桌面" + +#: ../server/vino-status-icon.c:629 +#, c-format +msgid "A user on the computer '%s' is remotely controlling your desktop." +msgstr "在電腦‘%s’上的使用者正遠端控制您的桌面。" + +#: ../server/vino-status-icon.c:651 ../server/vino-status-tube-icon.c:423 +#, c-format +msgid "Error while displaying notification bubble: %s\n" +msgstr "顯示通知氣泡視窗時發生錯誤:%s\n" + +#: ../server/vino-status-tube-icon.c:227 +#, c-format +msgid "The remote user '%s' will be disconnected. Are you sure?" +msgstr "遠端使用者「%s」會被斷線。您確定嗎?" + +#: ../server/vino-tube-server.c:220 ../server/vino-tube-server.c:249 +msgid "Share my desktop information" +msgstr "分享我的桌面資訊" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:224 +#, c-format +msgid "'%s' rejected the desktop sharing invitation." +msgstr "「%s」拒絕了桌面分享邀請。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:228 +#, c-format +msgid "'%s' disconnected" +msgstr "「%s」已斷線" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:255 +#, c-format +msgid "'%s' is remotely controlling your desktop." +msgstr "「%s」正在遠端控制您的桌面。" + +#. Translators: '%s' is the name of a contact, buddy coming from Empathy +#: ../server/vino-tube-server.c:264 +#, c-format +msgid "Waiting for '%s' to connect to the screen." +msgstr "正在等候「%s」連線至畫面。" + +#: ../server/vino-util.c:88 +msgid "_Allow" +msgstr "允許(_A)" + +#: ../server/vino-util.c:89 +msgid "_Refuse" +msgstr "拒絕(_R)" + +#: ../server/vino-util.c:139 +msgid "An error has occurred:" +msgstr "發生錯誤:" + +#~ msgid "Enable remote access to the desktop" +#~ msgstr "啟用遠端對桌面的存取" + +#~ msgid "" +#~ "If true, allows remote access to the desktop via the RFB protocol. Users " +#~ "on remote machines may then connect to the desktop using a VNC viewer." +#~ msgstr "" +#~ "如設定為 true,允許遠端電腦以 RFB 協定使用桌面。遠端電腦的使用者就可以用 " +#~ "VNC viewer 連接到桌面。" + +#~ msgid "Remote desktop sharing password" +#~ msgstr "遠端桌面分享密碼" + +#~ msgid "Cancelled" +#~ msgstr "已取消" + +#~ msgid "" +#~ "ERROR: Maximum length of password is %d character. Please, re-enter the " +#~ "password." +#~ msgid_plural "" +#~ "ERROR: Maximum length of password is %d characters. Please, re-enter the " +#~ "password." +#~ msgstr[0] "錯誤:密碼的最大長度為 %d 個字元。請重新輸入密碼。" +#~ msgstr[1] "錯誤:密碼的最大長度為 %d 個字元。請重新輸入密碼。" + +#~ msgid "Changing Vino password.\n" +#~ msgstr "正在改變 Vino 密碼。\n" + +#~ msgid "Enter new Vino password: " +#~ msgstr "輸入新的 Vino 密碼:" + +#~ msgid "Retype new Vino password: " +#~ msgstr "再輸入一次 Vino 密碼:" + +#~ msgid "vino-passwd: password updated successfully.\n" +#~ msgstr "vino-passwd:密碼更新成功。\n" + +#~ msgid "Sorry, passwords do not match.\n" +#~ msgstr "抱歉,密碼不相符。\n" + +#~ msgid "vino-passwd: password unchanged.\n" +#~ msgstr "vino-passwd:密碼沒有改變。\n" + +#~ msgid "Show Vino version" +#~ msgstr "顯示 Vino 版本" + +#~ msgid "- Updates Vino password" +#~ msgstr "- 更新 Vino 密碼" + +#~ msgid "" +#~ "Run 'vino-passwd --help' to see a full list of available command line " +#~ "options" +#~ msgstr "執行‘vino-passwd --help‘ 以查看所有可用的命令列選項清單" + +#~ msgid "VINO Version %s\n" +#~ msgstr "VINO %s 版\n" + +#~ msgid "ERROR: You do not have enough permissions to change Vino password.\n" +#~ msgstr "錯誤:您沒有足夠的權限來改變 Vino 密碼。\n" + +#~ msgid "There was an error showing the URL \"%s\"" +#~ msgstr "顯示網址「%s」時發生錯誤" + +#~ msgid "" +#~ "There was an error displaying help:\n" +#~ "%s" +#~ msgstr "" +#~ "顯示說明文件時發生錯誤:\n" +#~ "%s" + +#~ msgid "Checking the connectivity of this machine..." +#~ msgstr "正在檢查這個機器的連線能力…" + +#~ msgid "Your desktop is only reachable over the local network." +#~ msgstr "您的桌面只能透過區域網路使用。" + +#~ msgid " or " +#~ msgstr " 或 " + +#~ msgid "Others can access your computer using the address %s." +#~ msgstr "其他人可以使用位址 %s 來存取您的電腦。" + +#~ msgid "Nobody can access your desktop." +#~ msgstr "其他人不能存取您的桌面。" + +#~ msgid "Choose how other users can remotely view your desktop" +#~ msgstr "選擇其他使用者要以何種方式遠端觀看您的桌面" + +#~ msgid "Desktop Sharing Preferences" +#~ msgstr "桌面分享偏好設定" + +#~ msgid "Sharing" +#~ msgstr "分享" + +#~ msgid "Some of these preferences are locked down" +#~ msgstr "一部分偏好設定已被鎖定" + +#~ msgid "Allow other users to _view your desktop" +#~ msgstr "允許其他使用者觀看您的桌面(_V)" + +#~ msgid "Your desktop will be shared" +#~ msgstr "將會分享您的桌面" + +#~ msgid "_Allow other users to control your desktop" +#~ msgstr "允許其他使用者控制您的桌面(_A)" + +#~ msgid "Remote users are able to control your mouse and keyboard" +#~ msgstr "遠端使用者可以控制您的滑鼠和鍵盤" + +#~ msgid "Security" +#~ msgstr "安全性" + +#~ msgid "_You must confirm each access to this machine" +#~ msgstr "您必須確認每次對這臺機器的連線(_Y)" + +#~ msgid "_Require the user to enter this password:" +#~ msgstr "使用者需要輸入密碼(_R):" + +#~ msgid "Automatically _configure UPnP router to open and forward ports" +#~ msgstr "自動設定 UPnP 路由來開啟並將連接埠轉址(_C)" + +#~ msgid "The router must have the UPnP feature enabled" +#~ msgstr "路由器必須啟用 UPnP 功能" + +#~ msgid "Show Notification Area Icon" +#~ msgstr "在通知區中顯示圖示" + +#~ msgid "Al_ways" +#~ msgstr "永遠(_W)" + +#~ msgid "_Only when someone is connected" +#~ msgstr "只在有人連線時(_O)" + +#~ msgid "_Never" +#~ msgstr "永不(_N)" + +#~ msgid "" +#~ "If true, we will use UPNP protocol to automatically forward the port used " +#~ "by vino in the router." +#~ msgstr "" +#~ "如果設為 true,我們會使用 UPNP 通訊協定讓路由器自動轉址 vino 所使用的連接" +#~ "埠。" + +#~ msgid "Question" +#~ msgstr "問題" + +#~ msgid "" +#~ "A user on another computer is trying to remotely view or control your " +#~ "desktop." +#~ msgstr "在另一臺電腦上的使用者正嘗試觀看或控制您的桌面。" + +#~ msgid "Do you want to allow them to do so?" +#~ msgstr "您允許他們這樣做嗎?" diff --git a/server/Vino.client b/server/Vino.client new file mode 100644 index 0000000..a5c630d --- /dev/null +++ b/server/Vino.client @@ -0,0 +1,8 @@ +[org.freedesktop.Telepathy.Client] +Interfaces=org.freedesktop.Telepathy.Client.Handler + +[org.freedesktop.Telepathy.Client.Handler.HandlerChannelFilter 0] +org.freedesktop.Telepathy.Channel.ChannelType s=org.freedesktop.Telepathy.Channel.Type.StreamTube +org.freedesktop.Telepathy.Channel.TargetHandleType u=1 +org.freedesktop.Telepathy.Channel.Requested b=true +org.freedesktop.Telepathy.Channel.Type.StreamTube.Service s=rfb diff --git a/server/dbus-interface.xml b/server/dbus-interface.xml new file mode 100644 index 0000000..d3d34f9 --- /dev/null +++ b/server/dbus-interface.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<node> + <interface name="org.gnome.VinoScreen"> + <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="vino_dbus_listener"/> + <method name="GetInternalData"> + <arg name="hostname" direction="out" type="s"/> + <arg name="avahi_hostname" direction="out" type="s"/> + <arg name="port" direction="out" type="i"/> + </method> + <method name="GetExternalPort"> + <arg name="port" direction="out" type="i"/> + </method> + <signal name="ServerInfoChanged"> + </signal> + </interface> +</node> diff --git a/server/libvncserver/auth.c b/server/libvncserver/auth.c new file mode 100644 index 0000000..cfaed55 --- /dev/null +++ b/server/libvncserver/auth.c @@ -0,0 +1,459 @@ +/* + * auth.c - deal with authentication. + * + * This file implements the VNC authentication protocol when setting up an RFB + * connection. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +void +rfbAuthInitScreen(rfbScreenInfoPtr rfbScreen) +{ +#ifdef VINO_HAVE_GNUTLS +#define DH_BITS 1024 + + gnutls_global_init(); + + gnutls_anon_allocate_server_credentials(&rfbScreen->anonCredentials); + + gnutls_dh_params_init(&rfbScreen->dhParams); + gnutls_dh_params_generate2(rfbScreen->dhParams, DH_BITS); + + gnutls_anon_set_server_dh_params(rfbScreen->anonCredentials, + rfbScreen->dhParams); + +#undef DH_BITS +#endif /* VINO_HAVE_GNUTLS */ +} + +void +rfbAuthCleanupScreen(rfbScreenInfoPtr rfbScreen) +{ +#ifdef VINO_HAVE_GNUTLS + gnutls_dh_params_deinit(rfbScreen->dhParams); + + gnutls_anon_free_server_credentials(rfbScreen->anonCredentials); + + gnutls_global_deinit(); +#endif /* VINO_HAVE_GNUTLS */ +} + +#ifdef VINO_HAVE_GNUTLS +static rfbBool +rfbAuthTLSHandshake(rfbClientPtr cl) +{ + /* TODO: Perform non-anonymous key exchange to prevent man-in-the-middle + * attacks. */ + static const char kx_priority[] = "NORMAL:+ANON-DH"; + int err; + + gnutls_init(&cl->tlsSession, GNUTLS_SERVER); + + gnutls_set_default_priority(cl->tlsSession); + gnutls_priority_set_direct(cl->tlsSession, kx_priority, NULL); + + gnutls_credentials_set(cl->tlsSession, + GNUTLS_CRD_ANON, + cl->screen->anonCredentials); + gnutls_transport_set_ptr(cl->tlsSession, (gnutls_transport_ptr_t) cl->sock); + + err = gnutls_handshake(cl->tlsSession); + if (err != GNUTLS_E_SUCCESS && !gnutls_error_is_fatal(err)) { + cl->state = RFB_TLS_HANDSHAKE; + return FALSE; + } + + if (err != GNUTLS_E_SUCCESS) { + rfbErr("TLS Handshake failed: %s\n", gnutls_strerror(err)); + gnutls_deinit (cl->tlsSession); + cl->tlsSession = NULL; + rfbCloseClient(cl); + return FALSE; + } + + cl->useTLS = TRUE; + + return TRUE; +} +#endif /* VINO_HAVE_GNUTLS */ + +static rfbBool +rfbAuthClientAuthenticated(rfbClientPtr cl) +{ + rfbBool accepted = FALSE; + + if (cl->state == RFB_INITIALISATION && + cl->screen->authenticatedClientHook) { + switch (cl->screen->authenticatedClientHook(cl)) { + case RFB_CLIENT_ON_HOLD: + cl->onHold = TRUE; + break; + case RFB_CLIENT_ACCEPT: + accepted = TRUE; + break; + case RFB_CLIENT_REFUSE: + rfbCloseClient(cl); + rfbClientConnectionGone(cl); + break; + } + } + + return accepted; +} + +/* + * rfbAuthNewClient is called when we reach the point of authenticating + * a new client. If authentication isn't being used then we simply send + * rfbNoAuth. Otherwise we send rfbVncAuth plus the challenge. + */ + +static void +rfbAuthNewClient3_7(rfbClientPtr cl) +{ + rfbSecurityTypesMsg st; + int i; + + cl->state = RFB_SECURITY_TYPE; + + st.nSecurityTypes = cl->screen->nSecurityTypes; + for (i = 0; i < st.nSecurityTypes; i++) { + rfbLog("Advertising security type %d\n", cl->screen->securityTypes[i]); + st.securityTypes[i] = cl->screen->securityTypes[i]; + } + + if (WriteExact(cl, (char *)&st, st.nSecurityTypes + 1) < 0) { + rfbLogPerror("rfbAuthNewClient: write"); + rfbCloseClient(cl); + return; + } +} + +static void +rfbAuthNewClient3_3(rfbClientPtr cl) +{ + union { + uint32_t authType; + char buf[4 + CHALLENGESIZE]; + } auth; + int len, i; + + for (i = 0; i < cl->screen->nSecurityTypes; i++) + if (cl->screen->securityTypes [i] == rfbVncAuth || + cl->screen->securityTypes [i] == rfbNoAuth) + break; + + if (i == cl->screen->nSecurityTypes) { + rfbClientConnFailed(cl, "No security type suitable for RFB 3.3 supported"); + return; + } + + switch (cl->screen->securityTypes [i]) { + case rfbVncAuth: + auth.authType = Swap32IfLE(rfbVncAuth); + vncRandomBytes(cl->authChallenge); + memcpy(&(auth.buf[4]), (char *)cl->authChallenge, CHALLENGESIZE); + len = 4 + CHALLENGESIZE; + cl->state = RFB_AUTHENTICATION; + break; + case rfbNoAuth: + auth.authType = Swap32IfLE(rfbNoAuth); + len = 4; + cl->state = RFB_INITIALISATION; + break; + default: + /* can't be reached */ + return; + } + + if (WriteExact(cl, auth.buf, len) < 0) { + rfbLogPerror("rfbAuthNewClient: write"); + rfbCloseClient(cl); + return; + } + + rfbAuthClientAuthenticated(cl); +} + +void +rfbAuthNewClient(rfbClientPtr cl) +{ + if (cl->minorVersion >= rfbProtocolMinorVersion7) + rfbAuthNewClient3_7(cl); + else + rfbAuthNewClient3_3(cl); +} + +void +rfbAuthCleanupClient(rfbClientPtr cl) +{ +#ifdef VINO_HAVE_GNUTLS + if (cl->tlsSession) { + if (cl->sock) + gnutls_bye(cl->tlsSession, GNUTLS_SHUT_WR); + + gnutls_deinit(cl->tlsSession); + cl->tlsSession = NULL; + } +#endif /* VINO_HAVE_GNUTLS */ +} + +#ifdef VINO_HAVE_GNUTLS +static void +rfbAuthListAuthTypes(rfbClientPtr cl) +{ + rfbAuthTypesMsg st; + int i; + + cl->state = RFB_AUTH_TYPE; + + st.nAuthTypes = cl->screen->nAuthTypes; + for (i = 0; i < cl->screen->nAuthTypes; i++) { + rfbLog("Advertising authentication type %d\n", cl->screen->authTypes[i]); + st.authTypes[i] = cl->screen->authTypes[i]; + } + + if (WriteExact(cl, (char *)&st, cl->screen->nAuthTypes + 1) < 0) { + rfbLogPerror("rfbAuthNewClient: write"); + rfbCloseClient(cl); + return; + } +} +#endif /* VINO_HAVE_GNUTLS */ + +void +rfbAuthProcessSecurityTypeMessage(rfbClientPtr cl) +{ + uint8_t securityType; + int n, i; + + if ((n = ReadExact(cl, (char *)&securityType, 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbAuthProcessSecurityTypeMessage: read"); + rfbCloseClient(cl); + return; + } + + rfbLog("Client returned security type %d\n", securityType); + + for (i = 0; i < cl->screen->nSecurityTypes; i++) + if (cl->screen->securityTypes[i] == securityType) + break; + + if (i == cl->screen->nSecurityTypes) { + rfbErr("rfbAuthProcessSecurityTypeMessage: client returned unadvertised security type %d\n", + securityType); + rfbCloseClient(cl); + return; + } + + switch (securityType) { +#ifdef VINO_HAVE_GNUTLS + case rfbTLS: + if (!rfbAuthTLSHandshake(cl)) + return; + rfbAuthListAuthTypes(cl); + break; +#endif + case rfbVncAuth: + vncRandomBytes(cl->authChallenge); + if (WriteExact(cl, (char *)&cl->authChallenge, CHALLENGESIZE) < 0) { + rfbLogPerror("rfbAuthProcessSecurityTypeMessage: write"); + rfbCloseClient(cl); + return; + } + cl->state = RFB_AUTHENTICATION; + break; + case rfbNoAuth: + + if (cl->minorVersion >= rfbProtocolMinorVersion8) + rfbAuthPasswordChecked(cl, RFB_CLIENT_ACCEPT); + else { + cl->state = RFB_INITIALISATION; + if (rfbAuthClientAuthenticated(cl)) + rfbProcessClientInitMessage(cl); + } + break; + default: + /* can't be reached */ + break; + } +} + +#ifdef VINO_HAVE_GNUTLS +void +rfbAuthProcessTLSHandshake(rfbClientPtr cl) +{ + int err; + + err = gnutls_handshake(cl->tlsSession); + if (err != GNUTLS_E_SUCCESS && !gnutls_error_is_fatal(err)) + return; + + if (err != GNUTLS_E_SUCCESS) { + rfbErr("TLS Handshake failed: %s\n", gnutls_strerror(err)); + gnutls_deinit (cl->tlsSession); + cl->tlsSession = NULL; + rfbCloseClient(cl); + return; + } + + cl->useTLS = TRUE; + + rfbAuthListAuthTypes(cl); +} +#endif /* VINO_HAVE_GNUTLS */ + +void +rfbAuthProcessAuthTypeMessage(rfbClientPtr cl) +{ + uint8_t authType; + int n, i; + + if ((n = ReadExact(cl, (char *)&authType, 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbAuthProcessAuthTypeMessage: read"); + rfbCloseClient(cl); + return; + } + + rfbLog("Client returned authentication type %d\n", authType); + + for (i = 0; i < cl->screen->nAuthTypes; i++) + if (cl->screen->authTypes[i] == authType) + break; + + if (i == cl->screen->nAuthTypes) { + rfbErr("rfbAuthProcessAuthTypeMessage: client returned unadvertised authentication type %d\n", + authType); + rfbCloseClient(cl); + return; + } + + switch (authType) { + case rfbVncAuth: + vncRandomBytes(cl->authChallenge); + if (WriteExact(cl, (char *)&cl->authChallenge, CHALLENGESIZE) < 0) { + rfbLogPerror("rfbAuthProcessAuthTypeMessage: write"); + rfbCloseClient(cl); + return; + } + cl->state = RFB_AUTHENTICATION; + break; + case rfbNoAuth: + cl->state = RFB_INITIALISATION; + if (rfbAuthClientAuthenticated(cl)) + rfbProcessClientInitMessage(cl); + break; + default: + /* can't be reached */ + break; + } +} + +/* + * rfbAuthProcessClientMessage is called when the client sends its + * authentication response. + */ + +void +rfbAuthProcessClientMessage(rfbClientPtr cl) +{ + int n; + uint8_t response[CHALLENGESIZE]; + enum rfbNewClientAction result; + + if ((n = ReadExact(cl, (char *)response, CHALLENGESIZE)) <= 0) { + if (n != 0) + rfbLogPerror("rfbAuthProcessClientMessage: read"); + rfbCloseClient(cl); + return; + } + + result = RFB_CLIENT_REFUSE; + if (cl->screen->passwordCheck) + result = cl->screen->passwordCheck(cl, (const char *)response, CHALLENGESIZE); + + rfbAuthPasswordChecked(cl, result); +} + +void +rfbAuthPasswordChecked(rfbClientPtr cl, + enum rfbNewClientAction result) +{ + uint32_t authResult; + + switch (result) { + case RFB_CLIENT_ON_HOLD: + cl->state = RFB_AUTH_DEFERRED; + cl->onHold = TRUE; + break; + case RFB_CLIENT_ACCEPT: + cl->onHold = FALSE; + authResult = Swap32IfLE(rfbVncAuthOK); + + if (WriteExact(cl, (char *)&authResult, 4) < 0) { + rfbLogPerror("rfbAuthPasswordChecked: write"); + rfbCloseClient(cl); + return; + } + + cl->state = RFB_INITIALISATION; + rfbAuthClientAuthenticated(cl); + break; + default: + case RFB_CLIENT_REFUSE: + rfbErr("rfbAuthPasswordChecked: password check failed\n"); + authResult = Swap32IfLE(rfbVncAuthFailed); + + if (WriteExact(cl, (char *)&authResult, 4) < 0) { + rfbLogPerror("rfbAuthPasswordChecked: write"); + rfbCloseClient(cl); + return; + } + + if (cl->minorVersion >= rfbProtocolMinorVersion8) { + /* We can't really localize this string, since it has to + * be iso8859-1 encoded. However, the string will only be + * returned when we're using protocol version 3.8, and we + * only advertise support for 3.7, so this only gets used + * at all if you have a broken client. + */ + const char errmsg[] = "Password incorrect"; + uint32_t len, wireLen; + + len = sizeof(errmsg) - 1; + wireLen = Swap32IfLE(len); + if (WriteExact(cl, (char *)&wireLen, 4) < 0 || + WriteExact(cl, errmsg, len) < 0) { + rfbLogPerror("rfbAuthPasswordChecked: write"); + rfbCloseClient(cl); + return; + } + } + + rfbCloseClient(cl); + break; + } +} diff --git a/server/libvncserver/corre.c b/server/libvncserver/corre.c new file mode 100644 index 0000000..8e47801 --- /dev/null +++ b/server/libvncserver/corre.c @@ -0,0 +1,352 @@ +/* + * corre.c + * + * Routines to implement Compact Rise-and-Run-length Encoding (CoRRE). This + * code is based on krw's original javatel rfbserver. + */ + +/* + * Copyright (C) 2002 RealVNC Ltd. + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +/* + * rreBeforeBuf contains pixel data in the client's format. + * rreAfterBuf contains the RRE encoded version. If the RRE encoded version is + * larger than the raw data or if it exceeds rreAfterBufSize then + * raw encoding is used instead. + */ + +static int rreBeforeBufSize = 0; +static char *rreBeforeBuf = NULL; + +static int rreAfterBufSize = 0; +static char *rreAfterBuf = NULL; +static int rreAfterBufLen; + +static int subrectEncode8(uint8_t *data, int w, int h); +static int subrectEncode16(uint16_t *data, int w, int h); +static int subrectEncode32(uint32_t *data, int w, int h); +static uint32_t getBgColour(char *data, int size, int bpp); +static rfbBool rfbSendSmallRectEncodingCoRRE(rfbClientPtr cl, int x, int y, + int w, int h); + + +/* + * rfbSendRectEncodingCoRRE - send an arbitrary size rectangle using CoRRE + * encoding. + */ + +rfbBool +rfbSendRectEncodingCoRRE(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + if (h > cl->correMaxHeight) { + return (rfbSendRectEncodingCoRRE(cl, x, y, w, cl->correMaxHeight) && + rfbSendRectEncodingCoRRE(cl, x, y + cl->correMaxHeight, w, + h - cl->correMaxHeight)); + } + + if (w > cl->correMaxWidth) { + return (rfbSendRectEncodingCoRRE(cl, x, y, cl->correMaxWidth, h) && + rfbSendRectEncodingCoRRE(cl, x + cl->correMaxWidth, y, + w - cl->correMaxWidth, h)); + } + + rfbSendSmallRectEncodingCoRRE(cl, x, y, w, h); + return TRUE; +} + + + +/* + * rfbSendSmallRectEncodingCoRRE - send a small (guaranteed < 256x256) + * rectangle using CoRRE encoding. + */ + +static rfbBool +rfbSendSmallRectEncodingCoRRE(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + rfbFramebufferUpdateRectHeader rect; + rfbRREHeader hdr; + int nSubrects; + int i; + char *fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) + + (x * (cl->screen->bitsPerPixel / 8))); + + int maxRawSize = (cl->screen->width * cl->screen->height + * (cl->format.bitsPerPixel / 8)); + + if (rreBeforeBufSize < maxRawSize) { + rreBeforeBufSize = maxRawSize; + if (rreBeforeBuf == NULL) + rreBeforeBuf = (char *)malloc(rreBeforeBufSize); + else + rreBeforeBuf = (char *)realloc(rreBeforeBuf, rreBeforeBufSize); + } + + if (rreAfterBufSize < maxRawSize) { + rreAfterBufSize = maxRawSize; + if (rreAfterBuf == NULL) + rreAfterBuf = (char *)malloc(rreAfterBufSize); + else + rreAfterBuf = (char *)realloc(rreAfterBuf, rreAfterBufSize); + } + + (*cl->translateFn)(cl->translateLookupTable,&(cl->screen->rfbServerFormat), + &cl->format, fbptr, rreBeforeBuf, + cl->screen->paddedWidthInBytes, w, h); + + switch (cl->format.bitsPerPixel) { + case 8: + nSubrects = subrectEncode8((uint8_t *)rreBeforeBuf, w, h); + break; + case 16: + nSubrects = subrectEncode16((uint16_t *)rreBeforeBuf, w, h); + break; + case 32: + nSubrects = subrectEncode32((uint32_t *)rreBeforeBuf, w, h); + break; + default: + rfbLog("getBgColour: bpp %d?\n",cl->format.bitsPerPixel); + return FALSE; + } + + if (nSubrects < 0) { + + /* RRE encoding was too large, use raw */ + + return rfbSendRectEncodingRaw(cl, x, y, w, h); + } + + cl->rfbRectanglesSent[rfbEncodingCoRRE]++; + cl->rfbBytesSent[rfbEncodingCoRRE] += (sz_rfbFramebufferUpdateRectHeader + + sz_rfbRREHeader + rreAfterBufLen); + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader + sz_rfbRREHeader + > UPDATE_BUF_SIZE) + { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingCoRRE); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + hdr.nSubrects = Swap32IfLE(nSubrects); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&hdr, sz_rfbRREHeader); + cl->ublen += sz_rfbRREHeader; + + for (i = 0; i < rreAfterBufLen;) { + + int bytesToCopy = UPDATE_BUF_SIZE - cl->ublen; + + if (i + bytesToCopy > rreAfterBufLen) { + bytesToCopy = rreAfterBufLen - i; + } + + memcpy(&cl->updateBuf[cl->ublen], &rreAfterBuf[i], bytesToCopy); + + cl->ublen += bytesToCopy; + i += bytesToCopy; + + if (cl->ublen == UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + } + + return TRUE; +} + + + +/* + * subrectEncode() encodes the given multicoloured rectangle as a background + * colour overwritten by single-coloured rectangles. It returns the number + * of subrectangles in the encoded buffer, or -1 if subrect encoding won't + * fit in the buffer. It puts the encoded rectangles in rreAfterBuf. The + * single-colour rectangle partition is not optimal, but does find the biggest + * horizontal or vertical rectangle top-left anchored to each consecutive + * coordinate position. + * + * The coding scheme is simply [<bgcolour><subrect><subrect>...] where each + * <subrect> is [<colour><x><y><w><h>]. + */ + +#define DEFINE_SUBRECT_ENCODE(bpp) \ +static int \ +subrectEncode##bpp(data,w,h) \ + uint##bpp##_t *data; \ + int w; \ + int h; \ +{ \ + uint##bpp##_t cl; \ + rfbCoRRERectangle subrect; \ + int x,y; \ + int i,j; \ + int hx=0,hy,vx=0,vy; \ + int hyflag; \ + uint##bpp##_t *seg; \ + uint##bpp##_t *line; \ + int hw,hh,vw,vh; \ + int thex,they,thew,theh; \ + int numsubs = 0; \ + int newLen; \ + uint##bpp##_t bg = (uint##bpp##_t)getBgColour((char*)data,w*h,bpp); \ + \ + *((uint##bpp##_t*)rreAfterBuf) = bg; \ + \ + rreAfterBufLen = (bpp/8); \ + \ + for (y=0; y<h; y++) { \ + line = data+(y*w); \ + for (x=0; x<w; x++) { \ + if (line[x] != bg) { \ + cl = line[x]; \ + hy = y-1; \ + hyflag = 1; \ + for (j=y; j<h; j++) { \ + seg = data+(j*w); \ + if (seg[x] != cl) {break;} \ + i = x; \ + while ((seg[i] == cl) && (i < w)) i += 1; \ + i -= 1; \ + if (j == y) vx = hx = i; \ + if (i < vx) vx = i; \ + if ((hyflag > 0) && (i >= hx)) {hy += 1;} else {hyflag = 0;} \ + } \ + vy = j-1; \ + \ + /* We now have two possible subrects: (x,y,hx,hy) and (x,y,vx,vy) \ + * We'll choose the bigger of the two. \ + */ \ + hw = hx-x+1; \ + hh = hy-y+1; \ + vw = vx-x+1; \ + vh = vy-y+1; \ + \ + thex = x; \ + they = y; \ + \ + if ((hw*hh) > (vw*vh)) { \ + thew = hw; \ + theh = hh; \ + } else { \ + thew = vw; \ + theh = vh; \ + } \ + \ + subrect.x = thex; \ + subrect.y = they; \ + subrect.w = thew; \ + subrect.h = theh; \ + \ + newLen = rreAfterBufLen + (bpp/8) + sz_rfbCoRRERectangle; \ + if ((newLen > (w * h * (bpp/8))) || (newLen > rreAfterBufSize)) \ + return -1; \ + \ + numsubs += 1; \ + *((uint##bpp##_t*)(rreAfterBuf + rreAfterBufLen)) = cl; \ + rreAfterBufLen += (bpp/8); \ + memcpy(&rreAfterBuf[rreAfterBufLen],&subrect,sz_rfbCoRRERectangle); \ + rreAfterBufLen += sz_rfbCoRRERectangle; \ + \ + /* \ + * Now mark the subrect as done. \ + */ \ + for (j=they; j < (they+theh); j++) { \ + for (i=thex; i < (thex+thew); i++) { \ + data[j*w+i] = bg; \ + } \ + } \ + } \ + } \ + } \ + \ + return numsubs; \ +} + +DEFINE_SUBRECT_ENCODE(8) +DEFINE_SUBRECT_ENCODE(16) +DEFINE_SUBRECT_ENCODE(32) + + +/* + * getBgColour() gets the most prevalent colour in a byte array. + */ +static uint32_t +getBgColour(data,size,bpp) + char *data; + int size; + int bpp; +{ + +#define NUMCLRS 256 + + static int counts[NUMCLRS]; + int i,j,k; + + int maxcount = 0; + uint8_t maxclr = 0; + + if (bpp != 8) { + if (bpp == 16) { + return ((uint16_t *)data)[0]; + } else if (bpp == 32) { + return ((uint32_t *)data)[0]; + } else { + rfbLog("getBgColour: bpp %d?\n",bpp); + return 0; + } + } + + for (i=0; i<NUMCLRS; i++) { + counts[i] = 0; + } + + for (j=0; j<size; j++) { + k = (int)(((uint8_t *)data)[j]); + if (k >= NUMCLRS) { + rfbLog("getBgColour: unusual colour = %d\n", k); + return 0; + } + counts[k] += 1; + if (counts[k] > maxcount) { + maxcount = counts[k]; + maxclr = ((uint8_t *)data)[j]; + } + } + + return maxclr; +} diff --git a/server/libvncserver/cursor.c b/server/libvncserver/cursor.c new file mode 100644 index 0000000..f509360 --- /dev/null +++ b/server/libvncserver/cursor.c @@ -0,0 +1,546 @@ +/* + * cursor.c - support for cursor shape updates. + */ + +/* + * Copyright (C) 2000, 2001 Const Kaplinsky. All Rights Reserved. + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" +#include "rfb/rfbregion.h" + +/* + * Send cursor shape either in X-style format or in client pixel format. + */ + +rfbBool +rfbSendCursorShape(cl) + rfbClientPtr cl; +{ + rfbCursorPtr pCursor; + rfbFramebufferUpdateRectHeader rect; + rfbXCursorColors colors; + int saved_ublen; + int bitmapRowBytes, maskBytes, dataBytes; + int i, j; + uint8_t *bitmapData; + uint8_t bitmapByte; + + pCursor = cl->screen->cursor; + /*if(!pCursor) return TRUE;*/ + + if (cl->useRichCursorEncoding) { + if(pCursor && !pCursor->richSource) + MakeRichCursorFromXCursor(cl->screen,pCursor); + rect.encoding = Swap32IfLE(rfbEncodingRichCursor); + } else { + if(pCursor && !pCursor->source) + MakeXCursorFromRichCursor(cl->screen,pCursor); + rect.encoding = Swap32IfLE(rfbEncodingXCursor); + } + + /* If there is no cursor, send update with empty cursor data. */ + + if ( pCursor && pCursor->width == 1 && + pCursor->height == 1 && + pCursor->mask[0] == 0 ) { + pCursor = NULL; + } + + if (pCursor == NULL) { + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE ) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + rect.r.x = rect.r.y = 0; + rect.r.w = rect.r.h = 0; + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbCursorShapeBytesSent += sz_rfbFramebufferUpdateRectHeader; + cl->rfbCursorShapeUpdatesSent++; + + if (!rfbSendUpdateBuf(cl)) + return FALSE; + + return TRUE; + } + + /* Calculate data sizes. */ + + bitmapRowBytes = (pCursor->width + 7) / 8; + maskBytes = bitmapRowBytes * pCursor->height; + dataBytes = (cl->useRichCursorEncoding) ? + (pCursor->width * pCursor->height * + (cl->format.bitsPerPixel / 8)) : maskBytes; + + /* Send buffer contents if needed. */ + + if ( cl->ublen + sz_rfbFramebufferUpdateRectHeader + + sz_rfbXCursorColors + maskBytes + dataBytes > UPDATE_BUF_SIZE ) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + if ( cl->ublen + sz_rfbFramebufferUpdateRectHeader + + sz_rfbXCursorColors + maskBytes + dataBytes > UPDATE_BUF_SIZE ) { + return FALSE; /* FIXME. */ + } + + saved_ublen = cl->ublen; + + /* Prepare rectangle header. */ + + rect.r.x = Swap16IfLE(pCursor->xhot); + rect.r.y = Swap16IfLE(pCursor->yhot); + rect.r.w = Swap16IfLE(pCursor->width); + rect.r.h = Swap16IfLE(pCursor->height); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect,sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + /* Prepare actual cursor data (depends on encoding used). */ + + if (!cl->useRichCursorEncoding) { + /* XCursor encoding. */ + colors.foreRed = (char)(pCursor->foreRed >> 8); + colors.foreGreen = (char)(pCursor->foreGreen >> 8); + colors.foreBlue = (char)(pCursor->foreBlue >> 8); + colors.backRed = (char)(pCursor->backRed >> 8); + colors.backGreen = (char)(pCursor->backGreen >> 8); + colors.backBlue = (char)(pCursor->backBlue >> 8); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&colors, sz_rfbXCursorColors); + cl->ublen += sz_rfbXCursorColors; + + bitmapData = (uint8_t *)pCursor->source; + + for (i = 0; i < pCursor->height; i++) { + for (j = 0; j < bitmapRowBytes; j++) { + bitmapByte = bitmapData[i * bitmapRowBytes + j]; + cl->updateBuf[cl->ublen++] = (char)bitmapByte; + } + } + } else { + /* RichCursor encoding. */ + int bpp1=cl->screen->rfbServerFormat.bitsPerPixel/8, + bpp2=cl->format.bitsPerPixel/8; + (*cl->translateFn)(cl->translateLookupTable, + &(cl->screen->rfbServerFormat), + &cl->format, (char*)pCursor->richSource, + &cl->updateBuf[cl->ublen], + pCursor->width*bpp1, pCursor->width, pCursor->height); + + cl->ublen += pCursor->width*bpp2*pCursor->height; + } + + /* Prepare transparency mask. */ + + bitmapData = (uint8_t *)pCursor->mask; + + for (i = 0; i < pCursor->height; i++) { + for (j = 0; j < bitmapRowBytes; j++) { + bitmapByte = bitmapData[i * bitmapRowBytes + j]; + cl->updateBuf[cl->ublen++] = (char)bitmapByte; + } + } + + /* Send everything we have prepared in the cl->updateBuf[]. */ + + cl->rfbCursorShapeBytesSent += (cl->ublen - saved_ublen); + cl->rfbCursorShapeUpdatesSent++; + + if (!rfbSendUpdateBuf(cl)) + return FALSE; + + return TRUE; +} + +/* + * Send cursor position (PointerPos pseudo-encoding). + */ + +rfbBool +rfbSendCursorPos(rfbClientPtr cl) +{ + rfbFramebufferUpdateRectHeader rect; + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.encoding = Swap32IfLE(rfbEncodingPointerPos); + rect.r.x = Swap16IfLE(cl->screen->cursorX); + rect.r.y = Swap16IfLE(cl->screen->cursorY); + rect.r.w = 0; + rect.r.h = 0; + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbCursorPosBytesSent += sz_rfbFramebufferUpdateRectHeader; + cl->rfbCursorPosUpdatesSent++; + + if (!rfbSendUpdateBuf(cl)) + return FALSE; + + return TRUE; +} + +/* conversion routine for predefined cursors in LSB order */ +unsigned char rfbReverseByte[0x100] = { + /* copied from Xvnc/lib/font/util/utilbitmap.c */ + 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, + 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, + 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, + 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, + 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, + 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, + 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, + 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, + 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, + 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, + 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, + 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, + 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, + 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, + 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, + 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, + 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, + 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, + 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, + 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, + 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, + 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, + 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, + 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, + 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, + 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, + 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, + 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, + 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, + 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, + 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, + 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff +}; + +void rfbConvertLSBCursorBitmapOrMask(int width,int height,unsigned char* bitmap) +{ + int i,t=(width+7)/8*height; + for(i=0;i<t;i++) + bitmap[i]=rfbReverseByte[(int)bitmap[i]]; +} + +/* Cursor creation. You "paint" a cursor and let these routines do the work */ + +rfbCursorPtr rfbMakeXCursor(int width,int height,const char* cursorString,const char* maskString) +{ + int i,j,w=(width+7)/8; + rfbCursorPtr cursor = (rfbCursorPtr)calloc(1,sizeof(rfbCursor)); + const char* cp; + unsigned char bit; + + cursor->cleanup=TRUE; + cursor->width=width; + cursor->height=height; + /*cursor->backRed=cursor->backGreen=cursor->backBlue=0xffff;*/ + cursor->foreRed=cursor->foreGreen=cursor->foreBlue=0xffff; + + cursor->source = (unsigned char*)calloc(w,height); + cursor->cleanupSource = TRUE; + for(j=0,cp=cursorString;j<height;j++) + for(i=0,bit=0x80;i<width;i++,bit=(bit&1)?0x80:bit>>1,cp++) + if(*cp!=' ') cursor->source[j*w+i/8]|=bit; + + if(maskString) { + cursor->mask = (unsigned char*)calloc(w,height); + for(j=0,cp=maskString;j<height;j++) + for(i=0,bit=0x80;i<width;i++,bit=(bit&1)?0x80:bit>>1,cp++) + if(*cp!=' ') cursor->mask[j*w+i/8]|=bit; + } else + cursor->mask = (unsigned char*)rfbMakeMaskForXCursor(width,height,(char*)cursor->source); + cursor->cleanupMask = TRUE; + + return(cursor); +} + +char* rfbMakeMaskForXCursor(int width,int height,char* source) +{ + int i,j,w=(width+7)/8; + char* mask=(char*)calloc(w,height); + unsigned char c; + + for(j=0;j<height;j++) + for(i=w-1;i>=0;i--) { + c=source[j*w+i]; + if(j>0) c|=source[(j-1)*w+i]; + if(j<height-1) c|=source[(j+1)*w+i]; + + if(i>0 && (c&0x80)) + mask[j*w+i-1]|=0x01; + if(i<w-1 && (c&0x01)) + mask[j*w+i+1]|=0x80; + + mask[j*w+i]|=(c<<1)|c|(c>>1); + } + + return(mask); +} + +void rfbFreeCursor(rfbCursorPtr cursor) +{ + if(cursor) { + if(cursor->cleanupRichSource && cursor->richSource) + free(cursor->richSource); + if(cursor->cleanupSource && cursor->source) + free(cursor->source); + if(cursor->cleanupMask && cursor->mask) + free(cursor->mask); + if(cursor->cleanup) + free(cursor); + else { + cursor->cleanup=cursor->cleanupSource=cursor->cleanupMask + =cursor->cleanupRichSource=FALSE; + cursor->source=cursor->mask=cursor->richSource=0; + } + } + +} + +/* background and foregroud colour have to be set beforehand */ +void MakeXCursorFromRichCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor) +{ + rfbPixelFormat* format=&rfbScreen->rfbServerFormat; + int i,j,w=(cursor->width+7)/8,bpp=format->bitsPerPixel/8, + width=cursor->width*bpp; + uint32_t background; + char *back=(char*)&background; + unsigned char bit; + + if(cursor->source && cursor->cleanupSource) + free(cursor->source); + cursor->source=(unsigned char*)calloc(w,cursor->height); + cursor->cleanupSource=TRUE; + + if(format->bigEndian) + back+=4-bpp; + + background=cursor->backRed<<format->redShift| + cursor->backGreen<<format->greenShift|cursor->backBlue<<format->blueShift; + + for(j=0;j<cursor->height;j++) + for(i=0,bit=0x80;i<cursor->width;i++,bit=(bit&1)?0x80:bit>>1) + if(memcmp(cursor->richSource+j*width+i*bpp,back,bpp)) + cursor->source[j*w+i/8]|=bit; +} + +void MakeRichCursorFromXCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor) +{ + rfbPixelFormat* format=&rfbScreen->rfbServerFormat; + int i,j,w=(cursor->width+7)/8,bpp=format->bitsPerPixel/8; + uint32_t background,foreground; + char *back=(char*)&background,*fore=(char*)&foreground; + unsigned char *cp; + unsigned char bit; + + if(cursor->richSource && cursor->cleanupRichSource) + free(cursor->richSource); + cp=cursor->richSource=(unsigned char*)calloc(cursor->width*bpp,cursor->height); + cursor->cleanupRichSource=TRUE; + + if(format->bigEndian) { + back+=4-bpp; + fore+=4-bpp; + } + + background=cursor->backRed<<format->redShift| + cursor->backGreen<<format->greenShift|cursor->backBlue<<format->blueShift; + foreground=cursor->foreRed<<format->redShift| + cursor->foreGreen<<format->greenShift|cursor->foreBlue<<format->blueShift; + + for(j=0;j<cursor->height;j++) + for(i=0,bit=0x80;i<cursor->width;i++,bit=(bit&1)?0x80:bit>>1,cp+=bpp) + if(cursor->source[j*w+i/8]&bit) memcpy(cp,fore,bpp); + else memcpy(cp,back,bpp); +} + +rfbBool rfbGetCursorBounds(rfbScreenInfoPtr screen, + sraRectPtr bounds) +{ + rfbCursorPtr cursor = screen->cursor; + int x1, y1, x2, y2; + + if (!bounds || !cursor) + return FALSE; + + x1 = screen->cursorX - cursor->xhot; + x2 = x1 + cursor->width; + + if (x1 < 0) + x1 = 0; + + if (x2 >= screen->width) + x2 = screen->width - 1; + + y1 = screen->cursorY - cursor->yhot; + y2 = y1 + cursor->height; + + if (y1 < 0) + y1 = 0; + + if (y2 >= screen->height) + y2 = screen->height - 1; + + if (x2 <= x1 || y2 <= y1) + return FALSE; + + bounds->x1 = x1; + bounds->y1 = y1; + bounds->x2 = x2; + bounds->y2 = y2; + + return TRUE; +} + +/* functions to draw/hide cursor directly in the frame buffer */ + +void rfbUndrawCursor(rfbScreenInfoPtr screen, + sraRectPtr bounds) +{ + rfbCursorPtr cursor = screen->cursor; + sraRect rect; + int j, bpp, rowstride; + + if (!cursor) + return; + + if (!bounds) { + bounds = ▭ + + if (!rfbGetCursorBounds (screen, bounds)) + return; + } + + bpp = screen->rfbServerFormat.bitsPerPixel / 8; + rowstride = screen->paddedWidthInBytes; + + /* restore saved data */ + for (j = 0; j < (bounds->y2 - bounds->y1); j++) + memcpy(screen->frameBuffer + (bounds->y1 + j) * rowstride + bounds->x1 * bpp, + screen->underCursorBuffer + j * (bounds->x2 - bounds->x1) * bpp, + (bounds->x2 - bounds->x1) * bpp); +} + +void rfbDrawCursor(rfbScreenInfoPtr screen, + sraRectPtr bounds) +{ + rfbCursorPtr cursor = screen->cursor; + sraRect rect; + int i, i1, j, j1; + int bpp, rowstride; + int bufSize, w; + + if (!cursor) + return; + + if (!bounds) { + bounds = ▭ + + if (!rfbGetCursorBounds (screen, bounds)) + return; + } + + bpp = screen->rfbServerFormat.bitsPerPixel / 8; + rowstride = screen->paddedWidthInBytes; + + bufSize = cursor->width * cursor->height * bpp; + if (screen->underCursorBufferLen < bufSize) { + if (screen->underCursorBuffer) + free(screen->underCursorBuffer); + + screen->underCursorBuffer = malloc(bufSize); + screen->underCursorBufferLen = bufSize; + } + + i1 = j1 = 0; /* offset in cursor */ + if (screen->cursorX < cursor->xhot) + i1 = cursor->xhot - screen->cursorX; + if (screen->cursorY < cursor->yhot) + j1 = cursor->yhot - screen->cursorY; + + /* save what is under the cursor */ + for (j = 0; j < (bounds->y2 - bounds->y1); j++) + memcpy(screen->underCursorBuffer + j * (bounds->x2 - bounds->x1) * bpp, + screen->frameBuffer + (bounds->y1 + j) * rowstride + bounds->x1 * bpp, + (bounds->x2 - bounds->x1) * bpp); + + if (!cursor->richSource) + MakeRichCursorFromXCursor(screen, cursor); + + w = (cursor->width + 7) / 8; + + /* now the cursor has to be drawn */ + for (j = 0; j < (bounds->y2 - bounds->y1); j++) + for (i = 0; i < (bounds->x2 - bounds->x1); i++) + if ((cursor->mask[(j + j1) * w + (i + i1) / 8] << ((i + i1) & 7)) & 0x80) + memcpy(screen->frameBuffer + (bounds->y1 + j) * rowstride + (bounds->x1 + i) * bpp, + cursor->richSource + (j + j1) * cursor->width * bpp + (i + i1) * bpp, + bpp); +} + +void rfbSetCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr c,rfbBool freeOld) +{ + LOCK(rfbScreen->cursorMutex); + + if(rfbScreen->cursor && (freeOld || rfbScreen->cursor->cleanup)) + rfbFreeCursor(rfbScreen->cursor); + + rfbScreen->cursor = c; + + UNLOCK(rfbScreen->cursorMutex); +} + +void rfbSetCursorPosition(rfbScreenInfoPtr screen, rfbClientPtr client, int x, int y) +{ + rfbClientIteratorPtr iterator; + rfbClientPtr cl; + + if (x == screen->cursorX && y == screen->cursorY) + return; + + LOCK(screen->cursorMutex); + screen->cursorX = x; + screen->cursorY = y; + UNLOCK(screen->cursorMutex); + + /* Inform all clients about this cursor movement. */ + iterator = rfbGetClientIterator(screen); + while ((cl = rfbClientIteratorNext(iterator)) != NULL) { + cl->cursorWasMoved = TRUE; + } + rfbReleaseClientIterator(iterator); + + /* The cursor was moved by this client, so don't send CursorPos. */ + if (client) { + client->cursorWasMoved = FALSE; + } +} diff --git a/server/libvncserver/cutpaste.c b/server/libvncserver/cutpaste.c new file mode 100644 index 0000000..6533fd2 --- /dev/null +++ b/server/libvncserver/cutpaste.c @@ -0,0 +1,38 @@ +/* + * cutpaste.c - routines to deal with cut & paste buffers / selection. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + + +/* + * rfbSetXCutText sets the cut buffer to be the given string. We also clear + * the primary selection. Ideally we'd like to set it to the same thing, but I + * can't work out how to do that without some kind of helper X client. + */ + +void rfbGotXCutText(rfbScreenInfoPtr rfbScreen, char *str, int len) +{ + rfbSendServerCutText(rfbScreen, str, len); +} diff --git a/server/libvncserver/d3des.c b/server/libvncserver/d3des.c new file mode 100644 index 0000000..4994afb --- /dev/null +++ b/server/libvncserver/d3des.c @@ -0,0 +1,442 @@ +/* + * This is D3DES (V5.09) by Richard Outerbridge with the double and + * triple-length support removed for use in VNC. Also the bytebit[] array + * has been reversed so that the most significant bit in each byte of the + * key is ignored, not the least significant. + * + * These changes are: + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* D3DES (V5.09) - + * + * A portable, public domain, version of the Data Encryption Standard. + * + * Written with Symantec's THINK (Lightspeed) C by Richard Outerbridge. + * Thanks to: Dan Hoey for his excellent Initial and Inverse permutation + * code; Jim Gillogly & Phil Karn for the DES key schedule code; Dennis + * Ferguson, Eric Young and Dana How for comparing notes; and Ray Lau, + * for humouring me on. + * + * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. + * (GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. + */ + +#include "d3des.h" + +static void scrunch(unsigned char *, unsigned long *); +static void unscrun(unsigned long *, unsigned char *); +static void desfunc(unsigned long *, unsigned long *); +static void cookey(unsigned long *); + +static unsigned long KnL[32] = { 0L }; +/* +static unsigned long KnR[32] = { 0L }; +static unsigned long Kn3[32] = { 0L }; +static unsigned char Df_Key[24] = { + 0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef, + 0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10, + 0x89,0xab,0xcd,0xef,0x01,0x23,0x45,0x67 }; +*/ + +static unsigned short bytebit[8] = { + 01, 02, 04, 010, 020, 040, 0100, 0200 }; + +static unsigned long bigbyte[24] = { + 0x800000L, 0x400000L, 0x200000L, 0x100000L, + 0x80000L, 0x40000L, 0x20000L, 0x10000L, + 0x8000L, 0x4000L, 0x2000L, 0x1000L, + 0x800L, 0x400L, 0x200L, 0x100L, + 0x80L, 0x40L, 0x20L, 0x10L, + 0x8L, 0x4L, 0x2L, 0x1L }; + +/* Use the key schedule specified in the Standard (ANSI X3.92-1981). */ + +static unsigned char pc1[56] = { + 56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, + 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, + 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, + 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3 }; + +static unsigned char totrot[16] = { + 1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28 }; + +static unsigned char pc2[48] = { + 13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, + 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, + 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, + 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31 }; + +void deskey(key, edf) /* Thanks to James Gillogly & Phil Karn! */ +unsigned char *key; +int edf; +{ + register int i, j, l, m, n; + unsigned char pc1m[56], pcr[56]; + unsigned long kn[32]; + + for ( j = 0; j < 56; j++ ) { + l = pc1[j]; + m = l & 07; + pc1m[j] = (key[l >> 3] & bytebit[m]) ? 1 : 0; + } + for( i = 0; i < 16; i++ ) { + if( edf == DE1 ) m = (15 - i) << 1; + else m = i << 1; + n = m + 1; + kn[m] = kn[n] = 0L; + for( j = 0; j < 28; j++ ) { + l = j + totrot[i]; + if( l < 28 ) pcr[j] = pc1m[l]; + else pcr[j] = pc1m[l - 28]; + } + for( j = 28; j < 56; j++ ) { + l = j + totrot[i]; + if( l < 56 ) pcr[j] = pc1m[l]; + else pcr[j] = pc1m[l - 28]; + } + for( j = 0; j < 24; j++ ) { + if( pcr[pc2[j]] ) kn[m] |= bigbyte[j]; + if( pcr[pc2[j+24]] ) kn[n] |= bigbyte[j]; + } + } + cookey(kn); + return; + } + +static void cookey(raw1) +register unsigned long *raw1; +{ + register unsigned long *cook, *raw0; + unsigned long dough[32]; + register int i; + + cook = dough; + for( i = 0; i < 16; i++, raw1++ ) { + raw0 = raw1++; + *cook = (*raw0 & 0x00fc0000L) << 6; + *cook |= (*raw0 & 0x00000fc0L) << 10; + *cook |= (*raw1 & 0x00fc0000L) >> 10; + *cook++ |= (*raw1 & 0x00000fc0L) >> 6; + *cook = (*raw0 & 0x0003f000L) << 12; + *cook |= (*raw0 & 0x0000003fL) << 16; + *cook |= (*raw1 & 0x0003f000L) >> 4; + *cook++ |= (*raw1 & 0x0000003fL); + } + usekey(dough); + return; + } + +void cpkey(into) +register unsigned long *into; +{ + register unsigned long *from, *endp; + + from = KnL, endp = &KnL[32]; + while( from < endp ) *into++ = *from++; + return; + } + +void usekey(from) +register unsigned long *from; +{ + register unsigned long *to, *endp; + + to = KnL, endp = &KnL[32]; + while( to < endp ) *to++ = *from++; + return; + } + +void des(inblock, outblock) +unsigned char *inblock, *outblock; +{ + unsigned long work[2]; + + scrunch(inblock, work); + desfunc(work, KnL); + unscrun(work, outblock); + return; + } + +static void scrunch(outof, into) +register unsigned char *outof; +register unsigned long *into; +{ + *into = (*outof++ & 0xffL) << 24; + *into |= (*outof++ & 0xffL) << 16; + *into |= (*outof++ & 0xffL) << 8; + *into++ |= (*outof++ & 0xffL); + *into = (*outof++ & 0xffL) << 24; + *into |= (*outof++ & 0xffL) << 16; + *into |= (*outof++ & 0xffL) << 8; + *into |= (*outof & 0xffL); + return; + } + +static void unscrun(outof, into) +register unsigned long *outof; +register unsigned char *into; +{ + *into++ = (unsigned char)((*outof >> 24) & 0xffL); + *into++ = (unsigned char)((*outof >> 16) & 0xffL); + *into++ = (unsigned char)((*outof >> 8) & 0xffL); + *into++ = (unsigned char)( *outof++ & 0xffL); + *into++ = (unsigned char)((*outof >> 24) & 0xffL); + *into++ = (unsigned char)((*outof >> 16) & 0xffL); + *into++ = (unsigned char)((*outof >> 8) & 0xffL); + *into = (unsigned char)( *outof & 0xffL); + return; + } + +static unsigned long SP1[64] = { + 0x01010400L, 0x00000000L, 0x00010000L, 0x01010404L, + 0x01010004L, 0x00010404L, 0x00000004L, 0x00010000L, + 0x00000400L, 0x01010400L, 0x01010404L, 0x00000400L, + 0x01000404L, 0x01010004L, 0x01000000L, 0x00000004L, + 0x00000404L, 0x01000400L, 0x01000400L, 0x00010400L, + 0x00010400L, 0x01010000L, 0x01010000L, 0x01000404L, + 0x00010004L, 0x01000004L, 0x01000004L, 0x00010004L, + 0x00000000L, 0x00000404L, 0x00010404L, 0x01000000L, + 0x00010000L, 0x01010404L, 0x00000004L, 0x01010000L, + 0x01010400L, 0x01000000L, 0x01000000L, 0x00000400L, + 0x01010004L, 0x00010000L, 0x00010400L, 0x01000004L, + 0x00000400L, 0x00000004L, 0x01000404L, 0x00010404L, + 0x01010404L, 0x00010004L, 0x01010000L, 0x01000404L, + 0x01000004L, 0x00000404L, 0x00010404L, 0x01010400L, + 0x00000404L, 0x01000400L, 0x01000400L, 0x00000000L, + 0x00010004L, 0x00010400L, 0x00000000L, 0x01010004L }; + +static unsigned long SP2[64] = { + 0x80108020L, 0x80008000L, 0x00008000L, 0x00108020L, + 0x00100000L, 0x00000020L, 0x80100020L, 0x80008020L, + 0x80000020L, 0x80108020L, 0x80108000L, 0x80000000L, + 0x80008000L, 0x00100000L, 0x00000020L, 0x80100020L, + 0x00108000L, 0x00100020L, 0x80008020L, 0x00000000L, + 0x80000000L, 0x00008000L, 0x00108020L, 0x80100000L, + 0x00100020L, 0x80000020L, 0x00000000L, 0x00108000L, + 0x00008020L, 0x80108000L, 0x80100000L, 0x00008020L, + 0x00000000L, 0x00108020L, 0x80100020L, 0x00100000L, + 0x80008020L, 0x80100000L, 0x80108000L, 0x00008000L, + 0x80100000L, 0x80008000L, 0x00000020L, 0x80108020L, + 0x00108020L, 0x00000020L, 0x00008000L, 0x80000000L, + 0x00008020L, 0x80108000L, 0x00100000L, 0x80000020L, + 0x00100020L, 0x80008020L, 0x80000020L, 0x00100020L, + 0x00108000L, 0x00000000L, 0x80008000L, 0x00008020L, + 0x80000000L, 0x80100020L, 0x80108020L, 0x00108000L }; + +static unsigned long SP3[64] = { + 0x00000208L, 0x08020200L, 0x00000000L, 0x08020008L, + 0x08000200L, 0x00000000L, 0x00020208L, 0x08000200L, + 0x00020008L, 0x08000008L, 0x08000008L, 0x00020000L, + 0x08020208L, 0x00020008L, 0x08020000L, 0x00000208L, + 0x08000000L, 0x00000008L, 0x08020200L, 0x00000200L, + 0x00020200L, 0x08020000L, 0x08020008L, 0x00020208L, + 0x08000208L, 0x00020200L, 0x00020000L, 0x08000208L, + 0x00000008L, 0x08020208L, 0x00000200L, 0x08000000L, + 0x08020200L, 0x08000000L, 0x00020008L, 0x00000208L, + 0x00020000L, 0x08020200L, 0x08000200L, 0x00000000L, + 0x00000200L, 0x00020008L, 0x08020208L, 0x08000200L, + 0x08000008L, 0x00000200L, 0x00000000L, 0x08020008L, + 0x08000208L, 0x00020000L, 0x08000000L, 0x08020208L, + 0x00000008L, 0x00020208L, 0x00020200L, 0x08000008L, + 0x08020000L, 0x08000208L, 0x00000208L, 0x08020000L, + 0x00020208L, 0x00000008L, 0x08020008L, 0x00020200L }; + +static unsigned long SP4[64] = { + 0x00802001L, 0x00002081L, 0x00002081L, 0x00000080L, + 0x00802080L, 0x00800081L, 0x00800001L, 0x00002001L, + 0x00000000L, 0x00802000L, 0x00802000L, 0x00802081L, + 0x00000081L, 0x00000000L, 0x00800080L, 0x00800001L, + 0x00000001L, 0x00002000L, 0x00800000L, 0x00802001L, + 0x00000080L, 0x00800000L, 0x00002001L, 0x00002080L, + 0x00800081L, 0x00000001L, 0x00002080L, 0x00800080L, + 0x00002000L, 0x00802080L, 0x00802081L, 0x00000081L, + 0x00800080L, 0x00800001L, 0x00802000L, 0x00802081L, + 0x00000081L, 0x00000000L, 0x00000000L, 0x00802000L, + 0x00002080L, 0x00800080L, 0x00800081L, 0x00000001L, + 0x00802001L, 0x00002081L, 0x00002081L, 0x00000080L, + 0x00802081L, 0x00000081L, 0x00000001L, 0x00002000L, + 0x00800001L, 0x00002001L, 0x00802080L, 0x00800081L, + 0x00002001L, 0x00002080L, 0x00800000L, 0x00802001L, + 0x00000080L, 0x00800000L, 0x00002000L, 0x00802080L }; + +static unsigned long SP5[64] = { + 0x00000100L, 0x02080100L, 0x02080000L, 0x42000100L, + 0x00080000L, 0x00000100L, 0x40000000L, 0x02080000L, + 0x40080100L, 0x00080000L, 0x02000100L, 0x40080100L, + 0x42000100L, 0x42080000L, 0x00080100L, 0x40000000L, + 0x02000000L, 0x40080000L, 0x40080000L, 0x00000000L, + 0x40000100L, 0x42080100L, 0x42080100L, 0x02000100L, + 0x42080000L, 0x40000100L, 0x00000000L, 0x42000000L, + 0x02080100L, 0x02000000L, 0x42000000L, 0x00080100L, + 0x00080000L, 0x42000100L, 0x00000100L, 0x02000000L, + 0x40000000L, 0x02080000L, 0x42000100L, 0x40080100L, + 0x02000100L, 0x40000000L, 0x42080000L, 0x02080100L, + 0x40080100L, 0x00000100L, 0x02000000L, 0x42080000L, + 0x42080100L, 0x00080100L, 0x42000000L, 0x42080100L, + 0x02080000L, 0x00000000L, 0x40080000L, 0x42000000L, + 0x00080100L, 0x02000100L, 0x40000100L, 0x00080000L, + 0x00000000L, 0x40080000L, 0x02080100L, 0x40000100L }; + +static unsigned long SP6[64] = { + 0x20000010L, 0x20400000L, 0x00004000L, 0x20404010L, + 0x20400000L, 0x00000010L, 0x20404010L, 0x00400000L, + 0x20004000L, 0x00404010L, 0x00400000L, 0x20000010L, + 0x00400010L, 0x20004000L, 0x20000000L, 0x00004010L, + 0x00000000L, 0x00400010L, 0x20004010L, 0x00004000L, + 0x00404000L, 0x20004010L, 0x00000010L, 0x20400010L, + 0x20400010L, 0x00000000L, 0x00404010L, 0x20404000L, + 0x00004010L, 0x00404000L, 0x20404000L, 0x20000000L, + 0x20004000L, 0x00000010L, 0x20400010L, 0x00404000L, + 0x20404010L, 0x00400000L, 0x00004010L, 0x20000010L, + 0x00400000L, 0x20004000L, 0x20000000L, 0x00004010L, + 0x20000010L, 0x20404010L, 0x00404000L, 0x20400000L, + 0x00404010L, 0x20404000L, 0x00000000L, 0x20400010L, + 0x00000010L, 0x00004000L, 0x20400000L, 0x00404010L, + 0x00004000L, 0x00400010L, 0x20004010L, 0x00000000L, + 0x20404000L, 0x20000000L, 0x00400010L, 0x20004010L }; + +static unsigned long SP7[64] = { + 0x00200000L, 0x04200002L, 0x04000802L, 0x00000000L, + 0x00000800L, 0x04000802L, 0x00200802L, 0x04200800L, + 0x04200802L, 0x00200000L, 0x00000000L, 0x04000002L, + 0x00000002L, 0x04000000L, 0x04200002L, 0x00000802L, + 0x04000800L, 0x00200802L, 0x00200002L, 0x04000800L, + 0x04000002L, 0x04200000L, 0x04200800L, 0x00200002L, + 0x04200000L, 0x00000800L, 0x00000802L, 0x04200802L, + 0x00200800L, 0x00000002L, 0x04000000L, 0x00200800L, + 0x04000000L, 0x00200800L, 0x00200000L, 0x04000802L, + 0x04000802L, 0x04200002L, 0x04200002L, 0x00000002L, + 0x00200002L, 0x04000000L, 0x04000800L, 0x00200000L, + 0x04200800L, 0x00000802L, 0x00200802L, 0x04200800L, + 0x00000802L, 0x04000002L, 0x04200802L, 0x04200000L, + 0x00200800L, 0x00000000L, 0x00000002L, 0x04200802L, + 0x00000000L, 0x00200802L, 0x04200000L, 0x00000800L, + 0x04000002L, 0x04000800L, 0x00000800L, 0x00200002L }; + +static unsigned long SP8[64] = { + 0x10001040L, 0x00001000L, 0x00040000L, 0x10041040L, + 0x10000000L, 0x10001040L, 0x00000040L, 0x10000000L, + 0x00040040L, 0x10040000L, 0x10041040L, 0x00041000L, + 0x10041000L, 0x00041040L, 0x00001000L, 0x00000040L, + 0x10040000L, 0x10000040L, 0x10001000L, 0x00001040L, + 0x00041000L, 0x00040040L, 0x10040040L, 0x10041000L, + 0x00001040L, 0x00000000L, 0x00000000L, 0x10040040L, + 0x10000040L, 0x10001000L, 0x00041040L, 0x00040000L, + 0x00041040L, 0x00040000L, 0x10041000L, 0x00001000L, + 0x00000040L, 0x10040040L, 0x00001000L, 0x00041040L, + 0x10001000L, 0x00000040L, 0x10000040L, 0x10040000L, + 0x10040040L, 0x10000000L, 0x00040000L, 0x10001040L, + 0x00000000L, 0x10041040L, 0x00040040L, 0x10000040L, + 0x10040000L, 0x10001000L, 0x10001040L, 0x00000000L, + 0x10041040L, 0x00041000L, 0x00041000L, 0x00001040L, + 0x00001040L, 0x00040040L, 0x10000000L, 0x10041000L }; + +static void desfunc(block, keys) +register unsigned long *block, *keys; +{ + register unsigned long fval, work, right, leftt; + register int round; + + leftt = block[0]; + right = block[1]; + work = ((leftt >> 4) ^ right) & 0x0f0f0f0fL; + right ^= work; + leftt ^= (work << 4); + work = ((leftt >> 16) ^ right) & 0x0000ffffL; + right ^= work; + leftt ^= (work << 16); + work = ((right >> 2) ^ leftt) & 0x33333333L; + leftt ^= work; + right ^= (work << 2); + work = ((right >> 8) ^ leftt) & 0x00ff00ffL; + leftt ^= work; + right ^= (work << 8); + right = ((right << 1) | ((right >> 31) & 1L)) & 0xffffffffL; + work = (leftt ^ right) & 0xaaaaaaaaL; + leftt ^= work; + right ^= work; + leftt = ((leftt << 1) | ((leftt >> 31) & 1L)) & 0xffffffffL; + + for( round = 0; round < 8; round++ ) { + work = (right << 28) | (right >> 4); + work ^= *keys++; + fval = SP7[ work & 0x3fL]; + fval |= SP5[(work >> 8) & 0x3fL]; + fval |= SP3[(work >> 16) & 0x3fL]; + fval |= SP1[(work >> 24) & 0x3fL]; + work = right ^ *keys++; + fval |= SP8[ work & 0x3fL]; + fval |= SP6[(work >> 8) & 0x3fL]; + fval |= SP4[(work >> 16) & 0x3fL]; + fval |= SP2[(work >> 24) & 0x3fL]; + leftt ^= fval; + work = (leftt << 28) | (leftt >> 4); + work ^= *keys++; + fval = SP7[ work & 0x3fL]; + fval |= SP5[(work >> 8) & 0x3fL]; + fval |= SP3[(work >> 16) & 0x3fL]; + fval |= SP1[(work >> 24) & 0x3fL]; + work = leftt ^ *keys++; + fval |= SP8[ work & 0x3fL]; + fval |= SP6[(work >> 8) & 0x3fL]; + fval |= SP4[(work >> 16) & 0x3fL]; + fval |= SP2[(work >> 24) & 0x3fL]; + right ^= fval; + } + + right = (right << 31) | (right >> 1); + work = (leftt ^ right) & 0xaaaaaaaaL; + leftt ^= work; + right ^= work; + leftt = (leftt << 31) | (leftt >> 1); + work = ((leftt >> 8) ^ right) & 0x00ff00ffL; + right ^= work; + leftt ^= (work << 8); + work = ((leftt >> 2) ^ right) & 0x33333333L; + right ^= work; + leftt ^= (work << 2); + work = ((right >> 16) ^ leftt) & 0x0000ffffL; + leftt ^= work; + right ^= (work << 16); + work = ((right >> 4) ^ leftt) & 0x0f0f0f0fL; + leftt ^= work; + right ^= (work << 4); + *block++ = right; + *block = leftt; + return; + } + +/* Validation sets: + * + * Single-length key, single-length plaintext - + * Key : 0123 4567 89ab cdef + * Plain : 0123 4567 89ab cde7 + * Cipher : c957 4425 6a5e d31d + * + * Double-length key, single-length plaintext - + * Key : 0123 4567 89ab cdef fedc ba98 7654 3210 + * Plain : 0123 4567 89ab cde7 + * Cipher : 7f1d 0a77 826b 8aff + * + * Double-length key, double-length plaintext - + * Key : 0123 4567 89ab cdef fedc ba98 7654 3210 + * Plain : 0123 4567 89ab cdef 0123 4567 89ab cdff + * Cipher : 27a0 8440 406a df60 278f 47cf 42d6 15d7 + * + * Triple-length key, single-length plaintext - + * Key : 0123 4567 89ab cdef fedc ba98 7654 3210 89ab cdef 0123 4567 + * Plain : 0123 4567 89ab cde7 + * Cipher : de0b 7c06 ae5e 0ed5 + * + * Triple-length key, double-length plaintext - + * Key : 0123 4567 89ab cdef fedc ba98 7654 3210 89ab cdef 0123 4567 + * Plain : 0123 4567 89ab cdef 0123 4567 89ab cdff + * Cipher : ad0d 1b30 ac17 cf07 0ed1 1c63 81e4 4de5 + * + * d3des V5.0a rwo 9208.07 18:44 Graven Imagery + **********************************************************************/ diff --git a/server/libvncserver/d3des.h b/server/libvncserver/d3des.h new file mode 100644 index 0000000..b2f9724 --- /dev/null +++ b/server/libvncserver/d3des.h @@ -0,0 +1,56 @@ +#ifndef D3DES_H +#define D3DES_H + +/* + * This is D3DES (V5.09) by Richard Outerbridge with the double and + * triple-length support removed for use in VNC. + * + * These changes are: + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* d3des.h - + * + * Headers and defines for d3des.c + * Graven Imagery, 1992. + * + * Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge + * (GEnie : OUTER; CIS : [71755,204]) + */ + +#define EN0 0 /* MODE == encrypt */ +#define DE1 1 /* MODE == decrypt */ + +extern void deskey(unsigned char *, int); +/* hexkey[8] MODE + * Sets the internal key register according to the hexadecimal + * key contained in the 8 bytes of hexkey, according to the DES, + * for encryption or decryption according to MODE. + */ + +extern void usekey(unsigned long *); +/* cookedkey[32] + * Loads the internal key register with the data in cookedkey. + */ + +extern void cpkey(unsigned long *); +/* cookedkey[32] + * Copies the contents of the internal key register into the storage + * located at &cookedkey[0]. + */ + +extern void des(unsigned char *, unsigned char *); +/* from[8] to[8] + * Encrypts/Decrypts (according to the key currently loaded in the + * internal key register) one block of eight bytes at address 'from' + * into the block at address 'to'. They can be the same. + */ + +/* d3des.h V5.09 rwo 9208.04 15:06 Graven Imagery + ********************************************************************/ + +#endif diff --git a/server/libvncserver/hextile.c b/server/libvncserver/hextile.c new file mode 100644 index 0000000..4be1071 --- /dev/null +++ b/server/libvncserver/hextile.c @@ -0,0 +1,346 @@ +/* + * hextile.c + * + * Routines to implement Hextile Encoding + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +static rfbBool sendHextiles8(rfbClientPtr cl, int x, int y, int w, int h); +static rfbBool sendHextiles16(rfbClientPtr cl, int x, int y, int w, int h); +static rfbBool sendHextiles32(rfbClientPtr cl, int x, int y, int w, int h); + + +/* + * rfbSendRectEncodingHextile - send a rectangle using hextile encoding. + */ + +rfbBool +rfbSendRectEncodingHextile(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + rfbFramebufferUpdateRectHeader rect; + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingHextile); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbRectanglesSent[rfbEncodingHextile]++; + cl->rfbBytesSent[rfbEncodingHextile] += sz_rfbFramebufferUpdateRectHeader; + + switch (cl->format.bitsPerPixel) { + case 8: + return sendHextiles8(cl, x, y, w, h); + case 16: + return sendHextiles16(cl, x, y, w, h); + case 32: + return sendHextiles32(cl, x, y, w, h); + } + + rfbLog("rfbSendRectEncodingHextile: bpp %d?\n", cl->format.bitsPerPixel); + return FALSE; +} + + +#define PUT_PIXEL8(pix) (cl->updateBuf[cl->ublen++] = (pix)) + +#define PUT_PIXEL16(pix) (cl->updateBuf[cl->ublen++] = ((char*)&(pix))[0], \ + cl->updateBuf[cl->ublen++] = ((char*)&(pix))[1]) + +#define PUT_PIXEL32(pix) (cl->updateBuf[cl->ublen++] = ((char*)&(pix))[0], \ + cl->updateBuf[cl->ublen++] = ((char*)&(pix))[1], \ + cl->updateBuf[cl->ublen++] = ((char*)&(pix))[2], \ + cl->updateBuf[cl->ublen++] = ((char*)&(pix))[3]) + + +#define DEFINE_SEND_HEXTILES(bpp) \ + \ + \ +static rfbBool subrectEncode##bpp(rfbClientPtr cli, uint##bpp##_t *data, int w, int h, \ + uint##bpp##_t bg, uint##bpp##_t fg, rfbBool mono); \ +static void testColours##bpp(uint##bpp##_t *data, int size, rfbBool *mono, \ + rfbBool *solid, uint##bpp##_t *bg, uint##bpp##_t *fg); \ + \ + \ +/* \ + * rfbSendHextiles \ + */ \ + \ +static rfbBool \ +sendHextiles##bpp(cl, rx, ry, rw, rh) \ + rfbClientPtr cl; \ + int rx, ry, rw, rh; \ +{ \ + int x, y, w, h; \ + int startUblen; \ + char *fbptr; \ + uint##bpp##_t bg = 0, fg = 0, newBg, newFg; \ + rfbBool mono, solid; \ + rfbBool validBg = FALSE; \ + rfbBool validFg = FALSE; \ + uint##bpp##_t clientPixelData[16*16*(bpp/8)]; \ + \ + for (y = ry; y < ry+rh; y += 16) { \ + for (x = rx; x < rx+rw; x += 16) { \ + w = h = 16; \ + if (rx+rw - x < 16) \ + w = rx+rw - x; \ + if (ry+rh - y < 16) \ + h = ry+rh - y; \ + \ + if ((cl->ublen + 1 + (2 + 16 * 16) * (bpp/8)) > \ + UPDATE_BUF_SIZE) { \ + if (!rfbSendUpdateBuf(cl)) \ + return FALSE; \ + } \ + \ + fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) \ + + (x * (cl->screen->bitsPerPixel / 8))); \ + \ + (*cl->translateFn)(cl->translateLookupTable, &(cl->screen->rfbServerFormat), \ + &cl->format, fbptr, (char *)clientPixelData, \ + cl->screen->paddedWidthInBytes, w, h); \ + \ + startUblen = cl->ublen; \ + cl->updateBuf[startUblen] = 0; \ + cl->ublen++; \ + \ + testColours##bpp(clientPixelData, w * h, \ + &mono, &solid, &newBg, &newFg); \ + \ + if (!validBg || (newBg != bg)) { \ + validBg = TRUE; \ + bg = newBg; \ + cl->updateBuf[startUblen] |= rfbHextileBackgroundSpecified; \ + PUT_PIXEL##bpp(bg); \ + } \ + \ + if (solid) { \ + cl->rfbBytesSent[rfbEncodingHextile] += cl->ublen - startUblen; \ + continue; \ + } \ + \ + cl->updateBuf[startUblen] |= rfbHextileAnySubrects; \ + \ + if (mono) { \ + if (!validFg || (newFg != fg)) { \ + validFg = TRUE; \ + fg = newFg; \ + cl->updateBuf[startUblen] |= rfbHextileForegroundSpecified; \ + PUT_PIXEL##bpp(fg); \ + } \ + } else { \ + validFg = FALSE; \ + cl->updateBuf[startUblen] |= rfbHextileSubrectsColoured; \ + } \ + \ + if (!subrectEncode##bpp(cl, clientPixelData, w, h, bg, fg, mono)) { \ + /* encoding was too large, use raw */ \ + validBg = FALSE; \ + validFg = FALSE; \ + cl->ublen = startUblen; \ + cl->updateBuf[cl->ublen++] = rfbHextileRaw; \ + (*cl->translateFn)(cl->translateLookupTable, \ + &(cl->screen->rfbServerFormat), &cl->format, fbptr, \ + (char *)clientPixelData, \ + cl->screen->paddedWidthInBytes, w, h); \ + \ + memcpy(&cl->updateBuf[cl->ublen], (char *)clientPixelData, \ + w * h * (bpp/8)); \ + \ + cl->ublen += w * h * (bpp/8); \ + } \ + \ + cl->rfbBytesSent[rfbEncodingHextile] += cl->ublen - startUblen; \ + } \ + } \ + \ + return TRUE; \ +} \ + \ + \ +static rfbBool \ +subrectEncode##bpp(rfbClientPtr cl, uint##bpp##_t *data, int w, int h, \ + uint##bpp##_t bg, uint##bpp##_t fg, rfbBool mono) \ +{ \ + uint##bpp##_t cl2; \ + int x,y; \ + int i,j; \ + int hx=0,hy,vx=0,vy; \ + int hyflag; \ + uint##bpp##_t *seg; \ + uint##bpp##_t *line; \ + int hw,hh,vw,vh; \ + int thex,they,thew,theh; \ + int numsubs = 0; \ + int newLen; \ + int nSubrectsUblen; \ + \ + nSubrectsUblen = cl->ublen; \ + cl->ublen++; \ + \ + for (y=0; y<h; y++) { \ + line = data+(y*w); \ + for (x=0; x<w; x++) { \ + if (line[x] != bg) { \ + cl2 = line[x]; \ + hy = y-1; \ + hyflag = 1; \ + for (j=y; j<h; j++) { \ + seg = data+(j*w); \ + if (seg[x] != cl2) {break;} \ + i = x; \ + while ((seg[i] == cl2) && (i < w)) i += 1; \ + i -= 1; \ + if (j == y) vx = hx = i; \ + if (i < vx) vx = i; \ + if ((hyflag > 0) && (i >= hx)) { \ + hy += 1; \ + } else { \ + hyflag = 0; \ + } \ + } \ + vy = j-1; \ + \ + /* We now have two possible subrects: (x,y,hx,hy) and \ + * (x,y,vx,vy). We'll choose the bigger of the two. \ + */ \ + hw = hx-x+1; \ + hh = hy-y+1; \ + vw = vx-x+1; \ + vh = vy-y+1; \ + \ + thex = x; \ + they = y; \ + \ + if ((hw*hh) > (vw*vh)) { \ + thew = hw; \ + theh = hh; \ + } else { \ + thew = vw; \ + theh = vh; \ + } \ + \ + if (mono) { \ + newLen = cl->ublen - nSubrectsUblen + 2; \ + } else { \ + newLen = cl->ublen - nSubrectsUblen + bpp/8 + 2; \ + } \ + \ + if (newLen > (w * h * (bpp/8))) \ + return FALSE; \ + \ + numsubs += 1; \ + \ + if (!mono) PUT_PIXEL##bpp(cl2); \ + \ + cl->updateBuf[cl->ublen++] = rfbHextilePackXY(thex,they); \ + cl->updateBuf[cl->ublen++] = rfbHextilePackWH(thew,theh); \ + \ + /* \ + * Now mark the subrect as done. \ + */ \ + for (j=they; j < (they+theh); j++) { \ + for (i=thex; i < (thex+thew); i++) { \ + data[j*w+i] = bg; \ + } \ + } \ + } \ + } \ + } \ + \ + cl->updateBuf[nSubrectsUblen] = numsubs; \ + \ + return TRUE; \ +} \ + \ + \ +/* \ + * testColours() tests if there are one (solid), two (mono) or more \ + * colours in a tile and gets a reasonable guess at the best background \ + * pixel, and the foreground pixel for mono. \ + */ \ + \ +static void \ +testColours##bpp(data,size,mono,solid,bg,fg) \ + uint##bpp##_t *data; \ + int size; \ + rfbBool *mono; \ + rfbBool *solid; \ + uint##bpp##_t *bg; \ + uint##bpp##_t *fg; \ +{ \ + uint##bpp##_t colour1 = 0, colour2 = 0; \ + int n1 = 0, n2 = 0; \ + *mono = TRUE; \ + *solid = TRUE; \ + \ + for (; size > 0; size--, data++) { \ + \ + if (n1 == 0) \ + colour1 = *data; \ + \ + if (*data == colour1) { \ + n1++; \ + continue; \ + } \ + \ + if (n2 == 0) { \ + *solid = FALSE; \ + colour2 = *data; \ + } \ + \ + if (*data == colour2) { \ + n2++; \ + continue; \ + } \ + \ + *mono = FALSE; \ + break; \ + } \ + \ + if (n1 > n2) { \ + *bg = colour1; \ + *fg = colour2; \ + } else { \ + *bg = colour2; \ + *fg = colour1; \ + } \ +} + +DEFINE_SEND_HEXTILES(8) +DEFINE_SEND_HEXTILES(16) +DEFINE_SEND_HEXTILES(32) diff --git a/server/libvncserver/main.c b/server/libvncserver/main.c new file mode 100644 index 0000000..016bbff --- /dev/null +++ b/server/libvncserver/main.c @@ -0,0 +1,650 @@ +/* + * This file is called main.c, because it contains most of the new functions + * for use with LibVNCServer. + * + * LibVNCServer (C) 2001 Johannes E. Schindelin <Johannes.Schindelin@gmx.de> + * Original OSXvnc (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * see GPL (latest version) for full details + */ + +#include "rfb/rfb.h" +#include "rfb/rfbregion.h" + +#include <stdarg.h> +#include <errno.h> + +#ifndef false +#define false 0 +#define true -1 +#endif + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif + +#ifndef WIN32 +#include <sys/socket.h> +#include <netinet/in.h> +#include <unistd.h> +#endif + +#include <signal.h> +#include <time.h> + +#include <glib.h> + +int rfbEnableLogging=1; + +#ifdef WORDS_BIGENDIAN +char rfbEndianTest = 0; +#else +char rfbEndianTest = -1; +#endif + +void rfbLogEnable(int enabled) { + rfbEnableLogging=enabled; +} + +/* + * rfbLog prints a time-stamped message to the log file (stderr). + */ + +static void rfbDefaultLog(const char *format, ...) G_GNUC_PRINTF (1, 2); + +static void +rfbDefaultLog(const char *format, ...) +{ + va_list args; + char buf[256]; + time_t log_clock; + + if(!rfbEnableLogging) + return; + + LOCK(logMutex); + va_start(args, format); + + time(&log_clock); + strftime(buf, 255, "%d/%m/%Y %X ", localtime(&log_clock)); + fprintf(stderr, "%s", buf); + + vfprintf(stderr, format, args); + fflush(stderr); + + va_end(args); + UNLOCK(logMutex); +} + +rfbLogProc rfbLog=rfbDefaultLog; +rfbLogProc rfbErr=rfbDefaultLog; + +void rfbLogPerror(const char *str) +{ + rfbErr("%s: %s\n", str, strerror(errno)); +} + +void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy) +{ + rfbClientIteratorPtr iterator; + rfbClientPtr cl; + + iterator=rfbGetClientIterator(rfbScreen); + while((cl=rfbClientIteratorNext(iterator))) { + LOCK(cl->updateMutex); + if(cl->useCopyRect) { + sraRegionPtr modifiedRegionBackup; + if(!sraRgnEmpty(cl->copyRegion)) { + if(cl->copyDX!=dx || cl->copyDY!=dy) { + /* if a copyRegion was not yet executed, treat it as a + * modifiedRegion. The idea: in this case it could be + * source of the new copyRect or modified anyway. */ + sraRgnOr(cl->modifiedRegion,cl->copyRegion); + sraRgnMakeEmpty(cl->copyRegion); + } else { + /* we have to set the intersection of the source of the copy + * and the old copy to modified. */ + modifiedRegionBackup=sraRgnCreateRgn(copyRegion); + sraRgnOffset(modifiedRegionBackup,-dx,-dy); + sraRgnAnd(modifiedRegionBackup,cl->copyRegion); + sraRgnOr(cl->modifiedRegion,modifiedRegionBackup); + sraRgnDestroy(modifiedRegionBackup); + } + } + + sraRgnOr(cl->copyRegion,copyRegion); + cl->copyDX = dx; + cl->copyDY = dy; + + /* if there were modified regions, which are now copied, + * mark them as modified, because the source of these can be overlapped + * either by new modified or now copied regions. */ + modifiedRegionBackup=sraRgnCreateRgn(cl->modifiedRegion); + sraRgnOffset(modifiedRegionBackup,dx,dy); + sraRgnAnd(modifiedRegionBackup,cl->copyRegion); + sraRgnOr(cl->modifiedRegion,modifiedRegionBackup); + sraRgnDestroy(modifiedRegionBackup); + +#if 0 + /* TODO: is this needed? Or does it mess up deferring? */ + /* while(!sraRgnEmpty(cl->copyRegion)) */ { + { + sraRegionPtr updateRegion = sraRgnCreateRgn(cl->modifiedRegion); + sraRgnOr(updateRegion,cl->copyRegion); + UNLOCK(cl->updateMutex); + rfbSendFramebufferUpdate(cl,updateRegion); + sraRgnDestroy(updateRegion); + continue; + } + } +#endif + } else { + sraRgnOr(cl->modifiedRegion,copyRegion); + } + UNLOCK(cl->updateMutex); + } + + rfbReleaseClientIterator(iterator); +} + +void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy) +{ + sraRectangleIterator* i; + sraRect rect; + int j,widthInBytes,bpp=rfbScreen->rfbServerFormat.bitsPerPixel/8, + rowstride=rfbScreen->paddedWidthInBytes; + char *in,*out; + + /* copy it, really */ + i = sraRgnGetReverseIterator(copyRegion,dx<0,dy<0); + while(sraRgnIteratorNext(i,&rect)) { + widthInBytes = (rect.x2-rect.x1)*bpp; + out = rfbScreen->frameBuffer+rect.x1*bpp+rect.y1*rowstride; + in = rfbScreen->frameBuffer+(rect.x1-dx)*bpp+(rect.y1-dy)*rowstride; + if(dy<0) + for(j=rect.y1;j<rect.y2;j++,out+=rowstride,in+=rowstride) + memmove(out,in,widthInBytes); + else { + out += rowstride*(rect.y2-rect.y1-1); + in += rowstride*(rect.y2-rect.y1-1); + for(j=rect.y2-1;j>=rect.y1;j--,out-=rowstride,in-=rowstride) + memmove(out,in,widthInBytes); + } + } + + rfbScheduleCopyRegion(rfbScreen,copyRegion,dx,dy); +} + +void rfbDoCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy) +{ + sraRegionPtr region = sraRgnCreateRect(x1,y1,x2,y2); + rfbDoCopyRegion(rfbScreen,region,dx,dy); +} + +void rfbScheduleCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy) +{ + sraRegionPtr region = sraRgnCreateRect(x1,y1,x2,y2); + rfbScheduleCopyRegion(rfbScreen,region,dx,dy); +} + +void rfbMarkRegionAsModified(rfbScreenInfoPtr rfbScreen,sraRegionPtr modRegion) +{ + rfbClientIteratorPtr iterator; + rfbClientPtr cl; + + iterator=rfbGetClientIterator(rfbScreen); + while((cl=rfbClientIteratorNext(iterator))) { + LOCK(cl->updateMutex); + sraRgnOr(cl->modifiedRegion,modRegion); + UNLOCK(cl->updateMutex); + } + + rfbReleaseClientIterator(iterator); +} + +void rfbMarkRectAsModified(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2) +{ + sraRegionPtr region; + int i; + + if(x1>x2) { i=x1; x1=x2; x2=i; } + if(x1<0) x1=0; + if(x2>=rfbScreen->width) x2=rfbScreen->width-1; + if(x1==x2) return; + + if(y1>y2) { i=y1; y1=y2; y2=i; } + if(y1<0) y1=0; + if(y2>=rfbScreen->height) y2=rfbScreen->height-1; + if(y1==y2) return; + + region = sraRgnCreateRect(x1,y1,x2,y2); + rfbMarkRegionAsModified(rfbScreen,region); + sraRgnDestroy(region); +} + +void +defaultPtrAddEvent(int buttonMask, int x, int y, rfbClientPtr cl) +{ + rfbSetCursorPosition(cl->screen, cl, x, y); +} + +/* TODO: add a nice VNC or RFB cursor */ + +#if defined(WIN32) || defined(sparc) || !defined(NO_STRICT_ANSI) +static rfbCursor myCursor = +{ + FALSE, FALSE, FALSE, FALSE, + (unsigned char*)"\000\102\044\030\044\102\000", + (unsigned char*)"\347\347\176\074\176\347\347", + 8, 7, 3, 3, + 0, 0, 0, + 0xffff, 0xffff, 0xffff, + 0 +}; +#else +static rfbCursor myCursor = +{ + cleanup: FALSE, + cleanupSource: FALSE, + cleanupMask: FALSE, + cleanupRichSource: FALSE, + source: "\000\102\044\030\044\102\000", + mask: "\347\347\176\074\176\347\347", + width: 8, height: 7, xhot: 3, yhot: 3, + foreRed: 0, foreGreen: 0, foreBlue: 0, + backRed: 0xffff, backGreen: 0xffff, backBlue: 0xffff, + richSource: 0 +}; +#endif + +/* + * Update server's pixel format in rfbScreenInfo structure. This + * function is called from rfbGetScreen() and rfbNewFramebuffer(). + */ + +static void rfbInitServerFormat(rfbScreenInfoPtr rfbScreen, int bitsPerSample) +{ + rfbPixelFormat* format=&rfbScreen->rfbServerFormat; + + format->bitsPerPixel = rfbScreen->bitsPerPixel; + format->depth = rfbScreen->depth; + format->bigEndian = rfbEndianTest?FALSE:TRUE; + format->trueColour = TRUE; + rfbScreen->colourMap.count = 0; + rfbScreen->colourMap.is16 = 0; + rfbScreen->colourMap.data.bytes = NULL; + + if (format->bitsPerPixel == 8) { + format->redMax = 7; + format->greenMax = 7; + format->blueMax = 3; + format->redShift = 0; + format->greenShift = 3; + format->blueShift = 6; + } else { + format->redMax = (1 << bitsPerSample) - 1; + format->greenMax = (1 << bitsPerSample) - 1; + format->blueMax = (1 << bitsPerSample) - 1; + if(rfbEndianTest) { + format->redShift = 0; + format->greenShift = bitsPerSample; + format->blueShift = bitsPerSample * 2; + } else { + if(format->bitsPerPixel==8*3) { + format->redShift = bitsPerSample*2; + format->greenShift = bitsPerSample*1; + format->blueShift = 0; + } else { + format->redShift = bitsPerSample*3; + format->greenShift = bitsPerSample*2; + format->blueShift = bitsPerSample; + } + } + } +} + +rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv, + int width,int height,int bitsPerSample,int samplesPerPixel, + int bytesPerPixel) +{ + rfbScreenInfoPtr rfbScreen=malloc(sizeof(rfbScreenInfo)); + + if(width&3) + rfbErr("WARNING: Width (%d) is not a multiple of 4. VncViewer has problems with that.\n",width); + + rfbScreen->autoPort=FALSE; + rfbScreen->localOnly=FALSE; + rfbScreen->rfbClientHead=0; + rfbScreen->rfbPort=5900; + rfbScreen->socketInitDone=FALSE; + + rfbScreen->inetdInitDone = FALSE; + rfbScreen->inetdSock=-1; + + rfbScreen->maxFd=0; + + rfbScreen->rfbListenSock[0] = -1; + rfbScreen->rfbListenSockTotal = 0; + rfbScreen->netIface = NULL; + + rfbScreen->desktopName = strdup("LibVNCServer"); + rfbScreen->rfbAlwaysShared = FALSE; + rfbScreen->rfbNeverShared = FALSE; + rfbScreen->rfbDontDisconnect = FALSE; + + rfbScreen->width = width; + rfbScreen->height = height; + rfbScreen->bitsPerPixel = rfbScreen->depth = 8*bytesPerPixel; + + rfbScreen->securityTypes[0] = rfbNoAuth; + rfbScreen->nSecurityTypes = 0; + rfbScreen->authTypes[0] = rfbNoAuth; + rfbScreen->nAuthTypes = 0; + rfbScreen->passwordCheck = NULL; + +#ifdef WIN32 + { + DWORD dummy=255; + GetComputerName(rfbScreen->rfbThisHost,&dummy); + } +#else + gethostname(rfbScreen->rfbThisHost, 255); +#endif + + rfbScreen->paddedWidthInBytes = width*bytesPerPixel; + + /* format */ + + rfbInitServerFormat(rfbScreen, bitsPerSample); + + /* cursor */ + + rfbScreen->cursorX=rfbScreen->cursorY=rfbScreen->underCursorBufferLen=0; + rfbScreen->underCursorBuffer=NULL; + rfbScreen->cursor = &myCursor; + + rfbScreen->rfbDeferUpdateTime=5; + rfbScreen->maxRectsPerUpdate=50; + + /* proc's and hook's */ + + rfbScreen->kbdAddEvent = NULL; + rfbScreen->ptrAddEvent = defaultPtrAddEvent; + rfbScreen->setXCutText = NULL; + rfbScreen->newClientHook = NULL; + rfbScreen->authenticatedClientHook = NULL; + + /* initialize client list and iterator mutex */ + rfbClientListInit(rfbScreen); + + rfbAuthInitScreen(rfbScreen); + + return(rfbScreen); +} + +/* + * Switch to another sized framebuffer. Clients supporting NewFBSize + * pseudo-encoding will change their local framebuffer dimensions + * if necessary. + * NOTE: Rich cursor data should be converted to new pixel format by + * the caller. + */ + +void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen, char *framebuffer, + int width, int height) +{ + rfbClientIteratorPtr iterator; + rfbClientPtr cl; + + if (width & 3) + rfbErr("WARNING: New width (%d) is not a multiple of 4.\n", width); + + /* Update information in the rfbScreenInfo structure */ + + rfbScreen->width = width; + rfbScreen->height = height; + rfbScreen->frameBuffer = framebuffer; + + /* Adjust pointer position if necessary */ + + if (rfbScreen->cursorX >= width) + rfbScreen->cursorX = width - 1; + if (rfbScreen->cursorY >= height) + rfbScreen->cursorY = height - 1; + + /* For each client: */ + iterator = rfbGetClientIterator(rfbScreen); + while ((cl = rfbClientIteratorNext(iterator)) != NULL) { + + /* Mark the screen contents as changed, and schedule sending + NewFBSize message if supported by this client. */ + + LOCK(cl->updateMutex); + sraRgnDestroy(cl->modifiedRegion); + cl->modifiedRegion = sraRgnCreateRect(0, 0, width, height); + sraRgnMakeEmpty(cl->copyRegion); + cl->copyDX = 0; + cl->copyDY = 0; + + if (cl->useNewFBSize) + cl->newFBSizePending = TRUE; + + UNLOCK(cl->updateMutex); + } + rfbReleaseClientIterator(iterator); +} + +void rfbSetDesktopName(rfbScreenInfoPtr rfbScreen, const char *name) +{ + if (rfbScreen->desktopName) + free(rfbScreen->desktopName); + rfbScreen->desktopName = strdup(name); +} + +void rfbScreenCleanup(rfbScreenInfoPtr rfbScreen) +{ + rfbClientIteratorPtr i=rfbGetClientIterator(rfbScreen); + rfbClientPtr cl,cl1=rfbClientIteratorNext(i); + while(cl1) { + cl=rfbClientIteratorNext(i); + rfbClientConnectionGone(cl1); + cl1=cl; + } + rfbReleaseClientIterator(i); + + rfbAuthCleanupScreen(rfbScreen); + + /* TODO: hang up on all clients and free all reserved memory */ +#define FREE_IF(x) if(rfbScreen->x) free(rfbScreen->x) + FREE_IF(colourMap.data.bytes); + FREE_IF(underCursorBuffer); + if(rfbScreen->cursor) + rfbFreeCursor(rfbScreen->cursor); + if(rfbScreen->desktopName) + free(rfbScreen->desktopName); + free(rfbScreen); +#ifdef VINO_HAVE_JPEG + rfbTightCleanup(); +#endif +} + +void rfbInitServer(rfbScreenInfoPtr rfbScreen) +{ +#ifdef WIN32 + WSADATA trash; + int i=WSAStartup(MAKEWORD(2,2),&trash); +#endif + rfbInitSockets(rfbScreen); +} + +#ifndef HAVE_GETTIMEOFDAY +#include <fcntl.h> +#include <conio.h> +#include <sys/timeb.h> + +void gettimeofday(struct timeval* tv,char* dummy) +{ + SYSTEMTIME t; + GetSystemTime(&t); + tv->tv_sec=t.wHour*3600+t.wMinute*60+t.wSecond; + tv->tv_usec=t.wMilliseconds*1000; +} +#endif + +void +rfbUpdateClient(rfbClientPtr cl) +{ + struct timeval tv; + + if (cl->sock >= 0 && !cl->onHold && FB_UPDATE_PENDING(cl) && + !sraRgnEmpty(cl->requestedRegion)) { + if(cl->screen->rfbDeferUpdateTime == 0) { + rfbSendFramebufferUpdate(cl,cl->modifiedRegion); + } else if(cl->startDeferring.tv_usec == 0) { + gettimeofday(&cl->startDeferring,NULL); + if(cl->startDeferring.tv_usec == 0) + cl->startDeferring.tv_usec++; + } else { + gettimeofday(&tv,NULL); + if(tv.tv_sec < cl->startDeferring.tv_sec /* at midnight */ + || ((tv.tv_sec-cl->startDeferring.tv_sec)*1000 + +(tv.tv_usec-cl->startDeferring.tv_usec)/1000) + > cl->screen->rfbDeferUpdateTime) { + cl->startDeferring.tv_usec = 0; + rfbSendFramebufferUpdate(cl,cl->modifiedRegion); + } + } + } +} + +void +rfbProcessEvents(rfbScreenInfoPtr rfbScreen,long usec) +{ + rfbClientIteratorPtr i; + rfbClientPtr cl,clPrev; + + if(usec<0) + usec=rfbScreen->rfbDeferUpdateTime*1000; + + rfbCheckFds(rfbScreen,usec); + + i = rfbGetClientIterator(rfbScreen); + cl=rfbClientIteratorHead(i); + while(cl) { + rfbUpdateClient(cl); + clPrev=cl; + cl=rfbClientIteratorNext(i); + if(clPrev->sock==-1) + rfbClientConnectionGone(clPrev); + } + rfbReleaseClientIterator(i); +} + +void rfbRunEventLoop(rfbScreenInfoPtr rfbScreen, long usec, rfbBool runInBackground) +{ + if(runInBackground) { + rfbErr("Can't run in background, because I don't have PThreads!\n"); + return; + } + + if(usec<0) + usec=rfbScreen->rfbDeferUpdateTime*1000; + + while(1) + rfbProcessEvents(rfbScreen,usec); +} + +static char * +securityTypeToName(int securityType) +{ + switch (securityType) { + case rfbNoAuth: + return "No Authentication"; + case rfbVncAuth: + return "VNC Authentication"; +#ifdef VINO_HAVE_GNUTLS + case rfbTLS: + return "TLS"; +#endif + default: + return "unknown"; + } +} + +void rfbAddSecurityType(rfbScreenInfoPtr rfbScreen, int securityType) +{ + if (rfbScreen->nSecurityTypes >= RFB_MAX_N_SECURITY_TYPES) + return; + + rfbLog("Advertising security type: '%s' (%d)\n", + securityTypeToName(securityType), securityType); + + switch (securityType) { + case rfbNoAuth: + case rfbVncAuth: +#ifdef VINO_HAVE_GNUTLS + case rfbTLS: +#endif + rfbScreen->securityTypes[rfbScreen->nSecurityTypes] = securityType; + rfbScreen->nSecurityTypes++; + break; + default: + break; + } +} + +void rfbClearSecurityTypes(rfbScreenInfoPtr rfbScreen) +{ + if (rfbScreen->nSecurityTypes > 0) { + rfbLog("Clearing securityTypes\n"); + + memset (&rfbScreen->securityTypes, 0, sizeof (rfbScreen->securityTypes)); + rfbScreen->securityTypes [0] = rfbNoAuth; + rfbScreen->nSecurityTypes = 0; + } +} + +static char * +authTypeToName(int authType) +{ + switch (authType) { + case rfbNoAuth: + return "No Authentication"; + case rfbVncAuth: + return "VNC Authentication"; + default: + return "unknown"; + } +} + +void rfbAddAuthType(rfbScreenInfoPtr rfbScreen, int authType) +{ + if (rfbScreen->nAuthTypes >= RFB_MAX_N_AUTH_TYPES) + return; + + rfbLog("Advertising authentication type: '%s' (%d)\n", + authTypeToName(authType), authType); + + switch (authType) { + case rfbNoAuth: + case rfbVncAuth: + rfbScreen->authTypes[rfbScreen->nAuthTypes] = authType; + rfbScreen->nAuthTypes++; + break; + default: + break; + } +} + +void rfbClearAuthTypes(rfbScreenInfoPtr rfbScreen) +{ + if (rfbScreen->nAuthTypes > 0) { + rfbLog("Clearing authTypes\n"); + + memset (&rfbScreen->authTypes, 0, sizeof (rfbScreen->authTypes)); + rfbScreen->authTypes [0] = rfbNoAuth; + rfbScreen->nAuthTypes = 0; + } +} diff --git a/server/libvncserver/rfb/keysym.h b/server/libvncserver/rfb/keysym.h new file mode 100644 index 0000000..282d818 --- /dev/null +++ b/server/libvncserver/rfb/keysym.h @@ -0,0 +1,1639 @@ +#ifndef KEYSYM_H +#define KEYSYM_H + +/* $XConsortium: keysym.h,v 1.15 94/04/17 20:10:55 rws Exp $ */ + +/*********************************************************** + +Copyright (c) 1987 X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +/* default keysyms */ +#define XK_MISCELLANY +#define XK_XKB_KEYS +#define XK_LATIN1 +#define XK_LATIN2 +#define XK_LATIN3 +#define XK_LATIN4 +#define XK_GREEK + +/* $TOG: keysymdef.h /main/25 1997/06/21 10:54:51 kaleb $ */ + +/*********************************************************** +Copyright (c) 1987, 1994 X Consortium + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from the X Consortium. + + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +#define XK_VoidSymbol 0xFFFFFF /* void symbol */ + +#ifdef XK_MISCELLANY +/* + * TTY Functions, cleverly chosen to map to ascii, for convenience of + * programming, but could have been arbitrary (at the cost of lookup + * tables in client code. + */ + +#define XK_BackSpace 0xFF08 /* back space, back char */ +#define XK_Tab 0xFF09 +#define XK_Linefeed 0xFF0A /* Linefeed, LF */ +#define XK_Clear 0xFF0B +#define XK_Return 0xFF0D /* Return, enter */ +#define XK_Pause 0xFF13 /* Pause, hold */ +#define XK_Scroll_Lock 0xFF14 +#define XK_Sys_Req 0xFF15 +#define XK_Escape 0xFF1B +#define XK_Delete 0xFFFF /* Delete, rubout */ + + + +/* International & multi-key character composition */ + +#define XK_Multi_key 0xFF20 /* Multi-key character compose */ +#define XK_SingleCandidate 0xFF3C +#define XK_MultipleCandidate 0xFF3D +#define XK_PreviousCandidate 0xFF3E + +/* Japanese keyboard support */ + +#define XK_Kanji 0xFF21 /* Kanji, Kanji convert */ +#define XK_Muhenkan 0xFF22 /* Cancel Conversion */ +#define XK_Henkan_Mode 0xFF23 /* Start/Stop Conversion */ +#define XK_Henkan 0xFF23 /* Alias for Henkan_Mode */ +#define XK_Romaji 0xFF24 /* to Romaji */ +#define XK_Hiragana 0xFF25 /* to Hiragana */ +#define XK_Katakana 0xFF26 /* to Katakana */ +#define XK_Hiragana_Katakana 0xFF27 /* Hiragana/Katakana toggle */ +#define XK_Zenkaku 0xFF28 /* to Zenkaku */ +#define XK_Hankaku 0xFF29 /* to Hankaku */ +#define XK_Zenkaku_Hankaku 0xFF2A /* Zenkaku/Hankaku toggle */ +#define XK_Touroku 0xFF2B /* Add to Dictionary */ +#define XK_Massyo 0xFF2C /* Delete from Dictionary */ +#define XK_Kana_Lock 0xFF2D /* Kana Lock */ +#define XK_Kana_Shift 0xFF2E /* Kana Shift */ +#define XK_Eisu_Shift 0xFF2F /* Alphanumeric Shift */ +#define XK_Eisu_toggle 0xFF30 /* Alphanumeric toggle */ +#define XK_Zen_Koho 0xFF3D /* Multiple/All Candidate(s) */ +#define XK_Mae_Koho 0xFF3E /* Previous Candidate */ + +/* 0xFF31 thru 0xFF3F are under XK_KOREAN */ + +/* Cursor control & motion */ + +#define XK_Home 0xFF50 +#define XK_Left 0xFF51 /* Move left, left arrow */ +#define XK_Up 0xFF52 /* Move up, up arrow */ +#define XK_Right 0xFF53 /* Move right, right arrow */ +#define XK_Down 0xFF54 /* Move down, down arrow */ +#define XK_Prior 0xFF55 /* Prior, previous */ +#define XK_Page_Up 0xFF55 +#define XK_Next 0xFF56 /* Next */ +#define XK_Page_Down 0xFF56 +#define XK_End 0xFF57 /* EOL */ +#define XK_Begin 0xFF58 /* BOL */ + + +/* Misc Functions */ + +#define XK_Select 0xFF60 /* Select, mark */ +#define XK_Print 0xFF61 +#define XK_Execute 0xFF62 /* Execute, run, do */ +#define XK_Insert 0xFF63 /* Insert, insert here */ +#define XK_Undo 0xFF65 /* Undo, oops */ +#define XK_Redo 0xFF66 /* redo, again */ +#define XK_Menu 0xFF67 +#define XK_Find 0xFF68 /* Find, search */ +#define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */ +#define XK_Help 0xFF6A /* Help */ +#define XK_Break 0xFF6B +#define XK_Mode_switch 0xFF7E /* Character set switch */ +#define XK_script_switch 0xFF7E /* Alias for mode_switch */ +#define XK_Num_Lock 0xFF7F + +/* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ + +#define XK_KP_Space 0xFF80 /* space */ +#define XK_KP_Tab 0xFF89 +#define XK_KP_Enter 0xFF8D /* enter */ +#define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */ +#define XK_KP_F2 0xFF92 +#define XK_KP_F3 0xFF93 +#define XK_KP_F4 0xFF94 +#define XK_KP_Home 0xFF95 +#define XK_KP_Left 0xFF96 +#define XK_KP_Up 0xFF97 +#define XK_KP_Right 0xFF98 +#define XK_KP_Down 0xFF99 +#define XK_KP_Prior 0xFF9A +#define XK_KP_Page_Up 0xFF9A +#define XK_KP_Next 0xFF9B +#define XK_KP_Page_Down 0xFF9B +#define XK_KP_End 0xFF9C +#define XK_KP_Begin 0xFF9D +#define XK_KP_Insert 0xFF9E +#define XK_KP_Delete 0xFF9F +#define XK_KP_Equal 0xFFBD /* equals */ +#define XK_KP_Multiply 0xFFAA +#define XK_KP_Add 0xFFAB +#define XK_KP_Separator 0xFFAC /* separator, often comma */ +#define XK_KP_Subtract 0xFFAD +#define XK_KP_Decimal 0xFFAE +#define XK_KP_Divide 0xFFAF + +#define XK_KP_0 0xFFB0 +#define XK_KP_1 0xFFB1 +#define XK_KP_2 0xFFB2 +#define XK_KP_3 0xFFB3 +#define XK_KP_4 0xFFB4 +#define XK_KP_5 0xFFB5 +#define XK_KP_6 0xFFB6 +#define XK_KP_7 0xFFB7 +#define XK_KP_8 0xFFB8 +#define XK_KP_9 0xFFB9 + + + +/* + * Auxilliary Functions; note the duplicate definitions for left and right + * function keys; Sun keyboards and a few other manufactures have such + * function key groups on the left and/or right sides of the keyboard. + * We've not found a keyboard with more than 35 function keys total. + */ + +#define XK_F1 0xFFBE +#define XK_F2 0xFFBF +#define XK_F3 0xFFC0 +#define XK_F4 0xFFC1 +#define XK_F5 0xFFC2 +#define XK_F6 0xFFC3 +#define XK_F7 0xFFC4 +#define XK_F8 0xFFC5 +#define XK_F9 0xFFC6 +#define XK_F10 0xFFC7 +#define XK_F11 0xFFC8 +#define XK_L1 0xFFC8 +#define XK_F12 0xFFC9 +#define XK_L2 0xFFC9 +#define XK_F13 0xFFCA +#define XK_L3 0xFFCA +#define XK_F14 0xFFCB +#define XK_L4 0xFFCB +#define XK_F15 0xFFCC +#define XK_L5 0xFFCC +#define XK_F16 0xFFCD +#define XK_L6 0xFFCD +#define XK_F17 0xFFCE +#define XK_L7 0xFFCE +#define XK_F18 0xFFCF +#define XK_L8 0xFFCF +#define XK_F19 0xFFD0 +#define XK_L9 0xFFD0 +#define XK_F20 0xFFD1 +#define XK_L10 0xFFD1 +#define XK_F21 0xFFD2 +#define XK_R1 0xFFD2 +#define XK_F22 0xFFD3 +#define XK_R2 0xFFD3 +#define XK_F23 0xFFD4 +#define XK_R3 0xFFD4 +#define XK_F24 0xFFD5 +#define XK_R4 0xFFD5 +#define XK_F25 0xFFD6 +#define XK_R5 0xFFD6 +#define XK_F26 0xFFD7 +#define XK_R6 0xFFD7 +#define XK_F27 0xFFD8 +#define XK_R7 0xFFD8 +#define XK_F28 0xFFD9 +#define XK_R8 0xFFD9 +#define XK_F29 0xFFDA +#define XK_R9 0xFFDA +#define XK_F30 0xFFDB +#define XK_R10 0xFFDB +#define XK_F31 0xFFDC +#define XK_R11 0xFFDC +#define XK_F32 0xFFDD +#define XK_R12 0xFFDD +#define XK_F33 0xFFDE +#define XK_R13 0xFFDE +#define XK_F34 0xFFDF +#define XK_R14 0xFFDF +#define XK_F35 0xFFE0 +#define XK_R15 0xFFE0 + +/* Modifiers */ + +#define XK_Shift_L 0xFFE1 /* Left shift */ +#define XK_Shift_R 0xFFE2 /* Right shift */ +#define XK_Control_L 0xFFE3 /* Left control */ +#define XK_Control_R 0xFFE4 /* Right control */ +#define XK_Caps_Lock 0xFFE5 /* Caps lock */ +#define XK_Shift_Lock 0xFFE6 /* Shift lock */ + +#define XK_Meta_L 0xFFE7 /* Left meta */ +#define XK_Meta_R 0xFFE8 /* Right meta */ +#define XK_Alt_L 0xFFE9 /* Left alt */ +#define XK_Alt_R 0xFFEA /* Right alt */ +#define XK_Super_L 0xFFEB /* Left super */ +#define XK_Super_R 0xFFEC /* Right super */ +#define XK_Hyper_L 0xFFED /* Left hyper */ +#define XK_Hyper_R 0xFFEE /* Right hyper */ +#endif /* XK_MISCELLANY */ + +/* + * ISO 9995 Function and Modifier Keys + * Byte 3 = 0xFE + */ + +#ifdef XK_XKB_KEYS +#define XK_ISO_Lock 0xFE01 +#define XK_ISO_Level2_Latch 0xFE02 +#define XK_ISO_Level3_Shift 0xFE03 +#define XK_ISO_Level3_Latch 0xFE04 +#define XK_ISO_Level3_Lock 0xFE05 +#define XK_ISO_Group_Shift 0xFF7E /* Alias for mode_switch */ +#define XK_ISO_Group_Latch 0xFE06 +#define XK_ISO_Group_Lock 0xFE07 +#define XK_ISO_Next_Group 0xFE08 +#define XK_ISO_Next_Group_Lock 0xFE09 +#define XK_ISO_Prev_Group 0xFE0A +#define XK_ISO_Prev_Group_Lock 0xFE0B +#define XK_ISO_First_Group 0xFE0C +#define XK_ISO_First_Group_Lock 0xFE0D +#define XK_ISO_Last_Group 0xFE0E +#define XK_ISO_Last_Group_Lock 0xFE0F + +#define XK_ISO_Left_Tab 0xFE20 +#define XK_ISO_Move_Line_Up 0xFE21 +#define XK_ISO_Move_Line_Down 0xFE22 +#define XK_ISO_Partial_Line_Up 0xFE23 +#define XK_ISO_Partial_Line_Down 0xFE24 +#define XK_ISO_Partial_Space_Left 0xFE25 +#define XK_ISO_Partial_Space_Right 0xFE26 +#define XK_ISO_Set_Margin_Left 0xFE27 +#define XK_ISO_Set_Margin_Right 0xFE28 +#define XK_ISO_Release_Margin_Left 0xFE29 +#define XK_ISO_Release_Margin_Right 0xFE2A +#define XK_ISO_Release_Both_Margins 0xFE2B +#define XK_ISO_Fast_Cursor_Left 0xFE2C +#define XK_ISO_Fast_Cursor_Right 0xFE2D +#define XK_ISO_Fast_Cursor_Up 0xFE2E +#define XK_ISO_Fast_Cursor_Down 0xFE2F +#define XK_ISO_Continuous_Underline 0xFE30 +#define XK_ISO_Discontinuous_Underline 0xFE31 +#define XK_ISO_Emphasize 0xFE32 +#define XK_ISO_Center_Object 0xFE33 +#define XK_ISO_Enter 0xFE34 + +#define XK_dead_grave 0xFE50 +#define XK_dead_acute 0xFE51 +#define XK_dead_circumflex 0xFE52 +#define XK_dead_tilde 0xFE53 +#define XK_dead_macron 0xFE54 +#define XK_dead_breve 0xFE55 +#define XK_dead_abovedot 0xFE56 +#define XK_dead_diaeresis 0xFE57 +#define XK_dead_abovering 0xFE58 +#define XK_dead_doubleacute 0xFE59 +#define XK_dead_caron 0xFE5A +#define XK_dead_cedilla 0xFE5B +#define XK_dead_ogonek 0xFE5C +#define XK_dead_iota 0xFE5D +#define XK_dead_voiced_sound 0xFE5E +#define XK_dead_semivoiced_sound 0xFE5F +#define XK_dead_belowdot 0xFE60 + +#define XK_First_Virtual_Screen 0xFED0 +#define XK_Prev_Virtual_Screen 0xFED1 +#define XK_Next_Virtual_Screen 0xFED2 +#define XK_Last_Virtual_Screen 0xFED4 +#define XK_Terminate_Server 0xFED5 + +#define XK_AccessX_Enable 0xFE70 +#define XK_AccessX_Feedback_Enable 0xFE71 +#define XK_RepeatKeys_Enable 0xFE72 +#define XK_SlowKeys_Enable 0xFE73 +#define XK_BounceKeys_Enable 0xFE74 +#define XK_StickyKeys_Enable 0xFE75 +#define XK_MouseKeys_Enable 0xFE76 +#define XK_MouseKeys_Accel_Enable 0xFE77 +#define XK_Overlay1_Enable 0xFE78 +#define XK_Overlay2_Enable 0xFE79 +#define XK_AudibleBell_Enable 0xFE7A + +#define XK_Pointer_Left 0xFEE0 +#define XK_Pointer_Right 0xFEE1 +#define XK_Pointer_Up 0xFEE2 +#define XK_Pointer_Down 0xFEE3 +#define XK_Pointer_UpLeft 0xFEE4 +#define XK_Pointer_UpRight 0xFEE5 +#define XK_Pointer_DownLeft 0xFEE6 +#define XK_Pointer_DownRight 0xFEE7 +#define XK_Pointer_Button_Dflt 0xFEE8 +#define XK_Pointer_Button1 0xFEE9 +#define XK_Pointer_Button2 0xFEEA +#define XK_Pointer_Button3 0xFEEB +#define XK_Pointer_Button4 0xFEEC +#define XK_Pointer_Button5 0xFEED +#define XK_Pointer_DblClick_Dflt 0xFEEE +#define XK_Pointer_DblClick1 0xFEEF +#define XK_Pointer_DblClick2 0xFEF0 +#define XK_Pointer_DblClick3 0xFEF1 +#define XK_Pointer_DblClick4 0xFEF2 +#define XK_Pointer_DblClick5 0xFEF3 +#define XK_Pointer_Drag_Dflt 0xFEF4 +#define XK_Pointer_Drag1 0xFEF5 +#define XK_Pointer_Drag2 0xFEF6 +#define XK_Pointer_Drag3 0xFEF7 +#define XK_Pointer_Drag4 0xFEF8 +#define XK_Pointer_Drag5 0xFEFD + +#define XK_Pointer_EnableKeys 0xFEF9 +#define XK_Pointer_Accelerate 0xFEFA +#define XK_Pointer_DfltBtnNext 0xFEFB +#define XK_Pointer_DfltBtnPrev 0xFEFC + +#endif + +/* + * 3270 Terminal Keys + * Byte 3 = 0xFD + */ + +#ifdef XK_3270 +#define XK_3270_Duplicate 0xFD01 +#define XK_3270_FieldMark 0xFD02 +#define XK_3270_Right2 0xFD03 +#define XK_3270_Left2 0xFD04 +#define XK_3270_BackTab 0xFD05 +#define XK_3270_EraseEOF 0xFD06 +#define XK_3270_EraseInput 0xFD07 +#define XK_3270_Reset 0xFD08 +#define XK_3270_Quit 0xFD09 +#define XK_3270_PA1 0xFD0A +#define XK_3270_PA2 0xFD0B +#define XK_3270_PA3 0xFD0C +#define XK_3270_Test 0xFD0D +#define XK_3270_Attn 0xFD0E +#define XK_3270_CursorBlink 0xFD0F +#define XK_3270_AltCursor 0xFD10 +#define XK_3270_KeyClick 0xFD11 +#define XK_3270_Jump 0xFD12 +#define XK_3270_Ident 0xFD13 +#define XK_3270_Rule 0xFD14 +#define XK_3270_Copy 0xFD15 +#define XK_3270_Play 0xFD16 +#define XK_3270_Setup 0xFD17 +#define XK_3270_Record 0xFD18 +#define XK_3270_ChangeScreen 0xFD19 +#define XK_3270_DeleteWord 0xFD1A +#define XK_3270_ExSelect 0xFD1B +#define XK_3270_CursorSelect 0xFD1C +#define XK_3270_PrintScreen 0xFD1D +#define XK_3270_Enter 0xFD1E +#endif + +/* + * Latin 1 + * Byte 3 = 0 + */ +#ifdef XK_LATIN1 +#define XK_space 0x020 +#define XK_exclam 0x021 +#define XK_quotedbl 0x022 +#define XK_numbersign 0x023 +#define XK_dollar 0x024 +#define XK_percent 0x025 +#define XK_ampersand 0x026 +#define XK_apostrophe 0x027 +#define XK_quoteright 0x027 /* deprecated */ +#define XK_parenleft 0x028 +#define XK_parenright 0x029 +#define XK_asterisk 0x02a +#define XK_plus 0x02b +#define XK_comma 0x02c +#define XK_minus 0x02d +#define XK_period 0x02e +#define XK_slash 0x02f +#define XK_0 0x030 +#define XK_1 0x031 +#define XK_2 0x032 +#define XK_3 0x033 +#define XK_4 0x034 +#define XK_5 0x035 +#define XK_6 0x036 +#define XK_7 0x037 +#define XK_8 0x038 +#define XK_9 0x039 +#define XK_colon 0x03a +#define XK_semicolon 0x03b +#define XK_less 0x03c +#define XK_equal 0x03d +#define XK_greater 0x03e +#define XK_question 0x03f +#define XK_at 0x040 +#define XK_A 0x041 +#define XK_B 0x042 +#define XK_C 0x043 +#define XK_D 0x044 +#define XK_E 0x045 +#define XK_F 0x046 +#define XK_G 0x047 +#define XK_H 0x048 +#define XK_I 0x049 +#define XK_J 0x04a +#define XK_K 0x04b +#define XK_L 0x04c +#define XK_M 0x04d +#define XK_N 0x04e +#define XK_O 0x04f +#define XK_P 0x050 +#define XK_Q 0x051 +#define XK_R 0x052 +#define XK_S 0x053 +#define XK_T 0x054 +#define XK_U 0x055 +#define XK_V 0x056 +#define XK_W 0x057 +#define XK_X 0x058 +#define XK_Y 0x059 +#define XK_Z 0x05a +#define XK_bracketleft 0x05b +#define XK_backslash 0x05c +#define XK_bracketright 0x05d +#define XK_asciicircum 0x05e +#define XK_underscore 0x05f +#define XK_grave 0x060 +#define XK_quoteleft 0x060 /* deprecated */ +#define XK_a 0x061 +#define XK_b 0x062 +#define XK_c 0x063 +#define XK_d 0x064 +#define XK_e 0x065 +#define XK_f 0x066 +#define XK_g 0x067 +#define XK_h 0x068 +#define XK_i 0x069 +#define XK_j 0x06a +#define XK_k 0x06b +#define XK_l 0x06c +#define XK_m 0x06d +#define XK_n 0x06e +#define XK_o 0x06f +#define XK_p 0x070 +#define XK_q 0x071 +#define XK_r 0x072 +#define XK_s 0x073 +#define XK_t 0x074 +#define XK_u 0x075 +#define XK_v 0x076 +#define XK_w 0x077 +#define XK_x 0x078 +#define XK_y 0x079 +#define XK_z 0x07a +#define XK_braceleft 0x07b +#define XK_bar 0x07c +#define XK_braceright 0x07d +#define XK_asciitilde 0x07e + +#define XK_nobreakspace 0x0a0 +#define XK_exclamdown 0x0a1 +#define XK_cent 0x0a2 +#define XK_sterling 0x0a3 +#define XK_currency 0x0a4 +#define XK_yen 0x0a5 +#define XK_brokenbar 0x0a6 +#define XK_section 0x0a7 +#define XK_diaeresis 0x0a8 +#define XK_copyright 0x0a9 +#define XK_ordfeminine 0x0aa +#define XK_guillemotleft 0x0ab /* left angle quotation mark */ +#define XK_notsign 0x0ac +#define XK_hyphen 0x0ad +#define XK_registered 0x0ae +#define XK_macron 0x0af +#define XK_degree 0x0b0 +#define XK_plusminus 0x0b1 +#define XK_twosuperior 0x0b2 +#define XK_threesuperior 0x0b3 +#define XK_acute 0x0b4 +#define XK_mu 0x0b5 +#define XK_paragraph 0x0b6 +#define XK_periodcentered 0x0b7 +#define XK_cedilla 0x0b8 +#define XK_onesuperior 0x0b9 +#define XK_masculine 0x0ba +#define XK_guillemotright 0x0bb /* right angle quotation mark */ +#define XK_onequarter 0x0bc +#define XK_onehalf 0x0bd +#define XK_threequarters 0x0be +#define XK_questiondown 0x0bf +#define XK_Agrave 0x0c0 +#define XK_Aacute 0x0c1 +#define XK_Acircumflex 0x0c2 +#define XK_Atilde 0x0c3 +#define XK_Adiaeresis 0x0c4 +#define XK_Aring 0x0c5 +#define XK_AE 0x0c6 +#define XK_Ccedilla 0x0c7 +#define XK_Egrave 0x0c8 +#define XK_Eacute 0x0c9 +#define XK_Ecircumflex 0x0ca +#define XK_Ediaeresis 0x0cb +#define XK_Igrave 0x0cc +#define XK_Iacute 0x0cd +#define XK_Icircumflex 0x0ce +#define XK_Idiaeresis 0x0cf +#define XK_ETH 0x0d0 +#define XK_Eth 0x0d0 /* deprecated */ +#define XK_Ntilde 0x0d1 +#define XK_Ograve 0x0d2 +#define XK_Oacute 0x0d3 +#define XK_Ocircumflex 0x0d4 +#define XK_Otilde 0x0d5 +#define XK_Odiaeresis 0x0d6 +#define XK_multiply 0x0d7 +#define XK_Ooblique 0x0d8 +#define XK_Ugrave 0x0d9 +#define XK_Uacute 0x0da +#define XK_Ucircumflex 0x0db +#define XK_Udiaeresis 0x0dc +#define XK_Yacute 0x0dd +#define XK_THORN 0x0de +#define XK_Thorn 0x0de /* deprecated */ +#define XK_ssharp 0x0df +#define XK_agrave 0x0e0 +#define XK_aacute 0x0e1 +#define XK_acircumflex 0x0e2 +#define XK_atilde 0x0e3 +#define XK_adiaeresis 0x0e4 +#define XK_aring 0x0e5 +#define XK_ae 0x0e6 +#define XK_ccedilla 0x0e7 +#define XK_egrave 0x0e8 +#define XK_eacute 0x0e9 +#define XK_ecircumflex 0x0ea +#define XK_ediaeresis 0x0eb +#define XK_igrave 0x0ec +#define XK_iacute 0x0ed +#define XK_icircumflex 0x0ee +#define XK_idiaeresis 0x0ef +#define XK_eth 0x0f0 +#define XK_ntilde 0x0f1 +#define XK_ograve 0x0f2 +#define XK_oacute 0x0f3 +#define XK_ocircumflex 0x0f4 +#define XK_otilde 0x0f5 +#define XK_odiaeresis 0x0f6 +#define XK_division 0x0f7 +#define XK_oslash 0x0f8 +#define XK_ugrave 0x0f9 +#define XK_uacute 0x0fa +#define XK_ucircumflex 0x0fb +#define XK_udiaeresis 0x0fc +#define XK_yacute 0x0fd +#define XK_thorn 0x0fe +#define XK_ydiaeresis 0x0ff +#endif /* XK_LATIN1 */ + +/* + * Latin 2 + * Byte 3 = 1 + */ + +#ifdef XK_LATIN2 +#define XK_Aogonek 0x1a1 +#define XK_breve 0x1a2 +#define XK_Lstroke 0x1a3 +#define XK_Lcaron 0x1a5 +#define XK_Sacute 0x1a6 +#define XK_Scaron 0x1a9 +#define XK_Scedilla 0x1aa +#define XK_Tcaron 0x1ab +#define XK_Zacute 0x1ac +#define XK_Zcaron 0x1ae +#define XK_Zabovedot 0x1af +#define XK_aogonek 0x1b1 +#define XK_ogonek 0x1b2 +#define XK_lstroke 0x1b3 +#define XK_lcaron 0x1b5 +#define XK_sacute 0x1b6 +#define XK_caron 0x1b7 +#define XK_scaron 0x1b9 +#define XK_scedilla 0x1ba +#define XK_tcaron 0x1bb +#define XK_zacute 0x1bc +#define XK_doubleacute 0x1bd +#define XK_zcaron 0x1be +#define XK_zabovedot 0x1bf +#define XK_Racute 0x1c0 +#define XK_Abreve 0x1c3 +#define XK_Lacute 0x1c5 +#define XK_Cacute 0x1c6 +#define XK_Ccaron 0x1c8 +#define XK_Eogonek 0x1ca +#define XK_Ecaron 0x1cc +#define XK_Dcaron 0x1cf +#define XK_Dstroke 0x1d0 +#define XK_Nacute 0x1d1 +#define XK_Ncaron 0x1d2 +#define XK_Odoubleacute 0x1d5 +#define XK_Rcaron 0x1d8 +#define XK_Uring 0x1d9 +#define XK_Udoubleacute 0x1db +#define XK_Tcedilla 0x1de +#define XK_racute 0x1e0 +#define XK_abreve 0x1e3 +#define XK_lacute 0x1e5 +#define XK_cacute 0x1e6 +#define XK_ccaron 0x1e8 +#define XK_eogonek 0x1ea +#define XK_ecaron 0x1ec +#define XK_dcaron 0x1ef +#define XK_dstroke 0x1f0 +#define XK_nacute 0x1f1 +#define XK_ncaron 0x1f2 +#define XK_odoubleacute 0x1f5 +#define XK_udoubleacute 0x1fb +#define XK_rcaron 0x1f8 +#define XK_uring 0x1f9 +#define XK_tcedilla 0x1fe +#define XK_abovedot 0x1ff +#endif /* XK_LATIN2 */ + +/* + * Latin 3 + * Byte 3 = 2 + */ + +#ifdef XK_LATIN3 +#define XK_Hstroke 0x2a1 +#define XK_Hcircumflex 0x2a6 +#define XK_Iabovedot 0x2a9 +#define XK_Gbreve 0x2ab +#define XK_Jcircumflex 0x2ac +#define XK_hstroke 0x2b1 +#define XK_hcircumflex 0x2b6 +#define XK_idotless 0x2b9 +#define XK_gbreve 0x2bb +#define XK_jcircumflex 0x2bc +#define XK_Cabovedot 0x2c5 +#define XK_Ccircumflex 0x2c6 +#define XK_Gabovedot 0x2d5 +#define XK_Gcircumflex 0x2d8 +#define XK_Ubreve 0x2dd +#define XK_Scircumflex 0x2de +#define XK_cabovedot 0x2e5 +#define XK_ccircumflex 0x2e6 +#define XK_gabovedot 0x2f5 +#define XK_gcircumflex 0x2f8 +#define XK_ubreve 0x2fd +#define XK_scircumflex 0x2fe +#endif /* XK_LATIN3 */ + + +/* + * Latin 4 + * Byte 3 = 3 + */ + +#ifdef XK_LATIN4 +#define XK_kra 0x3a2 +#define XK_kappa 0x3a2 /* deprecated */ +#define XK_Rcedilla 0x3a3 +#define XK_Itilde 0x3a5 +#define XK_Lcedilla 0x3a6 +#define XK_Emacron 0x3aa +#define XK_Gcedilla 0x3ab +#define XK_Tslash 0x3ac +#define XK_rcedilla 0x3b3 +#define XK_itilde 0x3b5 +#define XK_lcedilla 0x3b6 +#define XK_emacron 0x3ba +#define XK_gcedilla 0x3bb +#define XK_tslash 0x3bc +#define XK_ENG 0x3bd +#define XK_eng 0x3bf +#define XK_Amacron 0x3c0 +#define XK_Iogonek 0x3c7 +#define XK_Eabovedot 0x3cc +#define XK_Imacron 0x3cf +#define XK_Ncedilla 0x3d1 +#define XK_Omacron 0x3d2 +#define XK_Kcedilla 0x3d3 +#define XK_Uogonek 0x3d9 +#define XK_Utilde 0x3dd +#define XK_Umacron 0x3de +#define XK_amacron 0x3e0 +#define XK_iogonek 0x3e7 +#define XK_eabovedot 0x3ec +#define XK_imacron 0x3ef +#define XK_ncedilla 0x3f1 +#define XK_omacron 0x3f2 +#define XK_kcedilla 0x3f3 +#define XK_uogonek 0x3f9 +#define XK_utilde 0x3fd +#define XK_umacron 0x3fe +#endif /* XK_LATIN4 */ + +/* + * Katakana + * Byte 3 = 4 + */ + +#ifdef XK_KATAKANA +#define XK_overline 0x47e +#define XK_kana_fullstop 0x4a1 +#define XK_kana_openingbracket 0x4a2 +#define XK_kana_closingbracket 0x4a3 +#define XK_kana_comma 0x4a4 +#define XK_kana_conjunctive 0x4a5 +#define XK_kana_middledot 0x4a5 /* deprecated */ +#define XK_kana_WO 0x4a6 +#define XK_kana_a 0x4a7 +#define XK_kana_i 0x4a8 +#define XK_kana_u 0x4a9 +#define XK_kana_e 0x4aa +#define XK_kana_o 0x4ab +#define XK_kana_ya 0x4ac +#define XK_kana_yu 0x4ad +#define XK_kana_yo 0x4ae +#define XK_kana_tsu 0x4af +#define XK_kana_tu 0x4af /* deprecated */ +#define XK_prolongedsound 0x4b0 +#define XK_kana_A 0x4b1 +#define XK_kana_I 0x4b2 +#define XK_kana_U 0x4b3 +#define XK_kana_E 0x4b4 +#define XK_kana_O 0x4b5 +#define XK_kana_KA 0x4b6 +#define XK_kana_KI 0x4b7 +#define XK_kana_KU 0x4b8 +#define XK_kana_KE 0x4b9 +#define XK_kana_KO 0x4ba +#define XK_kana_SA 0x4bb +#define XK_kana_SHI 0x4bc +#define XK_kana_SU 0x4bd +#define XK_kana_SE 0x4be +#define XK_kana_SO 0x4bf +#define XK_kana_TA 0x4c0 +#define XK_kana_CHI 0x4c1 +#define XK_kana_TI 0x4c1 /* deprecated */ +#define XK_kana_TSU 0x4c2 +#define XK_kana_TU 0x4c2 /* deprecated */ +#define XK_kana_TE 0x4c3 +#define XK_kana_TO 0x4c4 +#define XK_kana_NA 0x4c5 +#define XK_kana_NI 0x4c6 +#define XK_kana_NU 0x4c7 +#define XK_kana_NE 0x4c8 +#define XK_kana_NO 0x4c9 +#define XK_kana_HA 0x4ca +#define XK_kana_HI 0x4cb +#define XK_kana_FU 0x4cc +#define XK_kana_HU 0x4cc /* deprecated */ +#define XK_kana_HE 0x4cd +#define XK_kana_HO 0x4ce +#define XK_kana_MA 0x4cf +#define XK_kana_MI 0x4d0 +#define XK_kana_MU 0x4d1 +#define XK_kana_ME 0x4d2 +#define XK_kana_MO 0x4d3 +#define XK_kana_YA 0x4d4 +#define XK_kana_YU 0x4d5 +#define XK_kana_YO 0x4d6 +#define XK_kana_RA 0x4d7 +#define XK_kana_RI 0x4d8 +#define XK_kana_RU 0x4d9 +#define XK_kana_RE 0x4da +#define XK_kana_RO 0x4db +#define XK_kana_WA 0x4dc +#define XK_kana_N 0x4dd +#define XK_voicedsound 0x4de +#define XK_semivoicedsound 0x4df +#define XK_kana_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_KATAKANA */ + +/* + * Arabic + * Byte 3 = 5 + */ + +#ifdef XK_ARABIC +#define XK_Arabic_comma 0x5ac +#define XK_Arabic_semicolon 0x5bb +#define XK_Arabic_question_mark 0x5bf +#define XK_Arabic_hamza 0x5c1 +#define XK_Arabic_maddaonalef 0x5c2 +#define XK_Arabic_hamzaonalef 0x5c3 +#define XK_Arabic_hamzaonwaw 0x5c4 +#define XK_Arabic_hamzaunderalef 0x5c5 +#define XK_Arabic_hamzaonyeh 0x5c6 +#define XK_Arabic_alef 0x5c7 +#define XK_Arabic_beh 0x5c8 +#define XK_Arabic_tehmarbuta 0x5c9 +#define XK_Arabic_teh 0x5ca +#define XK_Arabic_theh 0x5cb +#define XK_Arabic_jeem 0x5cc +#define XK_Arabic_hah 0x5cd +#define XK_Arabic_khah 0x5ce +#define XK_Arabic_dal 0x5cf +#define XK_Arabic_thal 0x5d0 +#define XK_Arabic_ra 0x5d1 +#define XK_Arabic_zain 0x5d2 +#define XK_Arabic_seen 0x5d3 +#define XK_Arabic_sheen 0x5d4 +#define XK_Arabic_sad 0x5d5 +#define XK_Arabic_dad 0x5d6 +#define XK_Arabic_tah 0x5d7 +#define XK_Arabic_zah 0x5d8 +#define XK_Arabic_ain 0x5d9 +#define XK_Arabic_ghain 0x5da +#define XK_Arabic_tatweel 0x5e0 +#define XK_Arabic_feh 0x5e1 +#define XK_Arabic_qaf 0x5e2 +#define XK_Arabic_kaf 0x5e3 +#define XK_Arabic_lam 0x5e4 +#define XK_Arabic_meem 0x5e5 +#define XK_Arabic_noon 0x5e6 +#define XK_Arabic_ha 0x5e7 +#define XK_Arabic_heh 0x5e7 /* deprecated */ +#define XK_Arabic_waw 0x5e8 +#define XK_Arabic_alefmaksura 0x5e9 +#define XK_Arabic_yeh 0x5ea +#define XK_Arabic_fathatan 0x5eb +#define XK_Arabic_dammatan 0x5ec +#define XK_Arabic_kasratan 0x5ed +#define XK_Arabic_fatha 0x5ee +#define XK_Arabic_damma 0x5ef +#define XK_Arabic_kasra 0x5f0 +#define XK_Arabic_shadda 0x5f1 +#define XK_Arabic_sukun 0x5f2 +#define XK_Arabic_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_ARABIC */ + +/* + * Cyrillic + * Byte 3 = 6 + */ +#ifdef XK_CYRILLIC +#define XK_Serbian_dje 0x6a1 +#define XK_Macedonia_gje 0x6a2 +#define XK_Cyrillic_io 0x6a3 +#define XK_Ukrainian_ie 0x6a4 +#define XK_Ukranian_je 0x6a4 /* deprecated */ +#define XK_Macedonia_dse 0x6a5 +#define XK_Ukrainian_i 0x6a6 +#define XK_Ukranian_i 0x6a6 /* deprecated */ +#define XK_Ukrainian_yi 0x6a7 +#define XK_Ukranian_yi 0x6a7 /* deprecated */ +#define XK_Cyrillic_je 0x6a8 +#define XK_Serbian_je 0x6a8 /* deprecated */ +#define XK_Cyrillic_lje 0x6a9 +#define XK_Serbian_lje 0x6a9 /* deprecated */ +#define XK_Cyrillic_nje 0x6aa +#define XK_Serbian_nje 0x6aa /* deprecated */ +#define XK_Serbian_tshe 0x6ab +#define XK_Macedonia_kje 0x6ac +#define XK_Byelorussian_shortu 0x6ae +#define XK_Cyrillic_dzhe 0x6af +#define XK_Serbian_dze 0x6af /* deprecated */ +#define XK_numerosign 0x6b0 +#define XK_Serbian_DJE 0x6b1 +#define XK_Macedonia_GJE 0x6b2 +#define XK_Cyrillic_IO 0x6b3 +#define XK_Ukrainian_IE 0x6b4 +#define XK_Ukranian_JE 0x6b4 /* deprecated */ +#define XK_Macedonia_DSE 0x6b5 +#define XK_Ukrainian_I 0x6b6 +#define XK_Ukranian_I 0x6b6 /* deprecated */ +#define XK_Ukrainian_YI 0x6b7 +#define XK_Ukranian_YI 0x6b7 /* deprecated */ +#define XK_Cyrillic_JE 0x6b8 +#define XK_Serbian_JE 0x6b8 /* deprecated */ +#define XK_Cyrillic_LJE 0x6b9 +#define XK_Serbian_LJE 0x6b9 /* deprecated */ +#define XK_Cyrillic_NJE 0x6ba +#define XK_Serbian_NJE 0x6ba /* deprecated */ +#define XK_Serbian_TSHE 0x6bb +#define XK_Macedonia_KJE 0x6bc +#define XK_Byelorussian_SHORTU 0x6be +#define XK_Cyrillic_DZHE 0x6bf +#define XK_Serbian_DZE 0x6bf /* deprecated */ +#define XK_Cyrillic_yu 0x6c0 +#define XK_Cyrillic_a 0x6c1 +#define XK_Cyrillic_be 0x6c2 +#define XK_Cyrillic_tse 0x6c3 +#define XK_Cyrillic_de 0x6c4 +#define XK_Cyrillic_ie 0x6c5 +#define XK_Cyrillic_ef 0x6c6 +#define XK_Cyrillic_ghe 0x6c7 +#define XK_Cyrillic_ha 0x6c8 +#define XK_Cyrillic_i 0x6c9 +#define XK_Cyrillic_shorti 0x6ca +#define XK_Cyrillic_ka 0x6cb +#define XK_Cyrillic_el 0x6cc +#define XK_Cyrillic_em 0x6cd +#define XK_Cyrillic_en 0x6ce +#define XK_Cyrillic_o 0x6cf +#define XK_Cyrillic_pe 0x6d0 +#define XK_Cyrillic_ya 0x6d1 +#define XK_Cyrillic_er 0x6d2 +#define XK_Cyrillic_es 0x6d3 +#define XK_Cyrillic_te 0x6d4 +#define XK_Cyrillic_u 0x6d5 +#define XK_Cyrillic_zhe 0x6d6 +#define XK_Cyrillic_ve 0x6d7 +#define XK_Cyrillic_softsign 0x6d8 +#define XK_Cyrillic_yeru 0x6d9 +#define XK_Cyrillic_ze 0x6da +#define XK_Cyrillic_sha 0x6db +#define XK_Cyrillic_e 0x6dc +#define XK_Cyrillic_shcha 0x6dd +#define XK_Cyrillic_che 0x6de +#define XK_Cyrillic_hardsign 0x6df +#define XK_Cyrillic_YU 0x6e0 +#define XK_Cyrillic_A 0x6e1 +#define XK_Cyrillic_BE 0x6e2 +#define XK_Cyrillic_TSE 0x6e3 +#define XK_Cyrillic_DE 0x6e4 +#define XK_Cyrillic_IE 0x6e5 +#define XK_Cyrillic_EF 0x6e6 +#define XK_Cyrillic_GHE 0x6e7 +#define XK_Cyrillic_HA 0x6e8 +#define XK_Cyrillic_I 0x6e9 +#define XK_Cyrillic_SHORTI 0x6ea +#define XK_Cyrillic_KA 0x6eb +#define XK_Cyrillic_EL 0x6ec +#define XK_Cyrillic_EM 0x6ed +#define XK_Cyrillic_EN 0x6ee +#define XK_Cyrillic_O 0x6ef +#define XK_Cyrillic_PE 0x6f0 +#define XK_Cyrillic_YA 0x6f1 +#define XK_Cyrillic_ER 0x6f2 +#define XK_Cyrillic_ES 0x6f3 +#define XK_Cyrillic_TE 0x6f4 +#define XK_Cyrillic_U 0x6f5 +#define XK_Cyrillic_ZHE 0x6f6 +#define XK_Cyrillic_VE 0x6f7 +#define XK_Cyrillic_SOFTSIGN 0x6f8 +#define XK_Cyrillic_YERU 0x6f9 +#define XK_Cyrillic_ZE 0x6fa +#define XK_Cyrillic_SHA 0x6fb +#define XK_Cyrillic_E 0x6fc +#define XK_Cyrillic_SHCHA 0x6fd +#define XK_Cyrillic_CHE 0x6fe +#define XK_Cyrillic_HARDSIGN 0x6ff +#endif /* XK_CYRILLIC */ + +/* + * Greek + * Byte 3 = 7 + */ + +#ifdef XK_GREEK +#define XK_Greek_ALPHAaccent 0x7a1 +#define XK_Greek_EPSILONaccent 0x7a2 +#define XK_Greek_ETAaccent 0x7a3 +#define XK_Greek_IOTAaccent 0x7a4 +#define XK_Greek_IOTAdieresis 0x7a5 +#define XK_Greek_OMICRONaccent 0x7a7 +#define XK_Greek_UPSILONaccent 0x7a8 +#define XK_Greek_UPSILONdieresis 0x7a9 +#define XK_Greek_OMEGAaccent 0x7ab +#define XK_Greek_accentdieresis 0x7ae +#define XK_Greek_horizbar 0x7af +#define XK_Greek_alphaaccent 0x7b1 +#define XK_Greek_epsilonaccent 0x7b2 +#define XK_Greek_etaaccent 0x7b3 +#define XK_Greek_iotaaccent 0x7b4 +#define XK_Greek_iotadieresis 0x7b5 +#define XK_Greek_iotaaccentdieresis 0x7b6 +#define XK_Greek_omicronaccent 0x7b7 +#define XK_Greek_upsilonaccent 0x7b8 +#define XK_Greek_upsilondieresis 0x7b9 +#define XK_Greek_upsilonaccentdieresis 0x7ba +#define XK_Greek_omegaaccent 0x7bb +#define XK_Greek_ALPHA 0x7c1 +#define XK_Greek_BETA 0x7c2 +#define XK_Greek_GAMMA 0x7c3 +#define XK_Greek_DELTA 0x7c4 +#define XK_Greek_EPSILON 0x7c5 +#define XK_Greek_ZETA 0x7c6 +#define XK_Greek_ETA 0x7c7 +#define XK_Greek_THETA 0x7c8 +#define XK_Greek_IOTA 0x7c9 +#define XK_Greek_KAPPA 0x7ca +#define XK_Greek_LAMDA 0x7cb +#define XK_Greek_LAMBDA 0x7cb +#define XK_Greek_MU 0x7cc +#define XK_Greek_NU 0x7cd +#define XK_Greek_XI 0x7ce +#define XK_Greek_OMICRON 0x7cf +#define XK_Greek_PI 0x7d0 +#define XK_Greek_RHO 0x7d1 +#define XK_Greek_SIGMA 0x7d2 +#define XK_Greek_TAU 0x7d4 +#define XK_Greek_UPSILON 0x7d5 +#define XK_Greek_PHI 0x7d6 +#define XK_Greek_CHI 0x7d7 +#define XK_Greek_PSI 0x7d8 +#define XK_Greek_OMEGA 0x7d9 +#define XK_Greek_alpha 0x7e1 +#define XK_Greek_beta 0x7e2 +#define XK_Greek_gamma 0x7e3 +#define XK_Greek_delta 0x7e4 +#define XK_Greek_epsilon 0x7e5 +#define XK_Greek_zeta 0x7e6 +#define XK_Greek_eta 0x7e7 +#define XK_Greek_theta 0x7e8 +#define XK_Greek_iota 0x7e9 +#define XK_Greek_kappa 0x7ea +#define XK_Greek_lamda 0x7eb +#define XK_Greek_lambda 0x7eb +#define XK_Greek_mu 0x7ec +#define XK_Greek_nu 0x7ed +#define XK_Greek_xi 0x7ee +#define XK_Greek_omicron 0x7ef +#define XK_Greek_pi 0x7f0 +#define XK_Greek_rho 0x7f1 +#define XK_Greek_sigma 0x7f2 +#define XK_Greek_finalsmallsigma 0x7f3 +#define XK_Greek_tau 0x7f4 +#define XK_Greek_upsilon 0x7f5 +#define XK_Greek_phi 0x7f6 +#define XK_Greek_chi 0x7f7 +#define XK_Greek_psi 0x7f8 +#define XK_Greek_omega 0x7f9 +#define XK_Greek_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_GREEK */ + +/* + * Technical + * Byte 3 = 8 + */ + +#ifdef XK_TECHNICAL +#define XK_leftradical 0x8a1 +#define XK_topleftradical 0x8a2 +#define XK_horizconnector 0x8a3 +#define XK_topintegral 0x8a4 +#define XK_botintegral 0x8a5 +#define XK_vertconnector 0x8a6 +#define XK_topleftsqbracket 0x8a7 +#define XK_botleftsqbracket 0x8a8 +#define XK_toprightsqbracket 0x8a9 +#define XK_botrightsqbracket 0x8aa +#define XK_topleftparens 0x8ab +#define XK_botleftparens 0x8ac +#define XK_toprightparens 0x8ad +#define XK_botrightparens 0x8ae +#define XK_leftmiddlecurlybrace 0x8af +#define XK_rightmiddlecurlybrace 0x8b0 +#define XK_topleftsummation 0x8b1 +#define XK_botleftsummation 0x8b2 +#define XK_topvertsummationconnector 0x8b3 +#define XK_botvertsummationconnector 0x8b4 +#define XK_toprightsummation 0x8b5 +#define XK_botrightsummation 0x8b6 +#define XK_rightmiddlesummation 0x8b7 +#define XK_lessthanequal 0x8bc +#define XK_notequal 0x8bd +#define XK_greaterthanequal 0x8be +#define XK_integral 0x8bf +#define XK_therefore 0x8c0 +#define XK_variation 0x8c1 +#define XK_infinity 0x8c2 +#define XK_nabla 0x8c5 +#define XK_approximate 0x8c8 +#define XK_similarequal 0x8c9 +#define XK_ifonlyif 0x8cd +#define XK_implies 0x8ce +#define XK_identical 0x8cf +#define XK_radical 0x8d6 +#define XK_includedin 0x8da +#define XK_includes 0x8db +#define XK_intersection 0x8dc +#define XK_union 0x8dd +#define XK_logicaland 0x8de +#define XK_logicalor 0x8df +#define XK_partialderivative 0x8ef +#define XK_function 0x8f6 +#define XK_leftarrow 0x8fb +#define XK_uparrow 0x8fc +#define XK_rightarrow 0x8fd +#define XK_downarrow 0x8fe +#endif /* XK_TECHNICAL */ + +/* + * Special + * Byte 3 = 9 + */ + +#ifdef XK_SPECIAL +#define XK_blank 0x9df +#define XK_soliddiamond 0x9e0 +#define XK_checkerboard 0x9e1 +#define XK_ht 0x9e2 +#define XK_ff 0x9e3 +#define XK_cr 0x9e4 +#define XK_lf 0x9e5 +#define XK_nl 0x9e8 +#define XK_vt 0x9e9 +#define XK_lowrightcorner 0x9ea +#define XK_uprightcorner 0x9eb +#define XK_upleftcorner 0x9ec +#define XK_lowleftcorner 0x9ed +#define XK_crossinglines 0x9ee +#define XK_horizlinescan1 0x9ef +#define XK_horizlinescan3 0x9f0 +#define XK_horizlinescan5 0x9f1 +#define XK_horizlinescan7 0x9f2 +#define XK_horizlinescan9 0x9f3 +#define XK_leftt 0x9f4 +#define XK_rightt 0x9f5 +#define XK_bott 0x9f6 +#define XK_topt 0x9f7 +#define XK_vertbar 0x9f8 +#endif /* XK_SPECIAL */ + +/* + * Publishing + * Byte 3 = a + */ + +#ifdef XK_PUBLISHING +#define XK_emspace 0xaa1 +#define XK_enspace 0xaa2 +#define XK_em3space 0xaa3 +#define XK_em4space 0xaa4 +#define XK_digitspace 0xaa5 +#define XK_punctspace 0xaa6 +#define XK_thinspace 0xaa7 +#define XK_hairspace 0xaa8 +#define XK_emdash 0xaa9 +#define XK_endash 0xaaa +#define XK_signifblank 0xaac +#define XK_ellipsis 0xaae +#define XK_doubbaselinedot 0xaaf +#define XK_onethird 0xab0 +#define XK_twothirds 0xab1 +#define XK_onefifth 0xab2 +#define XK_twofifths 0xab3 +#define XK_threefifths 0xab4 +#define XK_fourfifths 0xab5 +#define XK_onesixth 0xab6 +#define XK_fivesixths 0xab7 +#define XK_careof 0xab8 +#define XK_figdash 0xabb +#define XK_leftanglebracket 0xabc +#define XK_decimalpoint 0xabd +#define XK_rightanglebracket 0xabe +#define XK_marker 0xabf +#define XK_oneeighth 0xac3 +#define XK_threeeighths 0xac4 +#define XK_fiveeighths 0xac5 +#define XK_seveneighths 0xac6 +#define XK_trademark 0xac9 +#define XK_signaturemark 0xaca +#define XK_trademarkincircle 0xacb +#define XK_leftopentriangle 0xacc +#define XK_rightopentriangle 0xacd +#define XK_emopencircle 0xace +#define XK_emopenrectangle 0xacf +#define XK_leftsinglequotemark 0xad0 +#define XK_rightsinglequotemark 0xad1 +#define XK_leftdoublequotemark 0xad2 +#define XK_rightdoublequotemark 0xad3 +#define XK_prescription 0xad4 +#define XK_minutes 0xad6 +#define XK_seconds 0xad7 +#define XK_latincross 0xad9 +#define XK_hexagram 0xada +#define XK_filledrectbullet 0xadb +#define XK_filledlefttribullet 0xadc +#define XK_filledrighttribullet 0xadd +#define XK_emfilledcircle 0xade +#define XK_emfilledrect 0xadf +#define XK_enopencircbullet 0xae0 +#define XK_enopensquarebullet 0xae1 +#define XK_openrectbullet 0xae2 +#define XK_opentribulletup 0xae3 +#define XK_opentribulletdown 0xae4 +#define XK_openstar 0xae5 +#define XK_enfilledcircbullet 0xae6 +#define XK_enfilledsqbullet 0xae7 +#define XK_filledtribulletup 0xae8 +#define XK_filledtribulletdown 0xae9 +#define XK_leftpointer 0xaea +#define XK_rightpointer 0xaeb +#define XK_club 0xaec +#define XK_diamond 0xaed +#define XK_heart 0xaee +#define XK_maltesecross 0xaf0 +#define XK_dagger 0xaf1 +#define XK_doubledagger 0xaf2 +#define XK_checkmark 0xaf3 +#define XK_ballotcross 0xaf4 +#define XK_musicalsharp 0xaf5 +#define XK_musicalflat 0xaf6 +#define XK_malesymbol 0xaf7 +#define XK_femalesymbol 0xaf8 +#define XK_telephone 0xaf9 +#define XK_telephonerecorder 0xafa +#define XK_phonographcopyright 0xafb +#define XK_caret 0xafc +#define XK_singlelowquotemark 0xafd +#define XK_doublelowquotemark 0xafe +#define XK_cursor 0xaff +#endif /* XK_PUBLISHING */ + +/* + * APL + * Byte 3 = b + */ + +#ifdef XK_APL +#define XK_leftcaret 0xba3 +#define XK_rightcaret 0xba6 +#define XK_downcaret 0xba8 +#define XK_upcaret 0xba9 +#define XK_overbar 0xbc0 +#define XK_downtack 0xbc2 +#define XK_upshoe 0xbc3 +#define XK_downstile 0xbc4 +#define XK_underbar 0xbc6 +#define XK_jot 0xbca +#define XK_quad 0xbcc +#define XK_uptack 0xbce +#define XK_circle 0xbcf +#define XK_upstile 0xbd3 +#define XK_downshoe 0xbd6 +#define XK_rightshoe 0xbd8 +#define XK_leftshoe 0xbda +#define XK_lefttack 0xbdc +#define XK_righttack 0xbfc +#endif /* XK_APL */ + +/* + * Hebrew + * Byte 3 = c + */ + +#ifdef XK_HEBREW +#define XK_hebrew_doublelowline 0xcdf +#define XK_hebrew_aleph 0xce0 +#define XK_hebrew_bet 0xce1 +#define XK_hebrew_beth 0xce1 /* deprecated */ +#define XK_hebrew_gimel 0xce2 +#define XK_hebrew_gimmel 0xce2 /* deprecated */ +#define XK_hebrew_dalet 0xce3 +#define XK_hebrew_daleth 0xce3 /* deprecated */ +#define XK_hebrew_he 0xce4 +#define XK_hebrew_waw 0xce5 +#define XK_hebrew_zain 0xce6 +#define XK_hebrew_zayin 0xce6 /* deprecated */ +#define XK_hebrew_chet 0xce7 +#define XK_hebrew_het 0xce7 /* deprecated */ +#define XK_hebrew_tet 0xce8 +#define XK_hebrew_teth 0xce8 /* deprecated */ +#define XK_hebrew_yod 0xce9 +#define XK_hebrew_finalkaph 0xcea +#define XK_hebrew_kaph 0xceb +#define XK_hebrew_lamed 0xcec +#define XK_hebrew_finalmem 0xced +#define XK_hebrew_mem 0xcee +#define XK_hebrew_finalnun 0xcef +#define XK_hebrew_nun 0xcf0 +#define XK_hebrew_samech 0xcf1 +#define XK_hebrew_samekh 0xcf1 /* deprecated */ +#define XK_hebrew_ayin 0xcf2 +#define XK_hebrew_finalpe 0xcf3 +#define XK_hebrew_pe 0xcf4 +#define XK_hebrew_finalzade 0xcf5 +#define XK_hebrew_finalzadi 0xcf5 /* deprecated */ +#define XK_hebrew_zade 0xcf6 +#define XK_hebrew_zadi 0xcf6 /* deprecated */ +#define XK_hebrew_qoph 0xcf7 +#define XK_hebrew_kuf 0xcf7 /* deprecated */ +#define XK_hebrew_resh 0xcf8 +#define XK_hebrew_shin 0xcf9 +#define XK_hebrew_taw 0xcfa +#define XK_hebrew_taf 0xcfa /* deprecated */ +#define XK_Hebrew_switch 0xFF7E /* Alias for mode_switch */ +#endif /* XK_HEBREW */ + +/* + * Thai + * Byte 3 = d + */ + +#ifdef XK_THAI +#define XK_Thai_kokai 0xda1 +#define XK_Thai_khokhai 0xda2 +#define XK_Thai_khokhuat 0xda3 +#define XK_Thai_khokhwai 0xda4 +#define XK_Thai_khokhon 0xda5 +#define XK_Thai_khorakhang 0xda6 +#define XK_Thai_ngongu 0xda7 +#define XK_Thai_chochan 0xda8 +#define XK_Thai_choching 0xda9 +#define XK_Thai_chochang 0xdaa +#define XK_Thai_soso 0xdab +#define XK_Thai_chochoe 0xdac +#define XK_Thai_yoying 0xdad +#define XK_Thai_dochada 0xdae +#define XK_Thai_topatak 0xdaf +#define XK_Thai_thothan 0xdb0 +#define XK_Thai_thonangmontho 0xdb1 +#define XK_Thai_thophuthao 0xdb2 +#define XK_Thai_nonen 0xdb3 +#define XK_Thai_dodek 0xdb4 +#define XK_Thai_totao 0xdb5 +#define XK_Thai_thothung 0xdb6 +#define XK_Thai_thothahan 0xdb7 +#define XK_Thai_thothong 0xdb8 +#define XK_Thai_nonu 0xdb9 +#define XK_Thai_bobaimai 0xdba +#define XK_Thai_popla 0xdbb +#define XK_Thai_phophung 0xdbc +#define XK_Thai_fofa 0xdbd +#define XK_Thai_phophan 0xdbe +#define XK_Thai_fofan 0xdbf +#define XK_Thai_phosamphao 0xdc0 +#define XK_Thai_moma 0xdc1 +#define XK_Thai_yoyak 0xdc2 +#define XK_Thai_rorua 0xdc3 +#define XK_Thai_ru 0xdc4 +#define XK_Thai_loling 0xdc5 +#define XK_Thai_lu 0xdc6 +#define XK_Thai_wowaen 0xdc7 +#define XK_Thai_sosala 0xdc8 +#define XK_Thai_sorusi 0xdc9 +#define XK_Thai_sosua 0xdca +#define XK_Thai_hohip 0xdcb +#define XK_Thai_lochula 0xdcc +#define XK_Thai_oang 0xdcd +#define XK_Thai_honokhuk 0xdce +#define XK_Thai_paiyannoi 0xdcf +#define XK_Thai_saraa 0xdd0 +#define XK_Thai_maihanakat 0xdd1 +#define XK_Thai_saraaa 0xdd2 +#define XK_Thai_saraam 0xdd3 +#define XK_Thai_sarai 0xdd4 +#define XK_Thai_saraii 0xdd5 +#define XK_Thai_saraue 0xdd6 +#define XK_Thai_sarauee 0xdd7 +#define XK_Thai_sarau 0xdd8 +#define XK_Thai_sarauu 0xdd9 +#define XK_Thai_phinthu 0xdda +#define XK_Thai_maihanakat_maitho 0xdde +#define XK_Thai_baht 0xddf +#define XK_Thai_sarae 0xde0 +#define XK_Thai_saraae 0xde1 +#define XK_Thai_sarao 0xde2 +#define XK_Thai_saraaimaimuan 0xde3 +#define XK_Thai_saraaimaimalai 0xde4 +#define XK_Thai_lakkhangyao 0xde5 +#define XK_Thai_maiyamok 0xde6 +#define XK_Thai_maitaikhu 0xde7 +#define XK_Thai_maiek 0xde8 +#define XK_Thai_maitho 0xde9 +#define XK_Thai_maitri 0xdea +#define XK_Thai_maichattawa 0xdeb +#define XK_Thai_thanthakhat 0xdec +#define XK_Thai_nikhahit 0xded +#define XK_Thai_leksun 0xdf0 +#define XK_Thai_leknung 0xdf1 +#define XK_Thai_leksong 0xdf2 +#define XK_Thai_leksam 0xdf3 +#define XK_Thai_leksi 0xdf4 +#define XK_Thai_lekha 0xdf5 +#define XK_Thai_lekhok 0xdf6 +#define XK_Thai_lekchet 0xdf7 +#define XK_Thai_lekpaet 0xdf8 +#define XK_Thai_lekkao 0xdf9 +#endif /* XK_THAI */ + +/* + * Korean + * Byte 3 = e + */ + +#ifdef XK_KOREAN + +#define XK_Hangul 0xff31 /* Hangul start/stop(toggle) */ +#define XK_Hangul_Start 0xff32 /* Hangul start */ +#define XK_Hangul_End 0xff33 /* Hangul end, English start */ +#define XK_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */ +#define XK_Hangul_Jamo 0xff35 /* Hangul Jamo mode */ +#define XK_Hangul_Romaja 0xff36 /* Hangul Romaja mode */ +#define XK_Hangul_Codeinput 0xff37 /* Hangul code input mode */ +#define XK_Hangul_Jeonja 0xff38 /* Jeonja mode */ +#define XK_Hangul_Banja 0xff39 /* Banja mode */ +#define XK_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */ +#define XK_Hangul_PostHanja 0xff3b /* Post Hanja conversion */ +#define XK_Hangul_SingleCandidate 0xff3c /* Single candidate */ +#define XK_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */ +#define XK_Hangul_PreviousCandidate 0xff3e /* Previous candidate */ +#define XK_Hangul_Special 0xff3f /* Special symbols */ +#define XK_Hangul_switch 0xFF7E /* Alias for mode_switch */ + +/* Hangul Consonant Characters */ +#define XK_Hangul_Kiyeog 0xea1 +#define XK_Hangul_SsangKiyeog 0xea2 +#define XK_Hangul_KiyeogSios 0xea3 +#define XK_Hangul_Nieun 0xea4 +#define XK_Hangul_NieunJieuj 0xea5 +#define XK_Hangul_NieunHieuh 0xea6 +#define XK_Hangul_Dikeud 0xea7 +#define XK_Hangul_SsangDikeud 0xea8 +#define XK_Hangul_Rieul 0xea9 +#define XK_Hangul_RieulKiyeog 0xeaa +#define XK_Hangul_RieulMieum 0xeab +#define XK_Hangul_RieulPieub 0xeac +#define XK_Hangul_RieulSios 0xead +#define XK_Hangul_RieulTieut 0xeae +#define XK_Hangul_RieulPhieuf 0xeaf +#define XK_Hangul_RieulHieuh 0xeb0 +#define XK_Hangul_Mieum 0xeb1 +#define XK_Hangul_Pieub 0xeb2 +#define XK_Hangul_SsangPieub 0xeb3 +#define XK_Hangul_PieubSios 0xeb4 +#define XK_Hangul_Sios 0xeb5 +#define XK_Hangul_SsangSios 0xeb6 +#define XK_Hangul_Ieung 0xeb7 +#define XK_Hangul_Jieuj 0xeb8 +#define XK_Hangul_SsangJieuj 0xeb9 +#define XK_Hangul_Cieuc 0xeba +#define XK_Hangul_Khieuq 0xebb +#define XK_Hangul_Tieut 0xebc +#define XK_Hangul_Phieuf 0xebd +#define XK_Hangul_Hieuh 0xebe + +/* Hangul Vowel Characters */ +#define XK_Hangul_A 0xebf +#define XK_Hangul_AE 0xec0 +#define XK_Hangul_YA 0xec1 +#define XK_Hangul_YAE 0xec2 +#define XK_Hangul_EO 0xec3 +#define XK_Hangul_E 0xec4 +#define XK_Hangul_YEO 0xec5 +#define XK_Hangul_YE 0xec6 +#define XK_Hangul_O 0xec7 +#define XK_Hangul_WA 0xec8 +#define XK_Hangul_WAE 0xec9 +#define XK_Hangul_OE 0xeca +#define XK_Hangul_YO 0xecb +#define XK_Hangul_U 0xecc +#define XK_Hangul_WEO 0xecd +#define XK_Hangul_WE 0xece +#define XK_Hangul_WI 0xecf +#define XK_Hangul_YU 0xed0 +#define XK_Hangul_EU 0xed1 +#define XK_Hangul_YI 0xed2 +#define XK_Hangul_I 0xed3 + +/* Hangul syllable-final (JongSeong) Characters */ +#define XK_Hangul_J_Kiyeog 0xed4 +#define XK_Hangul_J_SsangKiyeog 0xed5 +#define XK_Hangul_J_KiyeogSios 0xed6 +#define XK_Hangul_J_Nieun 0xed7 +#define XK_Hangul_J_NieunJieuj 0xed8 +#define XK_Hangul_J_NieunHieuh 0xed9 +#define XK_Hangul_J_Dikeud 0xeda +#define XK_Hangul_J_Rieul 0xedb +#define XK_Hangul_J_RieulKiyeog 0xedc +#define XK_Hangul_J_RieulMieum 0xedd +#define XK_Hangul_J_RieulPieub 0xede +#define XK_Hangul_J_RieulSios 0xedf +#define XK_Hangul_J_RieulTieut 0xee0 +#define XK_Hangul_J_RieulPhieuf 0xee1 +#define XK_Hangul_J_RieulHieuh 0xee2 +#define XK_Hangul_J_Mieum 0xee3 +#define XK_Hangul_J_Pieub 0xee4 +#define XK_Hangul_J_PieubSios 0xee5 +#define XK_Hangul_J_Sios 0xee6 +#define XK_Hangul_J_SsangSios 0xee7 +#define XK_Hangul_J_Ieung 0xee8 +#define XK_Hangul_J_Jieuj 0xee9 +#define XK_Hangul_J_Cieuc 0xeea +#define XK_Hangul_J_Khieuq 0xeeb +#define XK_Hangul_J_Tieut 0xeec +#define XK_Hangul_J_Phieuf 0xeed +#define XK_Hangul_J_Hieuh 0xeee + +/* Ancient Hangul Consonant Characters */ +#define XK_Hangul_RieulYeorinHieuh 0xeef +#define XK_Hangul_SunkyeongeumMieum 0xef0 +#define XK_Hangul_SunkyeongeumPieub 0xef1 +#define XK_Hangul_PanSios 0xef2 +#define XK_Hangul_KkogjiDalrinIeung 0xef3 +#define XK_Hangul_SunkyeongeumPhieuf 0xef4 +#define XK_Hangul_YeorinHieuh 0xef5 + +/* Ancient Hangul Vowel Characters */ +#define XK_Hangul_AraeA 0xef6 +#define XK_Hangul_AraeAE 0xef7 + +/* Ancient Hangul syllable-final (JongSeong) Characters */ +#define XK_Hangul_J_PanSios 0xef8 +#define XK_Hangul_J_KkogjiDalrinIeung 0xef9 +#define XK_Hangul_J_YeorinHieuh 0xefa + +/* Korean currency symbol */ +#define XK_Korean_Won 0xeff + +#endif /* XK_KOREAN */ + +/* Euro currency symbol */ +#define XK_EuroSign 0x20ac + +#endif diff --git a/server/libvncserver/rfb/rfb.h b/server/libvncserver/rfb/rfb.h new file mode 100644 index 0000000..9aab2be --- /dev/null +++ b/server/libvncserver/rfb/rfb.h @@ -0,0 +1,608 @@ +#ifndef RFB_H +#define RFB_H + +/* + * rfb.h - header file for RFB DDX implementation. + */ + +/* + * Copyright (C) 2002 RealVNC Ltd. + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#if(defined __cplusplus) +extern "C" +{ +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "rfbproto.h" +#include "rfbregion.h" +#ifdef VINO_HAVE_GNUTLS +#include <gnutls/gnutls.h> +#endif + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif + +#ifndef HAVE_NETINET_IN_H +#include <netinet/in.h> +#endif + +#define LOCK(mutex) +#define UNLOCK(mutex) + +/* end of stuff for autoconf */ + +#define RFB_MAX_SOCKETLISTEN 8 /* is the max listen by network interface */ + +struct _rfbClientRec; +struct _rfbScreenInfo; +struct rfbCursor; + +enum rfbNewClientAction { + RFB_CLIENT_ACCEPT, + RFB_CLIENT_ON_HOLD, + RFB_CLIENT_REFUSE +}; + +typedef void (*KbdAddEventProcPtr) (rfbBool down, rfbKeySym keySym, struct _rfbClientRec* cl); +typedef void (*PtrAddEventProcPtr) (int buttonMask, int x, int y, struct _rfbClientRec* cl); +typedef void (*SetXCutTextProcPtr) (char* str,int len, struct _rfbClientRec* cl); +typedef enum rfbNewClientAction (*PasswordCheckProcPtr)(struct _rfbClientRec* cl,const char* encryptedPassWord,int len); +typedef enum rfbNewClientAction (*NewClientHookPtr)(struct _rfbClientRec* cl); +typedef enum rfbNewClientAction (*AuthenticatedClientHookPtr)(struct _rfbClientRec* cl); + +typedef struct { + uint32_t count; + rfbBool is16; /* is the data format short? */ + union { + uint8_t* bytes; + uint16_t* shorts; + } data; /* there have to be count*3 entries */ +} rfbColourMap; + +/* + * Per-screen (framebuffer) structure. There can be as many as you wish, + * each serving different clients. However, you have to call + * rfbProcessEvents for each of these. + */ + +typedef struct _rfbScreenInfo +{ + int width; + int paddedWidthInBytes; + int height; + int depth; + int bitsPerPixel; + int sizeInBytes; + + rfbPixel blackPixel; + rfbPixel whitePixel; + + /* some screen specific data can be put into a struct where screenData + * points to. You need this if you have more than one screen at the + * same time while using the same functions. + */ + void* screenData; + + /* additions by libvncserver */ + + rfbPixelFormat rfbServerFormat; + rfbColourMap colourMap; /* set this if rfbServerFormat.trueColour==FALSE */ + char* desktopName; + char rfbThisHost[255]; + + rfbBool autoPort; + rfbBool localOnly; + int rfbPort; + SOCKET rfbListenSock[RFB_MAX_SOCKETLISTEN]; + int rfbListenSockTotal; + const char *netIface; + int maxSock; + int maxFd; + fd_set allFds; + + rfbBool socketInitDone; + SOCKET inetdSock; + rfbBool inetdInitDone; + + int rfbMaxClientWait; + + int securityTypes[RFB_MAX_N_SECURITY_TYPES]; + int nSecurityTypes; + int authTypes[RFB_MAX_N_AUTH_TYPES]; + int nAuthTypes; + PasswordCheckProcPtr passwordCheck; +#ifdef VINO_HAVE_GNUTLS + gnutls_anon_server_credentials anonCredentials; + gnutls_dh_params dhParams; +#endif + + /* send only this many rectangles in one update */ + int maxRectsPerUpdate; + /* this is the amount of milliseconds to wait at least before sending + * an update. */ + int rfbDeferUpdateTime; + char* rfbScreen; + rfbBool rfbAlwaysShared; + rfbBool rfbNeverShared; + rfbBool rfbDontDisconnect; + struct _rfbClientRec* rfbClientHead; + + /* cursor */ + int cursorX, cursorY,underCursorBufferLen; + char* underCursorBuffer; + struct rfbCursor* cursor; + + /* the frameBufferhas to be supplied by the serving process. + * The buffer will not be freed by + */ + char* frameBuffer; + KbdAddEventProcPtr kbdAddEvent; + PtrAddEventProcPtr ptrAddEvent; + SetXCutTextProcPtr setXCutText; + + /* newClientHook is called just after a new client is created */ + NewClientHookPtr newClientHook; + + /* authenticatedClientHook is called just after the client has + * been authenticated + */ + AuthenticatedClientHookPtr authenticatedClientHook; + +} rfbScreenInfo, *rfbScreenInfoPtr; + + +/* + * rfbTranslateFnType is the type of translation functions. + */ + +typedef void (*rfbTranslateFnType)(char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height); + + +/* region stuff */ + +typedef sraRegion* sraRegionPtr; +typedef sraRect* sraRectPtr; + +/* + * Per-client structure. + */ + +typedef void (*ClientGoneHookPtr)(struct _rfbClientRec* cl); + +typedef struct _rfbClientRec { + + /* back pointer to the screen */ + rfbScreenInfoPtr screen; + + /* private data. You should put any application client specific data + * into a struct and let clientData point to it. Don't forget to + * free the struct via clientGoneHook! + * + * This is useful if the IO functions have to behave client specific. + */ + void* clientData; + ClientGoneHookPtr clientGoneHook; + + SOCKET sock; +#ifdef VINO_HAVE_GNUTLS + gnutls_session tlsSession; + rfbBool useTLS; +#endif + char *host; + /* Possible client states: */ + enum { + RFB_PROTOCOL_VERSION, /* establishing protocol version */ + RFB_SECURITY_TYPE, /* negotiating security type */ +#ifdef VINO_HAVE_GNUTLS + RFB_TLS_HANDSHAKE, /* completing the TLS handshake */ +#endif + RFB_AUTH_TYPE, /* negotiating authentication type */ + RFB_AUTHENTICATION, /* authenticating */ + RFB_AUTH_DEFERRED, /* authentication deferred */ + RFB_INITIALISATION, /* sending initialisation messages */ + RFB_NORMAL /* normal protocol messages */ + } state; + + rfbBool onHold; + rfbBool readyForSetColourMapEntries; + rfbBool useCopyRect; + int minorVersion; + int preferredEncoding; + int correMaxWidth, correMaxHeight; + + rfbBool viewOnly; + + /* The following member is only used during VNC authentication */ + uint8_t authChallenge[CHALLENGESIZE]; + + /* The following members represent the update needed to get the client's + framebuffer from its present state to the current state of our + framebuffer. + + If the client does not accept CopyRect encoding then the update is + simply represented as the region of the screen which has been modified + (modifiedRegion). + + If the client does accept CopyRect encoding, then the update consists of + two parts. First we have a single copy from one region of the screen to + another (the destination of the copy is copyRegion), and second we have + the region of the screen which has been modified in some other way + (modifiedRegion). + + Although the copy is of a single region, this region may have many + rectangles. When sending an update, the copyRegion is always sent + before the modifiedRegion. This is because the modifiedRegion may + overlap parts of the screen which are in the source of the copy. + + In fact during normal processing, the modifiedRegion may even overlap + the destination copyRegion. Just before an update is sent we remove + from the copyRegion anything in the modifiedRegion. */ + + sraRegionPtr copyRegion; /* the destination region of the copy */ + int copyDX, copyDY; /* the translation by which the copy happens */ + + sraRegionPtr modifiedRegion; + + sraRect lastDrawnCursorBounds; + + /* As part of the FramebufferUpdateRequest, a client can express interest + in a subrectangle of the whole framebuffer. This is stored in the + requestedRegion member. In the normal case this is the whole + framebuffer if the client is ready, empty if it's not. */ + + sraRegionPtr requestedRegion; + + /* The following member represents the state of the "deferred update" timer + - when the framebuffer is modified and the client is ready, in most + cases it is more efficient to defer sending the update by a few + milliseconds so that several changes to the framebuffer can be combined + into a single update. */ + + struct timeval startDeferring; + + /* translateFn points to the translation function which is used to copy + and translate a rectangle from the framebuffer to an output buffer. */ + + rfbTranslateFnType translateFn; + char *translateLookupTable; + rfbPixelFormat format; + + /* + * UPDATE_BUF_SIZE must be big enough to send at least one whole line of the + * framebuffer. So for a max screen width of say 2K with 32-bit pixels this + * means 8K minimum. + */ + +#define UPDATE_BUF_SIZE 30000 + + char updateBuf[UPDATE_BUF_SIZE]; + int ublen; + + /* statistics */ + + int rfbBytesSent[MAX_ENCODINGS]; + int rfbRectanglesSent[MAX_ENCODINGS]; + int rfbLastRectMarkersSent; + int rfbLastRectBytesSent; + int rfbCursorShapeBytesSent; + int rfbCursorShapeUpdatesSent; + int rfbCursorPosBytesSent; + int rfbCursorPosUpdatesSent; + int rfbFramebufferUpdateMessagesSent; + int rfbRawBytesEquivalent; + int rfbKeyEventsRcvd; + int rfbPointerEventsRcvd; + +#ifdef VINO_HAVE_ZLIB + /* zlib encoding -- necessary compression state info per client */ + + struct z_stream_s compStream; + rfbBool compStreamInited; + uint32_t zlibCompressLevel; + +#ifdef VINO_HAVE_JPEG + /* tight encoding -- preserve zlib streams' state for each client */ + z_stream zsStruct[4]; + rfbBool zsActive[4]; + int zsLevel[4]; + int tightCompressLevel; + int tightQualityLevel; +#endif +#endif + + rfbBool enableLastRectEncoding; /* client supports LastRect encoding */ + rfbBool enableCursorUpdates; /* client supports cursor position and shape updates */ + rfbBool useRichCursorEncoding; /* rfbEncodingRichCursor is preferred */ + rfbBool cursorWasChanged; /* cursor shape update should be sent */ + rfbBool cursorWasMoved; /* cursor position update should be sent */ + + rfbBool useNewFBSize; /* client supports NewFBSize encoding */ + rfbBool newFBSizePending; /* framebuffer size was changed */ + + struct _rfbClientRec *prev; + struct _rfbClientRec *next; + +#ifdef VINO_HAVE_ZLIB + void* zrleData; +#endif + +} rfbClientRec, *rfbClientPtr; + +/* + * This macro is used to test whether there is a framebuffer update needing to + * be sent to the client. + */ + +#define FB_UPDATE_PENDING(cl) \ + (((cl)->enableCursorUpdates && ((cl)->cursorWasMoved || (cl)->cursorWasChanged)) || \ + ((cl)->useNewFBSize && (cl)->newFBSizePending) || \ + !sraRgnEmpty((cl)->copyRegion) || !sraRgnEmpty((cl)->modifiedRegion)) + +/* + * Macros for endian swapping. + */ + +#define Swap16(s) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)) + +#define Swap24(l) ((((l) & 0xff) << 16) | (((l) >> 16) & 0xff) | \ + (((l) & 0x00ff00))) + +#define Swap32(l) (((l) >> 24) | \ + (((l) & 0x00ff0000) >> 8) | \ + (((l) & 0x0000ff00) << 8) | \ + ((l) << 24)) + + +extern char rfbEndianTest; + +#define Swap16IfLE(s) (rfbEndianTest ? Swap16(s) : (s)) +#define Swap24IfLE(l) (rfbEndianTest ? Swap24(l) : (l)) +#define Swap32IfLE(l) (rfbEndianTest ? Swap32(l) : (l)) + +/* sockets.c */ + +extern int rfbMaxClientWait; + +extern void rfbInitSockets(rfbScreenInfoPtr rfbScreen); +extern void rfbSetAutoPort(rfbScreenInfoPtr rfbScreen, rfbBool autoPort); +extern void rfbSetPort(rfbScreenInfoPtr rfbScreen, int Port); +extern void rfbSetLocalOnly(rfbScreenInfoPtr rfbScreen, rfbBool localOnly); +extern void rfbCloseClient(rfbClientPtr cl); +extern int ReadExact(rfbClientPtr cl, char *buf, int len); +extern int ReadExactTimeout(rfbClientPtr cl, char *buf, int len,int timeout); +extern int ReadPending(rfbClientPtr cl); +extern int WriteExact(rfbClientPtr cl, const char *buf, int len); +extern void rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen, int insock); +extern void rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec); +extern rfbBool ListenOnTCPPort(rfbScreenInfoPtr rfbScreen, int port, const char *netIface); +extern rfbBool rfbSetNetworkInterface(rfbScreenInfoPtr rfbScreen, const char *netIface); +extern int NewSocketListenTCP(struct sockaddr *addr, socklen_t len); + +/* rfbserver.c */ + +extern rfbClientPtr pointerClient; + + +/* Routines to iterate over the client list in a thread-safe way. + Only a single iterator can be in use at a time process-wide. */ +typedef struct rfbClientIterator *rfbClientIteratorPtr; + +extern void rfbClientListInit(rfbScreenInfoPtr rfbScreen); +extern rfbClientIteratorPtr rfbGetClientIterator(rfbScreenInfoPtr rfbScreen); +extern rfbClientPtr rfbClientIteratorHead(rfbClientIteratorPtr iterator); +extern rfbClientPtr rfbClientIteratorNext(rfbClientIteratorPtr iterator); +extern void rfbReleaseClientIterator(rfbClientIteratorPtr iterator); + +extern void rfbNewClientConnection(rfbScreenInfoPtr rfbScreen,int sock); +extern rfbClientPtr rfbNewClient(rfbScreenInfoPtr rfbScreen,int sock); +extern void rfbClientConnectionGone(rfbClientPtr cl); +extern void rfbProcessClientMessage(rfbClientPtr cl); +extern void rfbProcessClientInitMessage(rfbClientPtr cl); +extern void rfbClientConnFailed(rfbClientPtr cl, char *reason); +extern rfbBool rfbSendFramebufferUpdate(rfbClientPtr cl, sraRegionPtr updateRegion); +extern rfbBool rfbSendRectEncodingRaw(rfbClientPtr cl, int x,int y,int w,int h); +extern rfbBool rfbSendUpdateBuf(rfbClientPtr cl); +extern void rfbSendServerCutText(rfbScreenInfoPtr rfbScreen,char *str, int len); +extern rfbBool rfbSendCopyRegion(rfbClientPtr cl,sraRegionPtr reg,int dx,int dy); +extern rfbBool rfbSendLastRectMarker(rfbClientPtr cl); +extern rfbBool rfbSendNewFBSize(rfbClientPtr cl, int w, int h); +extern rfbBool rfbSendSetColourMapEntries(rfbClientPtr cl, int firstColour, int nColours); +extern void rfbSendBell(rfbScreenInfoPtr rfbScreen); + +void rfbGotXCutText(rfbScreenInfoPtr rfbScreen, char *str, int len); + +/* translate.c */ + +extern rfbBool rfbEconomicTranslate; + +extern void rfbTranslateNone(char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height); +extern rfbBool rfbSetTranslateFunction(rfbClientPtr cl); +extern rfbBool rfbSetClientColourMap(rfbClientPtr cl, int firstColour, int nColours); +extern void rfbSetClientColourMaps(rfbScreenInfoPtr rfbScreen, int firstColour, int nColours); + + +/* auth.c */ + +extern void rfbAuthInitScreen(rfbScreenInfoPtr rfbScreen); +extern void rfbAuthCleanupScreen(rfbScreenInfoPtr rfbScreen); +extern void rfbAuthNewClient(rfbClientPtr cl); +extern void rfbAuthCleanupClient(rfbClientPtr cl); +extern void rfbAuthProcessSecurityTypeMessage(rfbClientPtr cl); +extern void rfbAuthProcessAuthTypeMessage(rfbClientPtr cl); +extern void rfbAuthProcessClientMessage(rfbClientPtr cl); +#ifdef VINO_HAVE_GNUTLS +extern void rfbAuthProcessTLSHandshake(rfbClientPtr cl); +#endif +extern void rfbAuthPasswordChecked(rfbClientPtr cl, enum rfbNewClientAction result); + + +/* rre.c */ + +extern rfbBool rfbSendRectEncodingRRE(rfbClientPtr cl, int x,int y,int w,int h); + + +/* corre.c */ + +extern rfbBool rfbSendRectEncodingCoRRE(rfbClientPtr cl, int x,int y,int w,int h); + + +/* hextile.c */ + +extern rfbBool rfbSendRectEncodingHextile(rfbClientPtr cl, int x, int y, int w, + int h); + + +#ifdef VINO_HAVE_ZLIB +/* zlib.c */ + +/* Minimum zlib rectangle size in bytes. Anything smaller will + * not compress well due to overhead. + */ +#define VNC_ENCODE_ZLIB_MIN_COMP_SIZE (17) + +/* Set maximum zlib rectangle size in pixels. Always allow at least + * two scan lines. + */ +#define ZLIB_MAX_RECT_SIZE (128*256) +#define ZLIB_MAX_SIZE(min) ((( min * 2 ) > ZLIB_MAX_RECT_SIZE ) ? \ + ( min * 2 ) : ZLIB_MAX_RECT_SIZE ) + +extern rfbBool rfbSendRectEncodingZlib(rfbClientPtr cl, int x, int y, int w, + int h); + +#ifdef VINO_HAVE_JPEG +/* tight.c */ + +#define TIGHT_DEFAULT_COMPRESSION 6 + +extern rfbBool rfbTightDisableGradient; + +extern void rfbTightCleanup(void); + +extern int rfbNumCodedRectsTight(rfbClientPtr cl, int x,int y,int w,int h); +extern rfbBool rfbSendRectEncodingTight(rfbClientPtr cl, int x,int y,int w,int h); +#endif +#endif + + +/* cursor.c */ + +typedef struct rfbCursor { + /* set this to true if LibVNCServer has to free this cursor */ + rfbBool cleanup, cleanupSource, cleanupMask, cleanupRichSource; + unsigned char *source; /* points to bits */ + unsigned char *mask; /* points to bits */ + unsigned short width, height, xhot, yhot; /* metrics */ + unsigned short foreRed, foreGreen, foreBlue; /* device-independent colour */ + unsigned short backRed, backGreen, backBlue; /* device-independent colour */ + unsigned char *richSource; /* source bytes for a rich cursor */ +} rfbCursor, *rfbCursorPtr; +extern unsigned char rfbReverseByte[0x100]; + +extern rfbBool rfbSendCursorShape(rfbClientPtr cl/*, rfbScreenInfoPtr pScreen*/); +extern rfbBool rfbSendCursorPos(rfbClientPtr cl); +extern void rfbConvertLSBCursorBitmapOrMask(int width,int height,unsigned char* bitmap); +extern rfbCursorPtr rfbMakeXCursor(int width,int height,const char* cursorString,const char* maskString); +extern char* rfbMakeMaskForXCursor(int width,int height,char* cursorString); +extern void MakeXCursorFromRichCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor); +extern void MakeRichCursorFromXCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr cursor); +extern void rfbFreeCursor(rfbCursorPtr cursor); +extern rfbBool rfbGetCursorBounds(rfbScreenInfoPtr screen, sraRectPtr bounds); +extern void rfbDrawCursor(rfbScreenInfoPtr rfbScreen, sraRectPtr bounds); +extern void rfbUndrawCursor(rfbScreenInfoPtr rfbScreen, sraRectPtr bounds); +extern void rfbSetCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr c,rfbBool freeOld); +extern void rfbSetCursorPosition(rfbScreenInfoPtr rfbScreen, rfbClientPtr client, int x, int y); + +/* cursor handling for the pointer */ +extern void defaultPtrAddEvent(int buttonMask,int x,int y,rfbClientPtr cl); + +/* zrle.c */ +#ifdef VINO_HAVE_ZLIB +extern rfbBool rfbSendRectEncodingZRLE(rfbClientPtr cl, int x, int y, int w,int h); +extern void FreeZrleData(rfbClientPtr cl); +#endif + +/* stats.c */ + +extern void rfbResetStats(rfbClientPtr cl); +extern void rfbPrintStats(rfbClientPtr cl); + +/* main.c */ + +extern void rfbLogEnable(int enabled); +typedef void (*rfbLogProc)(const char *format, ...); +extern rfbLogProc rfbLog, rfbErr; +extern void rfbLogPerror(const char *str); + +void rfbScheduleCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy); +void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy); + +void rfbDoCopyRect(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2,int dx,int dy); +void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy); + +void rfbMarkRectAsModified(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y2); +void rfbMarkRegionAsModified(rfbScreenInfoPtr rfbScreen,sraRegionPtr modRegion); +enum rfbNewClientAction defaultNewClientHook(rfbClientPtr cl); + +/* functions to make a vnc server */ +extern rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv, + int width,int height,int bitsPerSample,int samplesPerPixel, + int bytesPerPixel); +extern void rfbInitServer(rfbScreenInfoPtr rfbScreen); +extern void rfbNewFramebuffer(rfbScreenInfoPtr rfbScreen,char *framebuffer, + int width,int height); + +extern void rfbSetDesktopName(rfbScreenInfoPtr rfbScreen, const char *name); + +extern void rfbScreenCleanup(rfbScreenInfoPtr screenInfo); + +/* call one of these two functions to service the vnc clients. + usec are the microseconds the select on the fds waits. + if you are using the event loop, set this to some value > 0, so the + server doesn't get a high load just by listening. */ + +extern void rfbRunEventLoop(rfbScreenInfoPtr screenInfo, long usec, rfbBool runInBackground); +extern void rfbProcessEvents(rfbScreenInfoPtr screenInfo,long usec); +extern void rfbUpdateClient(rfbClientPtr cl); + +extern void rfbAddSecurityType(rfbScreenInfoPtr rfbScreen, int securityType); +extern void rfbClearSecurityTypes(rfbScreenInfoPtr rfbScreen); +extern void rfbAddAuthType(rfbScreenInfoPtr rfbScreen, int securityType); +extern void rfbClearAuthTypes(rfbScreenInfoPtr rfbScreen); + +#endif + +#if(defined __cplusplus) +} +#endif diff --git a/server/libvncserver/rfb/rfbproto.h b/server/libvncserver/rfb/rfbproto.h new file mode 100644 index 0000000..ba98a4f --- /dev/null +++ b/server/libvncserver/rfb/rfbproto.h @@ -0,0 +1,1047 @@ +#ifndef RFBPROTO_H +#define RFBPROTO_H + +/* + * Copyright (C) 2000-2002 Constantin Kaplinsky. All Rights Reserved. + * Copyright (C) 2000 Tridia Corporation. All Rights Reserved. + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/* + * rfbproto.h - header file for the RFB protocol version 3.3 + * + * Uses types CARD<n> for an n-bit unsigned integer, INT<n> for an n-bit signed + * integer (for n = 8, 16 and 32). + * + * All multiple byte integers are in big endian (network) order (most + * significant byte first). Unless noted otherwise there is no special + * alignment of protocol structures. + * + * + * Once the initial handshaking is done, all messages start with a type byte, + * (usually) followed by message-specific data. The order of definitions in + * this file is as follows: + * + * (1) Structures used in several types of message. + * (2) Structures used in the initial handshaking. + * (3) Message types. + * (4) Encoding types. + * (5) For each message type, the form of the data following the type byte. + * Sometimes this is defined by a single structure but the more complex + * messages have to be explained by comments. + */ + + +#if defined(WIN32) +#define WORDS_BIGENDIAN +#define rfbBool int +#include <sys/timeb.h> +#include <winsock.h> +#undef SOCKET +#define SOCKET int +#else +#if 0 +#include <rfb/rfbconfig.h> +#include <rfb/rfbint.h> +#else +#include <config.h> +#ifdef HAVE_STDINT_H +#include <stdint.h> +#endif +#endif +#endif +#include "keysym.h" + +#ifdef VINO_HAVE_ZLIB +#include <zlib.h> +#endif + + +#if !defined(WIN32) +#define max(a,b) (((a)>(b))?(a):(b)) +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif +#ifdef HAVE_NETINET_IN_H +#include <netinet/in.h> +#endif +#define SOCKET int +typedef int8_t rfbBool; +#undef FALSE +#define FALSE 0 +#undef TRUE +#define TRUE 1 +#endif + +typedef uint32_t rfbKeySym; +typedef uint32_t rfbPixel; + +#ifndef INADDR_NONE +#define INADDR_NONE ((in_addr_t) 0xffffffff) +#endif + +#define MAX_ENCODINGS 20 + +/***************************************************************************** + * + * Structures used in several messages + * + *****************************************************************************/ + +/*----------------------------------------------------------------------------- + * Structure used to specify a rectangle. This structure is a multiple of 4 + * bytes so that it can be interspersed with 32-bit pixel data without + * affecting alignment. + */ + +typedef struct { + uint16_t x; + uint16_t y; + uint16_t w; + uint16_t h; +} rfbRectangle; + +#define sz_rfbRectangle 8 + + +/*----------------------------------------------------------------------------- + * Structure used to specify pixel format. + */ + +typedef struct { + + uint8_t bitsPerPixel; /* 8,16,32 only */ + + uint8_t depth; /* 8 to 32 */ + + uint8_t bigEndian; /* True if multi-byte pixels are interpreted + as big endian, or if single-bit-per-pixel + has most significant bit of the byte + corresponding to first (leftmost) pixel. Of + course this is meaningless for 8 bits/pix */ + + uint8_t trueColour; /* If false then we need a "colour map" to + convert pixels to RGB. If true, xxxMax and + xxxShift specify bits used for red, green + and blue */ + + /* the following fields are only meaningful if trueColour is true */ + + uint16_t redMax; /* maximum red value (= 2^n - 1 where n is the + number of bits used for red). Note this + value is always in big endian order. */ + + uint16_t greenMax; /* similar for green */ + + uint16_t blueMax; /* and blue */ + + uint8_t redShift; /* number of shifts needed to get the red + value in a pixel to the least significant + bit. To find the red value from a given + pixel, do the following: + 1) Swap pixel value according to bigEndian + (e.g. if bigEndian is false and host byte + order is big endian, then swap). + 2) Shift right by redShift. + 3) AND with redMax (in host byte order). + 4) You now have the red value between 0 and + redMax. */ + + uint8_t greenShift; /* similar for green */ + + uint8_t blueShift; /* and blue */ + + uint8_t pad1; + uint16_t pad2; + +} rfbPixelFormat; + +#define sz_rfbPixelFormat 16 + + + +/***************************************************************************** + * + * Initial handshaking messages + * + *****************************************************************************/ + +/*----------------------------------------------------------------------------- + * Protocol Version + * + * The server always sends 12 bytes to start which identifies the latest RFB + * protocol version number which it supports. These bytes are interpreted + * as a string of 12 ASCII characters in the format "RFB xxx.yyy\n" where + * xxx and yyy are the major and minor version numbers (for version 3.3 + * this is "RFB 003.003\n"). + * + * The client then replies with a similar 12-byte message giving the version + * number of the protocol which should actually be used (which may be different + * to that quoted by the server). + * + * It is intended that both clients and servers may provide some level of + * backwards compatibility by this mechanism. Servers in particular should + * attempt to provide backwards compatibility, and even forwards compatibility + * to some extent. For example if a client demands version 3.1 of the + * protocol, a 3.0 server can probably assume that by ignoring requests for + * encoding types it doesn't understand, everything will still work OK. This + * will probably not be the case for changes in the major version number. + * + * The format string below can be used in sprintf or sscanf to generate or + * decode the version string respectively. + */ + +/* At this time, the official protocol versions are 3.3 and 3.7. + * + * Version 3.7 adds security type negotiation. + */ +#define rfbProtocolVersionFormat "RFB %03d.%03d\n" +#define rfbProtocolMajorVersion 3 +#define rfbProtocolMinorVersion3 3 +#define rfbProtocolMinorVersion7 7 +#define rfbProtocolMinorVersion8 8 + +typedef char rfbProtocolVersionMsg[13]; /* allow extra byte for null */ + +#define sz_rfbProtocolVersionMsg 12 + + +/*----------------------------------------------------------------------------- + * Authentication + * + * Once the protocol version has been decided, the server and client must agree + * on the type of security to be used on the connection. + * + * With Version 3.7 of the protocol, the server lists the security types it + * supports: + */ + +/* rfbNoAuth, rfbVncAuth and rfbTLS */ +#define RFB_MAX_N_SECURITY_TYPES 3 + +typedef struct { + uint8_t nSecurityTypes; + uint8_t securityTypes[RFB_MAX_N_SECURITY_TYPES]; +} rfbSecurityTypesMsg; + + +/* If the client and server decide on using the TLS security type, they must + * then negotiate the authentication type in a similar manner + */ + +/* rfbNoAuth and rfbVncAuth */ +#define RFB_MAX_N_AUTH_TYPES 3 + +typedef struct { + uint8_t nAuthTypes; + uint8_t authTypes[RFB_MAX_N_AUTH_TYPES]; +} rfbAuthTypesMsg; + + +/* If the server listed at least one valid security type supported by the client, + * the client sends back a single byte indicating which security type is to be + * used on the connection. + * + * If nSecurityTypes is zero, the for some reason the connection failed + * (e.g. the server cannot support the desirred protocol version). This + * is followed by a string describing the reason (where a string is specified + * as a length followed by that many ASCII characters): + */ + +typedef struct { + uint32_t reasonLength; + uint8_t reasonString[1]; +} rfbFailureReasonMsg; + +/* With Version 3.3 of the protocol, once the protocol version has been agreed, + * the server then sends a 32-bit word indicating the security type which is to + * be used on the connection. A value of zero indicates that the connection has + * failed and is followed by a reason string as above. + */ + + +/* The following security types have been defined at this time: + */ +#define rfbNoAuth 1 +#define rfbVncAuth 2 + +/* Allocated security type for TLS */ +#ifdef VINO_HAVE_GNUTLS +#define rfbTLS 18 +#endif + +/* + * rfbNoAuth: No authentication is needed. + * + * rfbVncAuth: The VNC authentication scheme is to be used. A 16-byte + * challenge follows, which the client encrypts as + * appropriate using the password and sends the resulting + * 16-byte response. If the response is correct, the + * server sends the 32-bit word rfbVncAuthOK. If a simple + * failure happens, the server sends rfbVncAuthFailed and + * closes the connection. If the server decides that too + * many failures have occurred, it sends rfbVncAuthTooMany + * and closes the connection. In the latter case, the + * server should not allow an immediate reconnection by + * the client. + * + * rfbTLS: A TLS handshake is initiated immediately by the client + * using anonymous Diffie Hellman key exchange. Once the + * handshake is complete, the server then sends the list + * of authentication types it supports (NoAuth or VncAuth) + * and the client responds with its chosen authentication + * method. This negotiation is identical to the security + * type negotiation. + */ + +#define rfbVncAuthOK 0 +#define rfbVncAuthFailed 1 +#define rfbVncAuthTooMany 2 + + +/*----------------------------------------------------------------------------- + * Client Initialisation Message + * + * Once the client and server are sure that they're happy to talk to one + * another, the client sends an initialisation message. At present this + * message only consists of a boolean indicating whether the server should try + * to share the desktop by leaving other clients connected, or give exclusive + * access to this client by disconnecting all other clients. + */ + +typedef struct { + uint8_t shared; +} rfbClientInitMsg; + +#define sz_rfbClientInitMsg 1 + + +/*----------------------------------------------------------------------------- + * Server Initialisation Message + * + * After the client initialisation message, the server sends one of its own. + * This tells the client the width and height of the server's framebuffer, + * its pixel format and the name associated with the desktop. + */ + +typedef struct { + uint16_t framebufferWidth; + uint16_t framebufferHeight; + rfbPixelFormat format; /* the server's preferred pixel format */ + uint32_t nameLength; + /* followed by char name[nameLength] */ +} rfbServerInitMsg; + +#define sz_rfbServerInitMsg (8 + sz_rfbPixelFormat) + + +/* + * Following the server initialisation message it's up to the client to send + * whichever protocol messages it wants. Typically it will send a + * SetPixelFormat message and a SetEncodings message, followed by a + * FramebufferUpdateRequest. From then on the server will send + * FramebufferUpdate messages in response to the client's + * FramebufferUpdateRequest messages. The client should send + * FramebufferUpdateRequest messages with incremental set to true when it has + * finished processing one FramebufferUpdate and is ready to process another. + * With a fast client, the rate at which FramebufferUpdateRequests are sent + * should be regulated to avoid hogging the network. + */ + + + +/***************************************************************************** + * + * Message types + * + *****************************************************************************/ + +/* server -> client */ + +#define rfbFramebufferUpdate 0 +#define rfbSetColourMapEntries 1 +#define rfbBell 2 +#define rfbServerCutText 3 + +/* client -> server */ + +#define rfbSetPixelFormat 0 +#define rfbFixColourMapEntries 1 /* not currently supported */ +#define rfbSetEncodings 2 +#define rfbFramebufferUpdateRequest 3 +#define rfbKeyEvent 4 +#define rfbPointerEvent 5 +#define rfbClientCutText 6 + + + + +/***************************************************************************** + * + * Encoding types + * + *****************************************************************************/ + +#define rfbEncodingRaw 0 +#define rfbEncodingCopyRect 1 +#define rfbEncodingRRE 2 +#define rfbEncodingCoRRE 4 +#define rfbEncodingHextile 5 +#define rfbEncodingZlib 6 +#define rfbEncodingTight 7 +#define rfbEncodingZlibHex 8 +#define rfbEncodingZRLE 16 + +/* + * Special encoding numbers: + * 0xFFFFFF00 .. 0xFFFFFF0F -- encoding-specific compression levels; + * 0xFFFFFF10 .. 0xFFFFFF1F -- mouse cursor shape data; + * 0xFFFFFF20 .. 0xFFFFFF2F -- various protocol extensions; + * 0xFFFFFF30 .. 0xFFFFFFDF -- not allocated yet; + * 0xFFFFFFE0 .. 0xFFFFFFEF -- quality level for JPEG compressor; + * 0xFFFFFFF0 .. 0xFFFFFFFF -- cross-encoding compression levels. + */ + +#define rfbEncodingCompressLevel0 0xFFFFFF00 +#define rfbEncodingCompressLevel1 0xFFFFFF01 +#define rfbEncodingCompressLevel2 0xFFFFFF02 +#define rfbEncodingCompressLevel3 0xFFFFFF03 +#define rfbEncodingCompressLevel4 0xFFFFFF04 +#define rfbEncodingCompressLevel5 0xFFFFFF05 +#define rfbEncodingCompressLevel6 0xFFFFFF06 +#define rfbEncodingCompressLevel7 0xFFFFFF07 +#define rfbEncodingCompressLevel8 0xFFFFFF08 +#define rfbEncodingCompressLevel9 0xFFFFFF09 + +#define rfbEncodingXCursor 0xFFFFFF10 +#define rfbEncodingRichCursor 0xFFFFFF11 +#define rfbEncodingPointerPos 0xFFFFFF18 + +#define rfbEncodingLastRect 0xFFFFFF20 +#define rfbEncodingNewFBSize 0xFFFFFF21 + +#define rfbEncodingQualityLevel0 0xFFFFFFE0 +#define rfbEncodingQualityLevel1 0xFFFFFFE1 +#define rfbEncodingQualityLevel2 0xFFFFFFE2 +#define rfbEncodingQualityLevel3 0xFFFFFFE3 +#define rfbEncodingQualityLevel4 0xFFFFFFE4 +#define rfbEncodingQualityLevel5 0xFFFFFFE5 +#define rfbEncodingQualityLevel6 0xFFFFFFE6 +#define rfbEncodingQualityLevel7 0xFFFFFFE7 +#define rfbEncodingQualityLevel8 0xFFFFFFE8 +#define rfbEncodingQualityLevel9 0xFFFFFFE9 + + +/***************************************************************************** + * + * Server -> client message definitions + * + *****************************************************************************/ + + +/*----------------------------------------------------------------------------- + * FramebufferUpdate - a block of rectangles to be copied to the framebuffer. + * + * This message consists of a header giving the number of rectangles of pixel + * data followed by the rectangles themselves. The header is padded so that + * together with the type byte it is an exact multiple of 4 bytes (to help + * with alignment of 32-bit pixels): + */ + +typedef struct { + uint8_t type; /* always rfbFramebufferUpdate */ + uint8_t pad; + uint16_t nRects; + /* followed by nRects rectangles */ +} rfbFramebufferUpdateMsg; + +#define sz_rfbFramebufferUpdateMsg 4 + +/* + * Each rectangle of pixel data consists of a header describing the position + * and size of the rectangle and a type word describing the encoding of the + * pixel data, followed finally by the pixel data. Note that if the client has + * not sent a SetEncodings message then it will only receive raw pixel data. + * Also note again that this structure is a multiple of 4 bytes. + */ + +typedef struct { + rfbRectangle r; + uint32_t encoding; /* one of the encoding types rfbEncoding... */ +} rfbFramebufferUpdateRectHeader; + +#define sz_rfbFramebufferUpdateRectHeader (sz_rfbRectangle + 4) + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Raw Encoding. Pixels are sent in top-to-bottom scanline order, + * left-to-right within a scanline with no padding in between. + */ + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * CopyRect Encoding. The pixels are specified simply by the x and y position + * of the source rectangle. + */ + +typedef struct { + uint16_t srcX; + uint16_t srcY; +} rfbCopyRect; + +#define sz_rfbCopyRect 4 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * RRE - Rise-and-Run-length Encoding. We have an rfbRREHeader structure + * giving the number of subrectangles following. Finally the data follows in + * the form [<bgpixel><subrect><subrect>...] where each <subrect> is + * [<pixel><rfbRectangle>]. + */ + +typedef struct { + uint32_t nSubrects; +} rfbRREHeader; + +#define sz_rfbRREHeader 4 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * CoRRE - Compact RRE Encoding. We have an rfbRREHeader structure giving + * the number of subrectangles following. Finally the data follows in the form + * [<bgpixel><subrect><subrect>...] where each <subrect> is + * [<pixel><rfbCoRRERectangle>]. This means that + * the whole rectangle must be at most 255x255 pixels. + */ + +typedef struct { + uint8_t x; + uint8_t y; + uint8_t w; + uint8_t h; +} rfbCoRRERectangle; + +#define sz_rfbCoRRERectangle 4 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Hextile Encoding. The rectangle is divided up into "tiles" of 16x16 pixels, + * starting at the top left going in left-to-right, top-to-bottom order. If + * the width of the rectangle is not an exact multiple of 16 then the width of + * the last tile in each row will be correspondingly smaller. Similarly if the + * height is not an exact multiple of 16 then the height of each tile in the + * final row will also be smaller. Each tile begins with a "subencoding" type + * byte, which is a mask made up of a number of bits. If the Raw bit is set + * then the other bits are irrelevant; w*h pixel values follow (where w and h + * are the width and height of the tile). Otherwise the tile is encoded in a + * similar way to RRE, except that the position and size of each subrectangle + * can be specified in just two bytes. The other bits in the mask are as + * follows: + * + * BackgroundSpecified - if set, a pixel value follows which specifies + * the background colour for this tile. The first non-raw tile in a + * rectangle must have this bit set. If this bit isn't set then the + * background is the same as the last tile. + * + * ForegroundSpecified - if set, a pixel value follows which specifies + * the foreground colour to be used for all subrectangles in this tile. + * If this bit is set then the SubrectsColoured bit must be zero. + * + * AnySubrects - if set, a single byte follows giving the number of + * subrectangles following. If not set, there are no subrectangles (i.e. + * the whole tile is just solid background colour). + * + * SubrectsColoured - if set then each subrectangle is preceded by a pixel + * value giving the colour of that subrectangle. If not set, all + * subrectangles are the same colour, the foreground colour; if the + * ForegroundSpecified bit wasn't set then the foreground is the same as + * the last tile. + * + * The position and size of each subrectangle is specified in two bytes. The + * Pack macros below can be used to generate the two bytes from x, y, w, h, + * and the Extract macros can be used to extract the x, y, w, h values from + * the two bytes. + */ + +#define rfbHextileRaw (1 << 0) +#define rfbHextileBackgroundSpecified (1 << 1) +#define rfbHextileForegroundSpecified (1 << 2) +#define rfbHextileAnySubrects (1 << 3) +#define rfbHextileSubrectsColoured (1 << 4) + +#define rfbHextilePackXY(x,y) (((x) << 4) | (y)) +#define rfbHextilePackWH(w,h) ((((w)-1) << 4) | ((h)-1)) +#define rfbHextileExtractX(byte) ((byte) >> 4) +#define rfbHextileExtractY(byte) ((byte) & 0xf) +#define rfbHextileExtractW(byte) (((byte) >> 4) + 1) +#define rfbHextileExtractH(byte) (((byte) & 0xf) + 1) + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * zlib - zlib compressed Encoding. We have an rfbZlibHeader structure + * giving the number of bytes following. Finally the data follows is + * zlib compressed version of the raw pixel data as negotiated. + */ + +typedef struct { + uint32_t nBytes; +} rfbZlibHeader; + +#define sz_rfbZlibHeader 4 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * Tight Encoding. + * + *-- The first byte of each Tight-encoded rectangle is a "compression control + * byte". Its format is as follows (bit 0 is the least significant one): + * + * bit 0: if 1, then compression stream 0 should be reset; + * bit 1: if 1, then compression stream 1 should be reset; + * bit 2: if 1, then compression stream 2 should be reset; + * bit 3: if 1, then compression stream 3 should be reset; + * bits 7-4: if 1000 (0x08), then the compression type is "fill", + * if 1001 (0x09), then the compression type is "jpeg", + * if 0xxx, then the compression type is "basic", + * values greater than 1001 are not valid. + * + * If the compression type is "basic", then bits 6..4 of the + * compression control byte (those xxx in 0xxx) specify the following: + * + * bits 5-4: decimal representation is the index of a particular zlib + * stream which should be used for decompressing the data; + * bit 6: if 1, then a "filter id" byte is following this byte. + * + *-- The data that follows after the compression control byte described + * above depends on the compression type ("fill", "jpeg" or "basic"). + * + *-- If the compression type is "fill", then the only pixel value follows, in + * client pixel format (see NOTE 1). This value applies to all pixels of the + * rectangle. + * + *-- If the compression type is "jpeg", the following data stream looks like + * this: + * + * 1..3 bytes: data size (N) in compact representation; + * N bytes: JPEG image. + * + * Data size is compactly represented in one, two or three bytes, according + * to the following scheme: + * + * 0xxxxxxx (for values 0..127) + * 1xxxxxxx 0yyyyyyy (for values 128..16383) + * 1xxxxxxx 1yyyyyyy zzzzzzzz (for values 16384..4194303) + * + * Here each character denotes one bit, xxxxxxx are the least significant 7 + * bits of the value (bits 0-6), yyyyyyy are bits 7-13, and zzzzzzzz are the + * most significant 8 bits (bits 14-21). For example, decimal value 10000 + * should be represented as two bytes: binary 10010000 01001110, or + * hexadecimal 90 4E. + * + *-- If the compression type is "basic" and bit 6 of the compression control + * byte was set to 1, then the next (second) byte specifies "filter id" which + * tells the decoder what filter type was used by the encoder to pre-process + * pixel data before the compression. The "filter id" byte can be one of the + * following: + * + * 0: no filter ("copy" filter); + * 1: "palette" filter; + * 2: "gradient" filter. + * + *-- If bit 6 of the compression control byte is set to 0 (no "filter id" + * byte), or if the filter id is 0, then raw pixel values in the client + * format (see NOTE 1) will be compressed. See below details on the + * compression. + * + *-- The "gradient" filter pre-processes pixel data with a simple algorithm + * which converts each color component to a difference between a "predicted" + * intensity and the actual intensity. Such a technique does not affect + * uncompressed data size, but helps to compress photo-like images better. + * Pseudo-code for converting intensities to differences is the following: + * + * P[i,j] := V[i-1,j] + V[i,j-1] - V[i-1,j-1]; + * if (P[i,j] < 0) then P[i,j] := 0; + * if (P[i,j] > MAX) then P[i,j] := MAX; + * D[i,j] := V[i,j] - P[i,j]; + * + * Here V[i,j] is the intensity of a color component for a pixel at + * coordinates (i,j). MAX is the maximum value of intensity for a color + * component. + * + *-- The "palette" filter converts true-color pixel data to indexed colors + * and a palette which can consist of 2..256 colors. If the number of colors + * is 2, then each pixel is encoded in 1 bit, otherwise 8 bits is used to + * encode one pixel. 1-bit encoding is performed such way that the most + * significant bits correspond to the leftmost pixels, and each raw of pixels + * is aligned to the byte boundary. When "palette" filter is used, the + * palette is sent before the pixel data. The palette begins with an unsigned + * byte which value is the number of colors in the palette minus 1 (i.e. 1 + * means 2 colors, 255 means 256 colors in the palette). Then follows the + * palette itself which consist of pixel values in client pixel format (see + * NOTE 1). + * + *-- The pixel data is compressed using the zlib library. But if the data + * size after applying the filter but before the compression is less then 12, + * then the data is sent as is, uncompressed. Four separate zlib streams + * (0..3) can be used and the decoder should read the actual stream id from + * the compression control byte (see NOTE 2). + * + * If the compression is not used, then the pixel data is sent as is, + * otherwise the data stream looks like this: + * + * 1..3 bytes: data size (N) in compact representation; + * N bytes: zlib-compressed data. + * + * Data size is compactly represented in one, two or three bytes, just like + * in the "jpeg" compression method (see above). + * + *-- NOTE 1. If the color depth is 24, and all three color components are + * 8-bit wide, then one pixel in Tight encoding is always represented by + * three bytes, where the first byte is red component, the second byte is + * green component, and the third byte is blue component of the pixel color + * value. This applies to colors in palettes as well. + * + *-- NOTE 2. The decoder must reset compression streams' states before + * decoding the rectangle, if some of bits 0,1,2,3 in the compression control + * byte are set to 1. Note that the decoder must reset zlib streams even if + * the compression type is "fill" or "jpeg". + * + *-- NOTE 3. The "gradient" filter and "jpeg" compression may be used only + * when bits-per-pixel value is either 16 or 32, not 8. + * + *-- NOTE 4. The width of any Tight-encoded rectangle cannot exceed 2048 + * pixels. If a rectangle is wider, it must be split into several rectangles + * and each one should be encoded separately. + * + */ + +#define rfbTightExplicitFilter 0x04 +#define rfbTightFill 0x08 +#define rfbTightJpeg 0x09 +#define rfbTightMaxSubencoding 0x09 + +/* Filters to improve compression efficiency */ +#define rfbTightFilterCopy 0x00 +#define rfbTightFilterPalette 0x01 +#define rfbTightFilterGradient 0x02 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * XCursor encoding. This is a special encoding used to transmit X-style + * cursor shapes from server to clients. Note that for this encoding, + * coordinates in rfbFramebufferUpdateRectHeader structure hold hotspot + * position (r.x, r.y) and cursor size (r.w, r.h). If (w * h != 0), two RGB + * samples are sent after header in the rfbXCursorColors structure. They + * denote foreground and background colors of the cursor. If a client + * supports only black-and-white cursors, it should ignore these colors and + * assume that foreground is black and background is white. Next, two bitmaps + * (1 bits per pixel) follow: first one with actual data (value 0 denotes + * background color, value 1 denotes foreground color), second one with + * transparency data (bits with zero value mean that these pixels are + * transparent). Both bitmaps represent cursor data in a byte stream, from + * left to right, from top to bottom, and each row is byte-aligned. Most + * significant bits correspond to leftmost pixels. The number of bytes in + * each row can be calculated as ((w + 7) / 8). If (w * h == 0), cursor + * should be hidden (or default local cursor should be set by the client). + */ + +typedef struct { + uint8_t foreRed; + uint8_t foreGreen; + uint8_t foreBlue; + uint8_t backRed; + uint8_t backGreen; + uint8_t backBlue; +} rfbXCursorColors; + +#define sz_rfbXCursorColors 6 + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * RichCursor encoding. This is a special encoding used to transmit cursor + * shapes from server to clients. It is similar to the XCursor encoding but + * uses client pixel format instead of two RGB colors to represent cursor + * image. For this encoding, coordinates in rfbFramebufferUpdateRectHeader + * structure hold hotspot position (r.x, r.y) and cursor size (r.w, r.h). + * After header, two pixmaps follow: first one with cursor image in current + * client pixel format (like in raw encoding), second with transparency data + * (1 bit per pixel, exactly the same format as used for transparency bitmap + * in the XCursor encoding). If (w * h == 0), cursor should be hidden (or + * default local cursor should be set by the client). + */ + + +/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * ZRLE - encoding combining Zlib compression, tiling, palettisation and + * run-length encoding. + */ + +typedef struct { + uint32_t length; +} rfbZRLEHeader; + +#define sz_rfbZRLEHeader 4 + +#define rfbZRLETileWidth 64 +#define rfbZRLETileHeight 64 + + +/*----------------------------------------------------------------------------- + * SetColourMapEntries - these messages are only sent if the pixel + * format uses a "colour map" (i.e. trueColour false) and the client has not + * fixed the entire colour map using FixColourMapEntries. In addition they + * will only start being sent after the client has sent its first + * FramebufferUpdateRequest. So if the client always tells the server to use + * trueColour then it never needs to process this type of message. + */ + +typedef struct { + uint8_t type; /* always rfbSetColourMapEntries */ + uint8_t pad; + uint16_t firstColour; + uint16_t nColours; + + /* Followed by nColours * 3 * uint16_t + r1, g1, b1, r2, g2, b2, r3, g3, b3, ..., rn, bn, gn */ + +} rfbSetColourMapEntriesMsg; + +#define sz_rfbSetColourMapEntriesMsg 6 + + + +/*----------------------------------------------------------------------------- + * Bell - ring a bell on the client if it has one. + */ + +typedef struct { + uint8_t type; /* always rfbBell */ +} rfbBellMsg; + +#define sz_rfbBellMsg 1 + + + +/*----------------------------------------------------------------------------- + * ServerCutText - the server has new text in its cut buffer. + */ + +typedef struct { + uint8_t type; /* always rfbServerCutText */ + uint8_t pad1; + uint16_t pad2; + uint32_t length; + /* followed by char text[length] */ +} rfbServerCutTextMsg; + +#define sz_rfbServerCutTextMsg 8 + + +/*----------------------------------------------------------------------------- + * Union of all server->client messages. + */ + +typedef union { + uint8_t type; + rfbFramebufferUpdateMsg fu; + rfbSetColourMapEntriesMsg scme; + rfbBellMsg b; + rfbServerCutTextMsg sct; +} rfbServerToClientMsg; + + + +/***************************************************************************** + * + * Message definitions (client -> server) + * + *****************************************************************************/ + + +/*----------------------------------------------------------------------------- + * SetPixelFormat - tell the RFB server the format in which the client wants + * pixels sent. + */ + +typedef struct { + uint8_t type; /* always rfbSetPixelFormat */ + uint8_t pad1; + uint16_t pad2; + rfbPixelFormat format; +} rfbSetPixelFormatMsg; + +#define sz_rfbSetPixelFormatMsg (sz_rfbPixelFormat + 4) + + +/*----------------------------------------------------------------------------- + * FixColourMapEntries - when the pixel format uses a "colour map", fix + * read-only colour map entries. + * + * ***************** NOT CURRENTLY SUPPORTED ***************** + */ + +typedef struct { + uint8_t type; /* always rfbFixColourMapEntries */ + uint8_t pad; + uint16_t firstColour; + uint16_t nColours; + + /* Followed by nColours * 3 * uint16_t + r1, g1, b1, r2, g2, b2, r3, g3, b3, ..., rn, bn, gn */ + +} rfbFixColourMapEntriesMsg; + +#define sz_rfbFixColourMapEntriesMsg 6 + + +/*----------------------------------------------------------------------------- + * SetEncodings - tell the RFB server which encoding types we accept. Put them + * in order of preference, if we have any. We may always receive raw + * encoding, even if we don't specify it here. + */ + +typedef struct { + uint8_t type; /* always rfbSetEncodings */ + uint8_t pad; + uint16_t nEncodings; + /* followed by nEncodings * uint32_t encoding types */ +} rfbSetEncodingsMsg; + +#define sz_rfbSetEncodingsMsg 4 + + +/*----------------------------------------------------------------------------- + * FramebufferUpdateRequest - request for a framebuffer update. If incremental + * is true then the client just wants the changes since the last update. If + * false then it wants the whole of the specified rectangle. + */ + +typedef struct { + uint8_t type; /* always rfbFramebufferUpdateRequest */ + uint8_t incremental; + uint16_t x; + uint16_t y; + uint16_t w; + uint16_t h; +} rfbFramebufferUpdateRequestMsg; + +#define sz_rfbFramebufferUpdateRequestMsg 10 + + +/*----------------------------------------------------------------------------- + * KeyEvent - key press or release + * + * Keys are specified using the "keysym" values defined by the X Window System. + * For most ordinary keys, the keysym is the same as the corresponding ASCII + * value. Other common keys are: + * + * BackSpace 0xff08 + * Tab 0xff09 + * Return or Enter 0xff0d + * Escape 0xff1b + * Insert 0xff63 + * Delete 0xffff + * Home 0xff50 + * End 0xff57 + * Page Up 0xff55 + * Page Down 0xff56 + * Left 0xff51 + * Up 0xff52 + * Right 0xff53 + * Down 0xff54 + * F1 0xffbe + * F2 0xffbf + * ... ... + * F12 0xffc9 + * Shift 0xffe1 + * Control 0xffe3 + * Meta 0xffe7 + * Alt 0xffe9 + */ + +typedef struct { + uint8_t type; /* always rfbKeyEvent */ + uint8_t down; /* true if down (press), false if up */ + uint16_t pad; + uint32_t key; /* key is specified as an X keysym */ +} rfbKeyEventMsg; + +#define sz_rfbKeyEventMsg 8 + + +/*----------------------------------------------------------------------------- + * PointerEvent - mouse/pen move and/or button press. + */ + +typedef struct { + uint8_t type; /* always rfbPointerEvent */ + uint8_t buttonMask; /* bits 0-7 are buttons 1-8, 0=up, 1=down */ + uint16_t x; + uint16_t y; +} rfbPointerEventMsg; + +#define rfbButton1Mask 1 +#define rfbButton2Mask 2 +#define rfbButton3Mask 4 + +#define sz_rfbPointerEventMsg 6 + + + +/*----------------------------------------------------------------------------- + * ClientCutText - the client has new text in its cut buffer. + */ + +typedef struct { + uint8_t type; /* always rfbClientCutText */ + uint8_t pad1; + uint16_t pad2; + uint32_t length; + /* followed by char text[length] */ +} rfbClientCutTextMsg; + +#define sz_rfbClientCutTextMsg 8 + + + +/*----------------------------------------------------------------------------- + * Union of all client->server messages. + */ + +typedef union { + uint8_t type; + rfbSetPixelFormatMsg spf; + rfbFixColourMapEntriesMsg fcme; + rfbSetEncodingsMsg se; + rfbFramebufferUpdateRequestMsg fur; + rfbKeyEventMsg ke; + rfbPointerEventMsg pe; + rfbClientCutTextMsg cct; +} rfbClientToServerMsg; + +/* + * vncauth.h - describes the functions provided by the vncauth library. + */ + +#define MAXPWLEN 8 +#define CHALLENGESIZE 16 + +extern void vncRandomBytes(unsigned char *bytes); +extern void vncEncryptBytes(unsigned char *bytes, char *passwd); + + +#endif diff --git a/server/libvncserver/rfb/rfbregion.h b/server/libvncserver/rfb/rfbregion.h new file mode 100644 index 0000000..e67942e --- /dev/null +++ b/server/libvncserver/rfb/rfbregion.h @@ -0,0 +1,62 @@ +#ifndef SRAREGION_H +#define SRAREGION_H + +/* -=- SRA - Simple Region Algorithm + * A simple rectangular region implementation. + * Copyright (c) 2001 James "Wez" Weatherall, Johannes E. Schindelin + */ + +/* -=- sraRect */ + +typedef struct _rect { + int x1; + int y1; + int x2; + int y2; +} sraRect; + +typedef struct sraRegion sraRegion; + +/* -=- Region manipulation functions */ + +extern sraRegion *sraRgnCreate(void); +extern sraRegion *sraRgnCreateRect(int x1, int y1, int x2, int y2); +extern sraRegion *sraRgnCreateRgn(const sraRegion *src); + +extern void sraRgnDestroy(sraRegion *rgn); +extern void sraRgnMakeEmpty(sraRegion *rgn); +extern rfbBool sraRgnAnd(sraRegion *dst, const sraRegion *src); +extern void sraRgnOr(sraRegion *dst, const sraRegion *src); +extern rfbBool sraRgnSubtract(sraRegion *dst, const sraRegion *src); + +extern void sraRgnOffset(sraRegion *dst, int dx, int dy); + +extern rfbBool sraRgnPopRect(sraRegion *region, sraRect *rect, + unsigned long flags); + +extern unsigned long sraRgnCountRects(const sraRegion *rgn); +extern rfbBool sraRgnEmpty(const sraRegion *rgn); + +extern sraRegion *sraRgnBBox(const sraRegion *src); + +/* -=- rectangle iterator */ + +typedef struct sraRectangleIterator { + rfbBool reverseX,reverseY; + int ptrSize,ptrPos; + struct sraSpan** sPtrs; +} sraRectangleIterator; + +extern sraRectangleIterator *sraRgnGetIterator(sraRegion *s); +extern sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,rfbBool reverseX,rfbBool reverseY); +extern rfbBool sraRgnIteratorNext(sraRectangleIterator *i,sraRect *r); +extern void sraRgnReleaseIterator(sraRectangleIterator *i); + +void sraRgnPrint(const sraRegion *s); + +/* -=- Rectangle clipper (for speed) */ + +extern rfbBool sraClipRect(int *x, int *y, int *w, int *h, + int cx, int cy, int cw, int ch); + +#endif diff --git a/server/libvncserver/rfbregion.c b/server/libvncserver/rfbregion.c new file mode 100644 index 0000000..506065c --- /dev/null +++ b/server/libvncserver/rfbregion.c @@ -0,0 +1,848 @@ +/* -=- sraRegion.c + * Copyright (c) 2001 James "Wez" Weatherall, Johannes E. Schindelin + * + * A general purpose region clipping library + * Only deals with rectangular regions, though. + */ + +#include "rfb/rfb.h" +#include "rfb/rfbregion.h" + +/* -=- Internal Span structure */ + +struct sraRegion; + +typedef struct sraSpan { + struct sraSpan *_next; + struct sraSpan *_prev; + int start; + int end; + struct sraRegion *subspan; +} sraSpan; + +typedef struct sraRegion { + sraSpan front; + sraSpan back; +} sraSpanList; + +/* -=- Span routines */ + +static sraSpanList *sraSpanListDup(const sraSpanList *src); +static void sraSpanListDestroy(sraSpanList *list); + +static sraSpan * +sraSpanCreate(int start, int end, const sraSpanList *subspan) { + sraSpan *item = (sraSpan*)malloc(sizeof(sraSpan)); + item->_next = item->_prev = NULL; + item->start = start; + item->end = end; + item->subspan = sraSpanListDup(subspan); + return item; +} + +static sraSpan * +sraSpanDup(const sraSpan *src) { + sraSpan *span; + if (!src) return NULL; + span = sraSpanCreate(src->start, src->end, src->subspan); + return span; +} + +static void +sraSpanInsertAfter(sraSpan *newspan, sraSpan *after) { + newspan->_next = after->_next; + newspan->_prev = after; + after->_next->_prev = newspan; + after->_next = newspan; +} + +static void +sraSpanInsertBefore(sraSpan *newspan, sraSpan *before) { + newspan->_next = before; + newspan->_prev = before->_prev; + before->_prev->_next = newspan; + before->_prev = newspan; +} + +static void +sraSpanRemove(sraSpan *span) { + span->_prev->_next = span->_next; + span->_next->_prev = span->_prev; +} + +static void +sraSpanDestroy(sraSpan *span) { + if (span->subspan) sraSpanListDestroy(span->subspan); + free(span); +} + +/* -=- SpanList routines */ + +static void sraSpanPrint(const sraSpan *s); + +static void +sraSpanListPrint(const sraSpanList *l) { + sraSpan *curr; + if (!l) { + printf("NULL"); + return; + } + curr = l->front._next; + printf("["); + while (curr != &(l->back)) { + sraSpanPrint(curr); + curr = curr->_next; + } + printf("]"); +} + +static void +sraSpanPrint(const sraSpan *s) { + printf("(%d-%d)", (s->start), (s->end)); + if (s->subspan) + sraSpanListPrint(s->subspan); +} + +static sraSpanList * +sraSpanListCreate() { + sraSpanList *item = (sraSpanList*)malloc(sizeof(sraSpanList)); + item->front._next = &(item->back); + item->front._prev = NULL; + item->back._prev = &(item->front); + item->back._next = NULL; + return item; +} + +static sraSpanList * +sraSpanListDup(const sraSpanList *src) { + sraSpanList *newlist; + sraSpan *newspan, *curr; + + if (!src) return NULL; + newlist = sraSpanListCreate(); + curr = src->front._next; + while (curr != &(src->back)) { + newspan = sraSpanDup(curr); + sraSpanInsertBefore(newspan, &(newlist->back)); + curr = curr->_next; + } + + return newlist; +} + +static void +sraSpanListDestroy(sraSpanList *list) { + sraSpan *curr, *next; + while (list->front._next != &(list->back)) { + curr = list->front._next; + next = curr->_next; + sraSpanRemove(curr); + sraSpanDestroy(curr); + curr = next; + } + free(list); +} + +static void +sraSpanListMakeEmpty(sraSpanList *list) { + sraSpan *curr, *next; + while (list->front._next != &(list->back)) { + curr = list->front._next; + next = curr->_next; + sraSpanRemove(curr); + sraSpanDestroy(curr); + curr = next; + } + list->front._next = &(list->back); + list->front._prev = NULL; + list->back._prev = &(list->front); + list->back._next = NULL; +} + +static rfbBool +sraSpanListEqual(const sraSpanList *s1, const sraSpanList *s2) { + sraSpan *sp1, *sp2; + + if (!s1) { + if (!s2) { + return 1; + } else { + printf("sraSpanListEqual:incompatible spans (only one NULL!)\n"); + return FALSE; + } + } + + sp1 = s1->front._next; + sp2 = s2->front._next; + while ((sp1 != &(s1->back)) && + (sp2 != &(s2->back))) { + if ((sp1->start != sp2->start) || + (sp1->end != sp2->end) || + (!sraSpanListEqual(sp1->subspan, sp2->subspan))) { + return 0; + } + sp1 = sp1->_next; + sp2 = sp2->_next; + } + + if ((sp1 == &(s1->back)) && (sp2 == &(s2->back))) { + return 1; + } else { + return 0; + } +} + +static rfbBool +sraSpanListEmpty(const sraSpanList *list) { + return (list->front._next == &(list->back)); +} + +static unsigned long +sraSpanListCount(const sraSpanList *list) { + sraSpan *curr = list->front._next; + unsigned long count = 0; + while (curr != &(list->back)) { + if (curr->subspan) { + count += sraSpanListCount(curr->subspan); + } else { + count += 1; + } + curr = curr->_next; + } + return count; +} + +static void +sraSpanMergePrevious(sraSpan *dest) { + sraSpan *prev = dest->_prev; + while ((prev->end == dest->start) && + (prev->_prev) && + (sraSpanListEqual(prev->subspan, dest->subspan))) { + /* + printf("merge_prev:"); + sraSpanPrint(prev); + printf(" & "); + sraSpanPrint(dest); + printf("\n"); + */ + dest->start = prev->start; + sraSpanRemove(prev); + sraSpanDestroy(prev); + prev = dest->_prev; + } +} + +static void +sraSpanMergeNext(sraSpan *dest) { + sraSpan *next = dest->_next; + while ((next->start == dest->end) && + (next->_next) && + (sraSpanListEqual(next->subspan, dest->subspan))) { +/* + printf("merge_next:"); + sraSpanPrint(dest); + printf(" & "); + sraSpanPrint(next); + printf("\n"); + */ + dest->end = next->end; + sraSpanRemove(next); + sraSpanDestroy(next); + next = dest->_next; + } +} + +static void +sraSpanListOr(sraSpanList *dest, const sraSpanList *src) { + sraSpan *d_curr, *s_curr; + int s_start, s_end; + + if (!dest) { + if (!src) { + return; + } else { + printf("sraSpanListOr:incompatible spans (only one NULL!)\n"); + return; + } + } + + d_curr = dest->front._next; + s_curr = src->front._next; + s_start = s_curr->start; + s_end = s_curr->end; + while (s_curr != &(src->back)) { + + /* - If we are at end of destination list OR + If the new span comes before the next destination one */ + if ((d_curr == &(dest->back)) || + (d_curr->start >= s_end)) { + /* - Add the span */ + sraSpanInsertBefore(sraSpanCreate(s_start, s_end, + s_curr->subspan), + d_curr); + if (d_curr != &(dest->back)) + sraSpanMergePrevious(d_curr); + s_curr = s_curr->_next; + s_start = s_curr->start; + s_end = s_curr->end; + } else { + + /* - If the new span overlaps the existing one */ + if ((s_start < d_curr->end) && + (s_end > d_curr->start)) { + + /* - Insert new span before the existing destination one? */ + if (s_start < d_curr->start) { + sraSpanInsertBefore(sraSpanCreate(s_start, + d_curr->start, + s_curr->subspan), + d_curr); + sraSpanMergePrevious(d_curr); + } + + /* Split the existing span if necessary */ + if (s_end < d_curr->end) { + sraSpanInsertAfter(sraSpanCreate(s_end, + d_curr->end, + d_curr->subspan), + d_curr); + d_curr->end = s_end; + } + if (s_start > d_curr->start) { + sraSpanInsertBefore(sraSpanCreate(d_curr->start, + s_start, + d_curr->subspan), + d_curr); + d_curr->start = s_start; + } + + /* Recursively OR subspans */ + sraSpanListOr(d_curr->subspan, s_curr->subspan); + + /* Merge this span with previous or next? */ + if (d_curr->_prev != &(dest->front)) + sraSpanMergePrevious(d_curr); + if (d_curr->_next != &(dest->back)) + sraSpanMergeNext(d_curr); + + /* Move onto the next pair to compare */ + if (s_end > d_curr->end) { + s_start = d_curr->end; + d_curr = d_curr->_next; + } else { + s_curr = s_curr->_next; + s_start = s_curr->start; + s_end = s_curr->end; + } + } else { + /* - No overlap. Move to the next destination span */ + d_curr = d_curr->_next; + } + } + } +} + +static rfbBool +sraSpanListAnd(sraSpanList *dest, const sraSpanList *src) { + sraSpan *d_curr, *s_curr, *d_next; + + if (!dest) { + if (!src) { + return 1; + } else { + printf("sraSpanListAnd:incompatible spans (only one NULL!)\n"); + return FALSE; + } + } + + d_curr = dest->front._next; + s_curr = src->front._next; + while ((s_curr != &(src->back)) && (d_curr != &(dest->back))) { + + /* - If we haven't reached a destination span yet then move on */ + if (d_curr->start >= s_curr->end) { + s_curr = s_curr->_next; + continue; + } + + /* - If we are beyond the current destination span then remove it */ + if (d_curr->end <= s_curr->start) { + sraSpan *next = d_curr->_next; + sraSpanRemove(d_curr); + sraSpanDestroy(d_curr); + d_curr = next; + continue; + } + + /* - If we partially overlap a span then split it up or remove bits */ + if (s_curr->start > d_curr->start) { + /* - The top bit of the span does not match */ + d_curr->start = s_curr->start; + } + if (s_curr->end < d_curr->end) { + /* - The end of the span does not match */ + sraSpanInsertAfter(sraSpanCreate(s_curr->end, + d_curr->end, + d_curr->subspan), + d_curr); + d_curr->end = s_curr->end; + } + + /* - Now recursively process the affected span */ + if (!sraSpanListAnd(d_curr->subspan, s_curr->subspan)) { + /* - The destination subspan is now empty, so we should remove it */ + sraSpan *next = d_curr->_next; + sraSpanRemove(d_curr); + sraSpanDestroy(d_curr); + d_curr = next; + } else { + /* Merge this span with previous or next? */ + if (d_curr->_prev != &(dest->front)) + sraSpanMergePrevious(d_curr); + + /* - Move on to the next span */ + d_next = d_curr; + if (s_curr->end >= d_curr->end) { + d_next = d_curr->_next; + } + if (s_curr->end <= d_curr->end) { + s_curr = s_curr->_next; + } + d_curr = d_next; + } + } + + while (d_curr != &(dest->back)) { + sraSpan *next = d_curr->_next; + sraSpanRemove(d_curr); + sraSpanDestroy(d_curr); + d_curr=next; + } + + return !sraSpanListEmpty(dest); +} + +static rfbBool +sraSpanListSubtract(sraSpanList *dest, const sraSpanList *src) { + sraSpan *d_curr, *s_curr; + + if (!dest) { + if (!src) { + return 1; + } else { + printf("sraSpanListSubtract:incompatible spans (only one NULL!)\n"); + return FALSE; + } + } + + d_curr = dest->front._next; + s_curr = src->front._next; + while ((s_curr != &(src->back)) && (d_curr != &(dest->back))) { + + /* - If we haven't reached a destination span yet then move on */ + if (d_curr->start >= s_curr->end) { + s_curr = s_curr->_next; + continue; + } + + /* - If we are beyond the current destination span then skip it */ + if (d_curr->end <= s_curr->start) { + d_curr = d_curr->_next; + continue; + } + + /* - If we partially overlap the current span then split it up */ + if (s_curr->start > d_curr->start) { + sraSpanInsertBefore(sraSpanCreate(d_curr->start, + s_curr->start, + d_curr->subspan), + d_curr); + d_curr->start = s_curr->start; + } + if (s_curr->end < d_curr->end) { + sraSpanInsertAfter(sraSpanCreate(s_curr->end, + d_curr->end, + d_curr->subspan), + d_curr); + d_curr->end = s_curr->end; + } + + /* - Now recursively process the affected span */ + if ((!d_curr->subspan) || !sraSpanListSubtract(d_curr->subspan, s_curr->subspan)) { + /* - The destination subspan is now empty, so we should remove it */ + sraSpan *next = d_curr->_next; + sraSpanRemove(d_curr); + sraSpanDestroy(d_curr); + d_curr = next; + } else { + /* Merge this span with previous or next? */ + if (d_curr->_prev != &(dest->front)) + sraSpanMergePrevious(d_curr); + if (d_curr->_next != &(dest->back)) + sraSpanMergeNext(d_curr); + + /* - Move on to the next span */ + if (s_curr->end > d_curr->end) { + d_curr = d_curr->_next; + } else { + s_curr = s_curr->_next; + } + } + } + + return !sraSpanListEmpty(dest); +} + +/* -=- Region routines */ + +sraRegion * +sraRgnCreate() { + return (sraRegion*)sraSpanListCreate(); +} + +sraRegion * +sraRgnCreateRect(int x1, int y1, int x2, int y2) { + sraSpanList *vlist, *hlist; + sraSpan *vspan, *hspan; + + /* - Build the horizontal portion of the span */ + hlist = sraSpanListCreate(); + hspan = sraSpanCreate(x1, x2, NULL); + sraSpanInsertAfter(hspan, &(hlist->front)); + + /* - Build the vertical portion of the span */ + vlist = sraSpanListCreate(); + vspan = sraSpanCreate(y1, y2, hlist); + sraSpanInsertAfter(vspan, &(vlist->front)); + + sraSpanListDestroy(hlist); + + return (sraRegion*)vlist; +} + +sraRegion * +sraRgnCreateRgn(const sraRegion *src) { + return (sraRegion*)sraSpanListDup((sraSpanList*)src); +} + +void +sraRgnDestroy(sraRegion *rgn) { + sraSpanListDestroy((sraSpanList*)rgn); +} + +void +sraRgnMakeEmpty(sraRegion *rgn) { + sraSpanListMakeEmpty((sraSpanList*)rgn); +} + +/* -=- Boolean Region ops */ + +rfbBool +sraRgnAnd(sraRegion *dst, const sraRegion *src) { + return sraSpanListAnd((sraSpanList*)dst, (sraSpanList*)src); +} + +void +sraRgnOr(sraRegion *dst, const sraRegion *src) { + sraSpanListOr((sraSpanList*)dst, (sraSpanList*)src); +} + +rfbBool +sraRgnSubtract(sraRegion *dst, const sraRegion *src) { + return sraSpanListSubtract((sraSpanList*)dst, (sraSpanList*)src); +} + +void +sraRgnOffset(sraRegion *dst, int dx, int dy) { + sraSpan *vcurr, *hcurr; + + vcurr = ((sraSpanList*)dst)->front._next; + while (vcurr != &(((sraSpanList*)dst)->back)) { + vcurr->start += dy; + vcurr->end += dy; + + hcurr = vcurr->subspan->front._next; + while (hcurr != &(vcurr->subspan->back)) { + hcurr->start += dx; + hcurr->end += dx; + hcurr = hcurr->_next; + } + + vcurr = vcurr->_next; + } +} + +sraRegion *sraRgnBBox(const sraRegion *src) { + int xmin=((unsigned int)(int)-1)>>1,ymin=xmin,xmax=1-xmin,ymax=xmax; + sraSpan *vcurr, *hcurr; + + if(!src) + return sraRgnCreate(); + + vcurr = ((sraSpanList*)src)->front._next; + while (vcurr != &(((sraSpanList*)src)->back)) { + if(vcurr->start<ymin) + ymin=vcurr->start; + if(vcurr->end>ymax) + ymax=vcurr->end; + + hcurr = vcurr->subspan->front._next; + while (hcurr != &(vcurr->subspan->back)) { + if(hcurr->start<xmin) + xmin=hcurr->start; + if(hcurr->end>xmax) + xmax=hcurr->end; + hcurr = hcurr->_next; + } + + vcurr = vcurr->_next; + } + + if(xmax<xmin || ymax<ymin) + return sraRgnCreate(); + + return sraRgnCreateRect(xmin,ymin,xmax,ymax); +} + +rfbBool +sraRgnPopRect(sraRegion *rgn, sraRect *rect, unsigned long flags) { + sraSpan *vcurr, *hcurr; + sraSpan *vend, *hend; + rfbBool right2left = flags & 2; + rfbBool bottom2top = flags & 1; + + /* - Pick correct order */ + if (bottom2top) { + vcurr = ((sraSpanList*)rgn)->back._prev; + vend = &(((sraSpanList*)rgn)->front); + } else { + vcurr = ((sraSpanList*)rgn)->front._next; + vend = &(((sraSpanList*)rgn)->back); + } + + if (vcurr != vend) { + rect->y1 = vcurr->start; + rect->y2 = vcurr->end; + + /* - Pick correct order */ + if (right2left) { + hcurr = vcurr->subspan->back._prev; + hend = &(vcurr->subspan->front); + } else { + hcurr = vcurr->subspan->front._next; + hend = &(vcurr->subspan->back); + } + + if (hcurr != hend) { + rect->x1 = hcurr->start; + rect->x2 = hcurr->end; + + sraSpanRemove(hcurr); + sraSpanDestroy(hcurr); + + if (sraSpanListEmpty(vcurr->subspan)) { + sraSpanRemove(vcurr); + sraSpanDestroy(vcurr); + } + +#if 0 + printf("poprect:(%dx%d)-(%dx%d)\n", + rect->x1, rect->y1, rect->x2, rect->y2); +#endif + return 1; + } + } + + return 0; +} + +unsigned long +sraRgnCountRects(const sraRegion *rgn) { + unsigned long count = sraSpanListCount((sraSpanList*)rgn); + return count; +} + +rfbBool +sraRgnEmpty(const sraRegion *rgn) { + return sraSpanListEmpty((sraSpanList*)rgn); +} + +/* iterator stuff */ +sraRectangleIterator *sraRgnGetIterator(sraRegion *s) +{ + /* these values have to be multiples of 4 */ +#define DEFSIZE 4 +#define DEFSTEP 8 + sraRectangleIterator *i = + (sraRectangleIterator*)malloc(sizeof(sraRectangleIterator)); + if(!i) + return(0); + + /* we have to recurse eventually. So, the first sPtr is the pointer to + the sraSpan in the first level. the second sPtr is the pointer to + the sraRegion.back. The third and fourth sPtr are for the second + recursion level and so on. */ + i->sPtrs = (sraSpan**)malloc(sizeof(sraSpan*)*DEFSIZE); + if(!i->sPtrs) { + free(i); + return(0); + } + i->ptrSize = DEFSIZE; + i->sPtrs[0] = &(s->front); + i->sPtrs[1] = &(s->back); + i->ptrPos = 0; + i->reverseX = 0; + i->reverseY = 0; + return(i); +} + +sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,rfbBool reverseX,rfbBool reverseY) +{ + sraRectangleIterator *i = sraRgnGetIterator(s); + if(reverseY) { + i->sPtrs[1] = &(s->front); + i->sPtrs[0] = &(s->back); + } + i->reverseX = reverseX; + i->reverseY = reverseY; + return(i); +} + +static rfbBool sraReverse(sraRectangleIterator *i) +{ + return( ((i->ptrPos&2) && i->reverseX) || + (!(i->ptrPos&2) && i->reverseY)); +} + +static sraSpan* sraNextSpan(sraRectangleIterator *i) +{ + if(sraReverse(i)) + return(i->sPtrs[i->ptrPos]->_prev); + else + return(i->sPtrs[i->ptrPos]->_next); +} + +rfbBool sraRgnIteratorNext(sraRectangleIterator* i,sraRect* r) +{ + /* is the subspan finished? */ + while(sraNextSpan(i) == i->sPtrs[i->ptrPos+1]) { + i->ptrPos -= 2; + if(i->ptrPos < 0) /* the end */ + return(0); + } + + i->sPtrs[i->ptrPos] = sraNextSpan(i); + + /* is this a new subspan? */ + while(i->sPtrs[i->ptrPos]->subspan) { + if(i->ptrPos+2 > i->ptrSize) { /* array is too small */ + i->ptrSize += DEFSTEP; + i->sPtrs = (sraSpan**)realloc(i->sPtrs, sizeof(sraSpan*)*i->ptrSize); + } + i->ptrPos =+ 2; + if(sraReverse(i)) { + i->sPtrs[i->ptrPos] = i->sPtrs[i->ptrPos-2]->subspan->back._prev; + i->sPtrs[i->ptrPos+1] = &(i->sPtrs[i->ptrPos-2]->subspan->front); + } else { + i->sPtrs[i->ptrPos] = i->sPtrs[i->ptrPos-2]->subspan->front._next; + i->sPtrs[i->ptrPos+1] = &(i->sPtrs[i->ptrPos-2]->subspan->back); + } + } + + if((i->ptrPos%4)!=2) { + rfbErr("sraRgnIteratorNext: offset is wrong (%d%%4!=2)\n",i->ptrPos); + return FALSE; + } + + r->y1 = i->sPtrs[i->ptrPos-2]->start; + r->y2 = i->sPtrs[i->ptrPos-2]->end; + r->x1 = i->sPtrs[i->ptrPos]->start; + r->x2 = i->sPtrs[i->ptrPos]->end; + + return(-1); +} + +void sraRgnReleaseIterator(sraRectangleIterator* i) +{ + free(i->sPtrs); + free(i); +} + +void +sraRgnPrint(const sraRegion *rgn) { + sraSpanListPrint((sraSpanList*)rgn); +} + +rfbBool +sraClipRect(int *x, int *y, int *w, int *h, + int cx, int cy, int cw, int ch) { + if (*x < cx) { + *w -= (cx-*x); + *x = cx; + } + if (*y < cy) { + *h -= (cy-*y); + *y = cy; + } + if (*x+*w > cx+cw) { + *w = (cx+cw)-*x; + } + if (*y+*h > cy+ch) { + *h = (cy+ch)-*y; + } + return (*w>0) && (*h>0); +} + +/* test */ + +#ifdef SRA_TEST +/* pipe the output to sort|uniq -u and you'll get the errors. */ +int main(int argc, char** argv) +{ + sraRegionPtr region, region1, region2; + sraRectangleIterator* i; + sraRect rect; + rfbBool b; + + region = sraRgnCreateRect(10, 10, 600, 300); + region1 = sraRgnCreateRect(40, 50, 350, 200); + region2 = sraRgnCreateRect(0, 0, 20, 40); + + sraRgnPrint(region); + printf("\n[(10-300)[(10-600)]]\n\n"); + + b = sraRgnSubtract(region, region1); + printf("%s ",b?"true":"false"); + sraRgnPrint(region); + printf("\ntrue [(10-50)[(10-600)](50-200)[(10-40)(350-600)](200-300)[(10-600)]]\n\n"); + + sraRgnOr(region, region2); + printf("%ld\n6\n\n", sraRgnCountRects(region)); + + i = sraRgnGetIterator(region); + while(sraRgnIteratorNext(i, &rect)) + printf("%dx%d+%d+%d ", + rect.x2-rect.x1,rect.y2-rect.y1, + rect.x1,rect.y1); + sraRgnReleaseIterator(i); + printf("\n20x10+0+0 600x30+0+10 590x10+10+40 30x150+10+50 250x150+350+50 590x100+10+200\n\n"); + + i = sraRgnGetReverseIterator(region,1,0); + while(sraRgnIteratorNext(i, &rect)) + printf("%dx%d+%d+%d ", + rect.x2-rect.x1,rect.y2-rect.y1, + rect.x1,rect.y1); + sraRgnReleaseIterator(i); + printf("\n20x10+0+0 600x30+0+10 590x10+10+40 250x150+350+50 30x150+10+50 590x100+10+200\n\n"); + + i = sraRgnGetReverseIterator(region,1,1); + while(sraRgnIteratorNext(i, &rect)) + printf("%dx%d+%d+%d ", + rect.x2-rect.x1,rect.y2-rect.y1, + rect.x1,rect.y1); + sraRgnReleaseIterator(i); + printf("\n590x100+10+200 250x150+350+50 30x150+10+50 590x10+10+40 600x30+0+10 20x10+0+0\n\n"); + + return(0); +} +#endif diff --git a/server/libvncserver/rfbserver.c b/server/libvncserver/rfbserver.c new file mode 100644 index 0000000..0a60fb2 --- /dev/null +++ b/server/libvncserver/rfbserver.c @@ -0,0 +1,1557 @@ +/* + * rfbserver.c - deal with server-side of the RFB protocol. + */ + +/* + * Copyright (C) 2002 RealVNC Ltd. + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#define _GNU_SOURCE 1 + +#include <string.h> +#include "rfb/rfb.h" +#include "rfb/rfbregion.h" +#include <netdb.h> + +#ifdef HAVE_FCNTL_H +#include <fcntl.h> +#endif + +#ifdef WIN32 +#define write(sock,buf,len) send(sock,buf,len,0) +#else +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#include <pwd.h> +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#ifdef HAVE_NETINET_IN_H +#include <netinet/in.h> +#include <netinet/tcp.h> +#include <arpa/inet.h> +#endif +#endif + +#ifdef DEBUGPROTO +#undef DEBUGPROTO +#define DEBUGPROTO(x) x +#else +#define DEBUGPROTO(x) +#endif + +rfbClientPtr pointerClient = NULL; /* Mutex for pointer events */ + +static void rfbProcessClientProtocolVersion(rfbClientPtr cl); +static void rfbProcessClientNormalMessage(rfbClientPtr cl); + +struct rfbClientIterator { + rfbClientPtr next; + rfbScreenInfoPtr screen; +}; + +void +rfbClientListInit(rfbScreenInfoPtr rfbScreen) +{ + if(sizeof(rfbBool)!=1) { + /* a sanity check */ + fprintf(stderr,"rfbBool's size is not 1 (%lu)!\n",(unsigned long)sizeof(rfbBool)); + /* we cannot continue, because rfbBool is supposed to be char everywhere */ + exit(1); + } + rfbScreen->rfbClientHead = NULL; +} + +rfbClientIteratorPtr +rfbGetClientIterator(rfbScreenInfoPtr rfbScreen) +{ + rfbClientIteratorPtr i = + (rfbClientIteratorPtr)malloc(sizeof(struct rfbClientIterator)); + i->next = 0; + i->screen = rfbScreen; + return i; +} + +rfbClientPtr +rfbClientIteratorHead(rfbClientIteratorPtr i) +{ + LOCK(rfbClientListMutex); + i->next = i->screen->rfbClientHead; + UNLOCK(rfbClientListMutex); + return i->next; +} + +rfbClientPtr +rfbClientIteratorNext(rfbClientIteratorPtr i) +{ + if(i->next == 0) { + LOCK(rfbClientListMutex); + i->next = i->screen->rfbClientHead; + UNLOCK(rfbClientListMutex); + } else { + i->next = i->next->next; + } + + return i->next; +} + +void +rfbReleaseClientIterator(rfbClientIteratorPtr iterator) +{ + free(iterator); +} + +/* + * rfbNewClientConnection is called from sockets.c when a new connection + * comes in. + */ + +void +rfbNewClientConnection(rfbScreenInfoPtr rfbScreen, + int sock) +{ + rfbClientPtr cl; + + cl = rfbNewClient(rfbScreen,sock); +} + + +/* + * rfbNewClient is called when a new connection has been made by whatever + * means. + */ + +rfbClientPtr +rfbNewClient(rfbScreenInfoPtr rfbScreen, + int sock) +{ + rfbProtocolVersionMsg pv; + rfbClientIteratorPtr iterator; + rfbClientPtr cl,cl_; + struct sockaddr_storage addr; + socklen_t addrlen = sizeof(addr); + int i; + char host[NI_MAXHOST] = "(unresolved)"; + const char *prt = "unknown"; + + cl = (rfbClientPtr)calloc(sizeof(rfbClientRec),1); + + cl->screen = rfbScreen; + cl->sock = sock; + cl->viewOnly = FALSE; + + rfbResetStats(cl); + + { + int one=1; + + getpeername(sock, (struct sockaddr *)&addr, &addrlen); + + if (getnameinfo((struct sockaddr *)&addr, addrlen, + host, sizeof(host), NULL, 0, 0)) { + getnameinfo((struct sockaddr *)&addr, addrlen, + host, sizeof(host), NULL, 0, NI_NUMERICHOST); + } + + cl->host = strdup(host); + + if (addr.ss_family == AF_INET) + prt = "IPv4"; + else if (addr.ss_family == AF_INET6) + prt = "IPv6"; + + rfbLog("[%s] Got connection from client %s\n", prt, cl->host); + + rfbLog(" other clients:\n"); + iterator = rfbGetClientIterator(rfbScreen); + while ((cl_ = rfbClientIteratorNext(iterator)) != NULL) { + rfbLog(" %s\n",cl_->host); + } + rfbReleaseClientIterator(iterator); + +#ifndef WIN32 + if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) { + rfbLogPerror("fcntl failed"); + close(sock); + return NULL; + } +#endif + + if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, + (char *)&one, sizeof(one)) < 0) { + rfbLogPerror("setsockopt failed"); + close(sock); + return NULL; + } + + FD_SET(sock,&(rfbScreen->allFds)); + rfbScreen->maxFd = max(sock,rfbScreen->maxFd); + + cl->state = RFB_PROTOCOL_VERSION; + + cl->readyForSetColourMapEntries = FALSE; + cl->useCopyRect = FALSE; + cl->preferredEncoding = rfbEncodingRaw; + cl->correMaxWidth = 48; + cl->correMaxHeight = 48; +#ifdef VINO_HAVE_ZLIB + cl->zrleData = NULL; +#endif + + cl->copyRegion = sraRgnCreate(); + cl->copyDX = 0; + cl->copyDY = 0; + + cl->modifiedRegion = + sraRgnCreateRect(0,0,rfbScreen->width,rfbScreen->height); + + cl->requestedRegion = sraRgnCreate(); + + cl->format = cl->screen->rfbServerFormat; + cl->translateFn = rfbTranslateNone; + cl->translateLookupTable = NULL; + + LOCK(rfbClientListMutex); + + cl->next = rfbScreen->rfbClientHead; + cl->prev = NULL; + if (rfbScreen->rfbClientHead) + rfbScreen->rfbClientHead->prev = cl; + + rfbScreen->rfbClientHead = cl; + UNLOCK(rfbClientListMutex); + +#ifdef VINO_HAVE_JPEG + cl->tightCompressLevel = TIGHT_DEFAULT_COMPRESSION; + cl->tightQualityLevel = -1; + for (i = 0; i < 4; i++) + cl->zsActive[i] = FALSE; +#endif + + cl->enableCursorUpdates = FALSE; + cl->useRichCursorEncoding = FALSE; + cl->enableLastRectEncoding = FALSE; + cl->useNewFBSize = FALSE; + +#ifdef VINO_HAVE_ZLIB + cl->compStreamInited = FALSE; + cl->compStream.total_in = 0; + cl->compStream.total_out = 0; + cl->compStream.zalloc = Z_NULL; + cl->compStream.zfree = Z_NULL; + cl->compStream.opaque = Z_NULL; + + cl->zlibCompressLevel = 5; +#endif + + sprintf(pv,rfbProtocolVersionFormat,rfbProtocolMajorVersion, + rfbProtocolMinorVersion7); + + if (WriteExact(cl, pv, sz_rfbProtocolVersionMsg) < 0) { + rfbLogPerror("rfbNewClient: write"); + rfbCloseClient(cl); + rfbClientConnectionGone(cl); + return NULL; + } + } + + cl->clientData = NULL; + cl->clientGoneHook = NULL; + cl->onHold = FALSE; + if (cl->screen->newClientHook) { + switch (cl->screen->newClientHook(cl)) { + case RFB_CLIENT_ON_HOLD: + cl->onHold = TRUE; + break; + case RFB_CLIENT_ACCEPT: + break; + case RFB_CLIENT_REFUSE: + rfbCloseClient(cl); + rfbClientConnectionGone(cl); + cl = NULL; + break; + } + } + + return cl; +} + +/* + * rfbClientConnectionGone is called from sockets.c just after a connection + * has gone away. + */ + +void +rfbClientConnectionGone(rfbClientPtr cl) +{ + int i; + + LOCK(rfbClientListMutex); + + if (cl->prev) + cl->prev->next = cl->next; + else + cl->screen->rfbClientHead = cl->next; + if (cl->next) + cl->next->prev = cl->prev; + + if(cl->sock>0) + close(cl->sock); + +#ifdef VINO_HAVE_ZLIB + FreeZrleData(cl); +#endif + + if(cl->sock>=0) + FD_CLR(cl->sock,&(cl->screen->allFds)); + + if (cl->clientGoneHook) + cl->clientGoneHook(cl); + + rfbLog("Client %s gone\n",cl->host); + free(cl->host); + +#ifdef VINO_HAVE_ZLIB + /* Release the compression state structures if any. */ + if ( cl->compStreamInited ) { + deflateEnd( &(cl->compStream) ); + } + +#ifdef VINO_HAVE_JPEG + for (i = 0; i < 4; i++) { + if (cl->zsActive[i]) + deflateEnd(&cl->zsStruct[i]); + } +#endif +#endif + + if (pointerClient == cl) + pointerClient = NULL; + + sraRgnDestroy(cl->modifiedRegion); + sraRgnDestroy(cl->requestedRegion); + sraRgnDestroy(cl->copyRegion); + + UNLOCK(rfbClientListMutex); + + if (cl->translateLookupTable) free(cl->translateLookupTable); + + rfbPrintStats(cl); + + free(cl); +} + + +/* + * rfbProcessClientMessage is called when there is data to read from a client. + */ + +void +rfbProcessClientMessage(rfbClientPtr cl) +{ + switch (cl->state) { + case RFB_PROTOCOL_VERSION: + rfbProcessClientProtocolVersion(cl); + return; + case RFB_SECURITY_TYPE: + rfbAuthProcessSecurityTypeMessage(cl); + return; +#ifdef VINO_HAVE_GNUTLS + case RFB_TLS_HANDSHAKE: + rfbAuthProcessTLSHandshake(cl); + return; +#endif + case RFB_AUTH_TYPE: + rfbAuthProcessAuthTypeMessage(cl); + return; + case RFB_AUTHENTICATION: + rfbAuthProcessClientMessage(cl); + return; + case RFB_AUTH_DEFERRED: + rfbLog("Authentication deferred for this client - closing connection\n"); + rfbCloseClient(cl); + return; + case RFB_INITIALISATION: + rfbProcessClientInitMessage(cl); + return; + default: + rfbProcessClientNormalMessage(cl); + return; + } +} + + +/* + * rfbProcessClientProtocolVersion is called when the client sends its + * protocol version. + */ + +static void +rfbProcessClientProtocolVersion(rfbClientPtr cl) +{ + rfbProtocolVersionMsg pv; + int n, major_, minor_; + + if ((n = ReadExact(cl, pv, sz_rfbProtocolVersionMsg)) <= 0) { + if (n == 0) + rfbLog("rfbProcessClientProtocolVersion: client gone\n"); + else + rfbLogPerror("rfbProcessClientProtocolVersion: read"); + rfbCloseClient(cl); + return; + } + + pv[sz_rfbProtocolVersionMsg] = 0; + if (sscanf(pv,rfbProtocolVersionFormat,&major_,&minor_) != 2) { + char name[1024]; + if(sscanf(pv,"RFB %03d.%03d %1023s\n",&major_,&minor_,name) != 3) { + rfbErr("rfbProcessClientProtocolVersion: not a valid RFB client\n"); + rfbCloseClient(cl); + return; + } + free(cl->host); + cl->host=strdup(name); + } + rfbLog("Client Protocol Version %d.%d\n", major_, minor_); + + if (major_ != rfbProtocolMajorVersion) { + rfbErr("RFB protocol version mismatch - server %d.%d, client %d.%d", + rfbProtocolMajorVersion, rfbProtocolMinorVersion7, + major_,minor_); + rfbCloseClient(cl); + return; + } + + if (minor_ != rfbProtocolMinorVersion3 && + minor_ != rfbProtocolMinorVersion7 && + minor_ != rfbProtocolMinorVersion8) { + /* Minor version mismatch - warn but try to continue */ + rfbLog("Ignoring minor version mismatch\n"); + } + + if (minor_ >= rfbProtocolMinorVersion8) + cl->minorVersion = rfbProtocolMinorVersion8; + else if (minor_ == rfbProtocolMinorVersion7) + cl->minorVersion = rfbProtocolMinorVersion7; + else + cl->minorVersion = rfbProtocolMinorVersion3; + + rfbAuthNewClient(cl); +} + + +/* + * rfbClientConnFailed is called when a client connection has failed either + * because it talks the wrong protocol or it has failed authentication. + */ + +void +rfbClientConnFailed(rfbClientPtr cl, + char *reason) +{ + char *buf; + int len = strlen(reason); + + rfbLog("rfbClientConnFailed(\"%s\")\n", reason); + + buf = (char *)malloc(8 + len); + ((uint32_t *)buf)[0] = 0; + ((uint32_t *)buf)[1] = Swap32IfLE(len); + memcpy(buf + 8, reason, len); + + if (WriteExact(cl, buf, 8 + len) < 0) + rfbLogPerror("rfbClientConnFailed: write"); + free(buf); + + rfbCloseClient(cl); +} + + +/* + * rfbProcessClientInitMessage is called when the client sends its + * initialisation message. + */ + +void +rfbProcessClientInitMessage(rfbClientPtr cl) +{ + rfbClientInitMsg ci; + char buf[256]; + rfbServerInitMsg *si = (rfbServerInitMsg *)buf; + int len, n; + rfbClientIteratorPtr iterator; + rfbClientPtr otherCl; + + if ((n = ReadExact(cl, (char *)&ci,sz_rfbClientInitMsg)) <= 0) { + if (n == 0) + rfbLog("rfbProcessClientInitMessage: client gone\n"); + else + rfbLogPerror("rfbProcessClientInitMessage: read"); + rfbCloseClient(cl); + return; + } + + memset(buf,0,sizeof(buf)); + + si->framebufferWidth = Swap16IfLE(cl->screen->width); + si->framebufferHeight = Swap16IfLE(cl->screen->height); + si->format = cl->screen->rfbServerFormat; + si->format.redMax = Swap16IfLE(si->format.redMax); + si->format.greenMax = Swap16IfLE(si->format.greenMax); + si->format.blueMax = Swap16IfLE(si->format.blueMax); + + strncpy(buf + sz_rfbServerInitMsg, cl->screen->desktopName, 127); + len = strlen(buf + sz_rfbServerInitMsg); + si->nameLength = Swap32IfLE(len); + + if (WriteExact(cl, buf, sz_rfbServerInitMsg + len) < 0) { + rfbLogPerror("rfbProcessClientInitMessage: write"); + rfbCloseClient(cl); + return; + } + + cl->state = RFB_NORMAL; + + if (cl->screen->rfbNeverShared || (!cl->screen->rfbAlwaysShared && !ci.shared)) { + + if (cl->screen->rfbDontDisconnect) { + iterator = rfbGetClientIterator(cl->screen); + while ((otherCl = rfbClientIteratorNext(iterator)) != NULL) { + if ((otherCl != cl) && (otherCl->state == RFB_NORMAL)) { + rfbLog("-dontdisconnect: Not shared & existing client\n"); + rfbLog(" refusing new client %s\n", cl->host); + rfbCloseClient(cl); + rfbReleaseClientIterator(iterator); + return; + } + } + rfbReleaseClientIterator(iterator); + } else { + iterator = rfbGetClientIterator(cl->screen); + while ((otherCl = rfbClientIteratorNext(iterator)) != NULL) { + if ((otherCl != cl) && (otherCl->state == RFB_NORMAL)) { + rfbLog("Not shared - closing connection to client %s\n", + otherCl->host); + rfbCloseClient(otherCl); + } + } + rfbReleaseClientIterator(iterator); + } + } +} + + +/* + * rfbProcessClientNormalMessage is called when the client has sent a normal + * protocol message. + */ + +static void +rfbProcessClientNormalMessage(rfbClientPtr cl) +{ + int n=0; + rfbClientToServerMsg msg; + char *str; + + if ((n = ReadExact(cl, (char *)&msg, 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + switch (msg.type) { + + case rfbSetPixelFormat: + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbSetPixelFormatMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + cl->format.bitsPerPixel = msg.spf.format.bitsPerPixel; + cl->format.depth = msg.spf.format.depth; + cl->format.bigEndian = (msg.spf.format.bigEndian ? TRUE : FALSE); + cl->format.trueColour = (msg.spf.format.trueColour ? TRUE : FALSE); + cl->format.redMax = Swap16IfLE(msg.spf.format.redMax); + cl->format.greenMax = Swap16IfLE(msg.spf.format.greenMax); + cl->format.blueMax = Swap16IfLE(msg.spf.format.blueMax); + cl->format.redShift = msg.spf.format.redShift; + cl->format.greenShift = msg.spf.format.greenShift; + cl->format.blueShift = msg.spf.format.blueShift; + + cl->readyForSetColourMapEntries = TRUE; + + rfbSetTranslateFunction(cl); + + return; + + + case rfbFixColourMapEntries: + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbFixColourMapEntriesMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + rfbLog("rfbProcessClientNormalMessage: %s", + "FixColourMapEntries unsupported\n"); + rfbCloseClient(cl); + return; + + + case rfbSetEncodings: + { + int i; + uint32_t enc; + rfbBool enableCursorShapeUpdates, enableCursorPosUpdates; + rfbBool useRichCursorEncoding; + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbSetEncodingsMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + msg.se.nEncodings = Swap16IfLE(msg.se.nEncodings); + + enableCursorShapeUpdates = FALSE; + enableCursorPosUpdates = FALSE; + useRichCursorEncoding = FALSE; + + cl->preferredEncoding = -1; + cl->useCopyRect = FALSE; + cl->enableLastRectEncoding = FALSE; + cl->useNewFBSize = FALSE; +#ifdef VINO_HAVE_JPEG + cl->tightQualityLevel = -1; +#endif + + for (i = 0; i < msg.se.nEncodings; i++) { + if ((n = ReadExact(cl, (char *)&enc, 4)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + enc = Swap32IfLE(enc); + + switch (enc) { + + case rfbEncodingCopyRect: + cl->useCopyRect = TRUE; + break; + case rfbEncodingRaw: + case rfbEncodingRRE: + case rfbEncodingCoRRE: + case rfbEncodingHextile: +#ifdef VINO_HAVE_ZLIB + case rfbEncodingZlib: + case rfbEncodingZRLE: +#ifdef VINO_HAVE_JPEG + case rfbEncodingTight: +#endif +#endif + /* The first supported encoding is the 'preferred' encoding */ + if (cl->preferredEncoding == -1) + cl->preferredEncoding = enc; + + + break; + case rfbEncodingXCursor: + enableCursorShapeUpdates = TRUE; + break; + case rfbEncodingRichCursor: + enableCursorShapeUpdates = TRUE; + useRichCursorEncoding = TRUE; + break; + case rfbEncodingPointerPos: + enableCursorPosUpdates = TRUE; + break; + case rfbEncodingLastRect: + if (!cl->enableLastRectEncoding) { + rfbLog("Enabling LastRect protocol extension for client " + "%s\n", cl->host); + cl->enableLastRectEncoding = TRUE; + } + break; + case rfbEncodingNewFBSize: + if (!cl->useNewFBSize) { + rfbLog("Enabling NewFBSize protocol extension for client " + "%s\n", cl->host); + cl->useNewFBSize = TRUE; + } + break; + default: +#ifdef VINO_HAVE_ZLIB + if ( enc >= (uint32_t)rfbEncodingCompressLevel0 && + enc <= (uint32_t)rfbEncodingCompressLevel9 ) { + cl->zlibCompressLevel = enc & 0x0F; +#ifdef VINO_HAVE_JPEG + cl->tightCompressLevel = enc & 0x0F; + rfbLog("Using compression level %d for client %s\n", + cl->tightCompressLevel, cl->host); + } else if ( enc >= (uint32_t)rfbEncodingQualityLevel0 && + enc <= (uint32_t)rfbEncodingQualityLevel9 ) { + cl->tightQualityLevel = enc & 0x0F; + rfbLog("Using image quality level %d for client %s\n", + cl->tightQualityLevel, cl->host); +#endif + } else +#endif + rfbLog("rfbProcessClientNormalMessage: ignoring unknown " + "encoding type %d\n", (int)enc); + } + } + + if (cl->preferredEncoding == -1) { + cl->preferredEncoding = rfbEncodingRaw; + } + + if (enableCursorPosUpdates && enableCursorShapeUpdates) { + rfbLog("Enabling cursor position and shape (%s encoding) updates for client %s\n", + useRichCursorEncoding ? "rich" : "X", cl->host); + cl->enableCursorUpdates = TRUE; + cl->useRichCursorEncoding = useRichCursorEncoding; + } else { + cl->enableCursorUpdates = FALSE; + cl->useRichCursorEncoding = FALSE; + } + + return; + } + + + case rfbFramebufferUpdateRequest: + { + sraRegionPtr tmpRegion; + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbFramebufferUpdateRequestMsg-1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + tmpRegion = + sraRgnCreateRect(Swap16IfLE(msg.fur.x), + Swap16IfLE(msg.fur.y), + Swap16IfLE(msg.fur.x)+Swap16IfLE(msg.fur.w), + Swap16IfLE(msg.fur.y)+Swap16IfLE(msg.fur.h)); + + LOCK(cl->updateMutex); + sraRgnOr(cl->requestedRegion,tmpRegion); + + if (!cl->readyForSetColourMapEntries) { + /* client hasn't sent a SetPixelFormat so is using server's */ + cl->readyForSetColourMapEntries = TRUE; + if (!cl->format.trueColour) { + if (!rfbSetClientColourMap(cl, 0, 0)) { + sraRgnDestroy(tmpRegion); + UNLOCK(cl->updateMutex); + return; + } + } + } + + if (!msg.fur.incremental) { + sraRgnOr(cl->modifiedRegion,tmpRegion); + sraRgnSubtract(cl->copyRegion,tmpRegion); + } + UNLOCK(cl->updateMutex); + + sraRgnDestroy(tmpRegion); + + return; + } + + case rfbKeyEvent: + + cl->rfbKeyEventsRcvd++; + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbKeyEventMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + if(!cl->viewOnly && cl->screen->kbdAddEvent) { + cl->screen->kbdAddEvent(msg.ke.down, (rfbKeySym)Swap32IfLE(msg.ke.key), cl); + } + + return; + + + case rfbPointerEvent: + + cl->rfbPointerEventsRcvd++; + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbPointerEventMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + if (pointerClient && (pointerClient != cl)) + return; + + if (msg.pe.buttonMask == 0) + pointerClient = NULL; + else + pointerClient = cl; + + if(!cl->viewOnly) { + cl->screen->ptrAddEvent(msg.pe.buttonMask, + Swap16IfLE(msg.pe.x), Swap16IfLE(msg.pe.y), cl); + } + + return; + + + case rfbClientCutText: + + if ((n = ReadExact(cl, ((char *)&msg) + 1, + sz_rfbClientCutTextMsg - 1)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + rfbCloseClient(cl); + return; + } + + msg.cct.length = Swap32IfLE(msg.cct.length); + + str = (char *)malloc(msg.cct.length); + + if ((n = ReadExact(cl, str, msg.cct.length)) <= 0) { + if (n != 0) + rfbLogPerror("rfbProcessClientNormalMessage: read"); + free(str); + rfbCloseClient(cl); + return; + } + + if(!cl->viewOnly) { + if (cl->screen->setXCutText) + cl->screen->setXCutText(str, msg.cct.length, cl); + } + free(str); + + return; + + + default: + + rfbLog("rfbProcessClientNormalMessage: unknown message type %d\n", + msg.type); + rfbLog(" ... closing connection\n"); + rfbCloseClient(cl); + return; + } +} + + + +/* + * rfbSendFramebufferUpdate - send the currently pending framebuffer update to + * the RFB client. + * givenUpdateRegion is not changed. + */ + +rfbBool +rfbSendFramebufferUpdate(rfbClientPtr cl, + sraRegionPtr givenUpdateRegion) +{ + sraRectangleIterator* i=NULL; + sraRect rect; + int nUpdateRegionRects; + rfbFramebufferUpdateMsg *fu = (rfbFramebufferUpdateMsg *)cl->updateBuf; + sraRegionPtr updateRegion, updateCopyRegion, tmpRegion, cursorRegion; + sraRect cursorBounds = { 0, 0, 0, 0 }; + int dx, dy; + rfbBool sendCursorShape = FALSE; + rfbBool sendCursorPos = FALSE; + rfbBool cursorIsDrawn = FALSE; + + /* + * If framebuffer size was changed and the client supports NewFBSize + * encoding, just send NewFBSize marker and return. + */ + + if (cl->useNewFBSize && cl->newFBSizePending) { + LOCK(cl->updateMutex); + cl->newFBSizePending = FALSE; + UNLOCK(cl->updateMutex); + cl->rfbFramebufferUpdateMessagesSent++; + fu->type = rfbFramebufferUpdate; + fu->nRects = Swap16IfLE(1); + cl->ublen = sz_rfbFramebufferUpdateMsg; + if (!rfbSendNewFBSize(cl, cl->screen->width, cl->screen->height)) { + return FALSE; + } + return rfbSendUpdateBuf(cl); + } + + LOCK(cl->updateMutex); + + /* + * The modifiedRegion may overlap the destination copyRegion. We remove + * any overlapping bits from the copyRegion (since they'd only be + * overwritten anyway). + */ + + sraRgnSubtract(cl->copyRegion,cl->modifiedRegion); + + updateRegion = sraRgnCreateRgn(givenUpdateRegion); + sraRgnOr(updateRegion,cl->copyRegion); + + /* + * If the client doesn't support cursor updates, we want to draw + * the cursor locally, send the update and then undraw it. + * We only want to do this if the cursor has moved/changed or + * if it is contained in updateRegion + * + * We also want to send an update for the region where the cursor + * was last drawn, again only if the cursor has moved/changed. + */ + + LOCK(cl->screen->cursorMutex); + + cursorRegion = NULL; + if (cl->enableCursorUpdates) { + sendCursorShape = cl->cursorWasChanged; + sendCursorPos = cl->cursorWasMoved; + } else { + sraRegionPtr lastDrawnCursorRegion; + + if (rfbGetCursorBounds(cl->screen, &cursorBounds)) { + cursorRegion = sraRgnCreateRect(cursorBounds.x1, cursorBounds.y1, + cursorBounds.x2, cursorBounds.y2); + } + + lastDrawnCursorRegion = sraRgnCreateRect(cl->lastDrawnCursorBounds.x1, + cl->lastDrawnCursorBounds.y1, + cl->lastDrawnCursorBounds.x2, + cl->lastDrawnCursorBounds.y2); + + if (cursorRegion) { + sraRgnOr(cursorRegion, lastDrawnCursorRegion); + sraRgnDestroy(lastDrawnCursorRegion); + } else { + cursorRegion = lastDrawnCursorRegion; + } + + if (cl->cursorWasChanged || cl->cursorWasMoved) + sraRgnOr(updateRegion, cursorRegion); + } + + /* + * The client is interested in the region requestedRegion. The region + * which should be updated now is the intersection of requestedRegion + * and the union of modifiedRegion and copyRegion. If it's empty then + * no update is needed. + */ + + if (!sraRgnAnd(updateRegion, cl->requestedRegion) && + !sendCursorShape && !sendCursorPos) { + sraRgnDestroy(updateRegion); + if (cursorRegion) + sraRgnDestroy(cursorRegion); + UNLOCK(cl->updateMutex); + UNLOCK(cl->cursorMutex); + return TRUE; + } + + /* + * Put up the cursor if any part of it is in updateRegion. + */ + + if (cursorRegion) { + tmpRegion = sraRgnCreateRgn(cursorRegion); + + if (sraRgnAnd(tmpRegion, updateRegion)) { + rfbDrawCursor(cl->screen, &cursorBounds); + cursorIsDrawn = TRUE; + + cl->cursorWasMoved = FALSE; + cl->cursorWasChanged = FALSE; + cl->lastDrawnCursorBounds = cursorBounds; + + sraRgnOr(cl->modifiedRegion, cursorRegion); + + sraRgnOr(updateRegion, cursorRegion); + sraRgnAnd(updateRegion, cl->requestedRegion); + } + + sraRgnDestroy(tmpRegion); + sraRgnDestroy(cursorRegion); + } + + /* + * We assume that the client doesn't have any pixel data outside the + * requestedRegion. In other words, both the source and destination of a + * copy must lie within requestedRegion. So the region we can send as a + * copy is the intersection of the copyRegion with both the requestedRegion + * and the requestedRegion translated by the amount of the copy. We set + * updateCopyRegion to this. + */ + + updateCopyRegion = sraRgnCreateRgn(cl->copyRegion); + sraRgnAnd(updateCopyRegion,cl->requestedRegion); + tmpRegion = sraRgnCreateRgn(cl->requestedRegion); + sraRgnOffset(tmpRegion,cl->copyDX,cl->copyDY); + sraRgnAnd(updateCopyRegion,tmpRegion); + sraRgnDestroy(tmpRegion); + dx = cl->copyDX; + dy = cl->copyDY; + + /* + * Next we remove updateCopyRegion from updateRegion so that updateRegion + * is the part of this update which is sent as ordinary pixel data (i.e not + * a copy). + */ + + sraRgnSubtract(updateRegion,updateCopyRegion); + + /* + * Finally we leave modifiedRegion to be the remainder (if any) of parts of + * the screen which are modified but outside the requestedRegion. We also + * empty both the requestedRegion and the copyRegion - note that we never + * carry over a copyRegion for a future update. + */ + + sraRgnOr(cl->modifiedRegion,cl->copyRegion); + sraRgnSubtract(cl->modifiedRegion,updateRegion); + sraRgnSubtract(cl->modifiedRegion,updateCopyRegion); + + sraRgnMakeEmpty(cl->requestedRegion); + sraRgnMakeEmpty(cl->copyRegion); + cl->copyDX = 0; + cl->copyDY = 0; + + UNLOCK(cl->updateMutex); + + /* + * Now send the update. + */ + + cl->rfbFramebufferUpdateMessagesSent++; + + if (cl->preferredEncoding == rfbEncodingCoRRE) { + nUpdateRegionRects = 0; + + for(i = sraRgnGetIterator(updateRegion); sraRgnIteratorNext(i,&rect);){ + int x = rect.x1; + int y = rect.y1; + int w = rect.x2 - x; + int h = rect.y2 - y; + nUpdateRegionRects += (((w-1) / cl->correMaxWidth + 1) + * ((h-1) / cl->correMaxHeight + 1)); + } + sraRgnReleaseIterator(i); +#ifdef VINO_HAVE_ZLIB + } else if (cl->preferredEncoding == rfbEncodingZlib) { + nUpdateRegionRects = 0; + + for(i = sraRgnGetIterator(updateRegion); sraRgnIteratorNext(i,&rect);){ + int x = rect.x1; + int y = rect.y1; + int w = rect.x2 - x; + int h = rect.y2 - y; + nUpdateRegionRects += (((h-1) / (ZLIB_MAX_SIZE( w ) / w)) + 1); + } +#ifdef VINO_HAVE_JPEG + } else if (cl->preferredEncoding == rfbEncodingTight) { + nUpdateRegionRects = 0; + + for(i = sraRgnGetIterator(updateRegion); sraRgnIteratorNext(i,&rect);){ + int x = rect.x1; + int y = rect.y1; + int w = rect.x2 - x; + int h = rect.y2 - y; + int n = rfbNumCodedRectsTight(cl, x, y, w, h); + if (n == 0) { + nUpdateRegionRects = 0xFFFF; + break; + } + nUpdateRegionRects += n; + } + sraRgnReleaseIterator(i); +#endif +#endif + } else { + nUpdateRegionRects = sraRgnCountRects(updateRegion); + } + + fu->type = rfbFramebufferUpdate; + if (nUpdateRegionRects != 0xFFFF) { + if(cl->screen->maxRectsPerUpdate>0 + /* CoRRE splits the screen into smaller squares */ + && cl->preferredEncoding != rfbEncodingCoRRE +#ifdef VINO_HAVE_ZLIB + /* Zlib encoding splits rectangles up into smaller chunks */ + && cl->preferredEncoding != rfbEncodingZlib +#ifdef VINO_HAVE_JPEG + /* Tight encoding counts the rectangles differently */ + && cl->preferredEncoding != rfbEncodingTight +#endif +#endif /* VINO_HAVE_ZLIB */ + && nUpdateRegionRects>cl->screen->maxRectsPerUpdate) { + sraRegion* newUpdateRegion = sraRgnBBox(updateRegion); + sraRgnDestroy(updateRegion); + updateRegion = newUpdateRegion; + nUpdateRegionRects = sraRgnCountRects(updateRegion); + } + fu->nRects = Swap16IfLE((uint16_t)(sraRgnCountRects(updateCopyRegion) + + nUpdateRegionRects + + !!sendCursorShape + !!sendCursorPos)); + } else { + fu->nRects = 0xFFFF; + } + cl->ublen = sz_rfbFramebufferUpdateMsg; + + UNLOCK(cl->cursorMutex); + + if (sendCursorShape) { + cl->cursorWasChanged = FALSE; + if (!rfbSendCursorShape(cl)) + goto tx_error; + } + + if (sendCursorPos) { + cl->cursorWasMoved = FALSE; + if (!rfbSendCursorPos(cl)) + goto tx_error; + } + + if (!sraRgnEmpty(updateCopyRegion)) { + if (!rfbSendCopyRegion(cl,updateCopyRegion,dx,dy)) + goto tx_error; + } + + for(i = sraRgnGetIterator(updateRegion); sraRgnIteratorNext(i,&rect);){ + int x = rect.x1; + int y = rect.y1; + int w = rect.x2 - x; + int h = rect.y2 - y; + + cl->rfbRawBytesEquivalent += (sz_rfbFramebufferUpdateRectHeader + + w * (cl->format.bitsPerPixel / 8) * h); + + /* Validate the rectangle given by the update packet. */ + if (w + x > cl->screen->width || h + y > cl->screen->height) + goto tx_error; + + switch (cl->preferredEncoding) { + case rfbEncodingRaw: + if (!rfbSendRectEncodingRaw(cl, x, y, w, h)) + goto tx_error; + break; + case rfbEncodingRRE: + if (!rfbSendRectEncodingRRE(cl, x, y, w, h)) + goto tx_error; + break; + case rfbEncodingCoRRE: + if (!rfbSendRectEncodingCoRRE(cl, x, y, w, h)) + goto tx_error; + break; + case rfbEncodingHextile: + if (!rfbSendRectEncodingHextile(cl, x, y, w, h)) + goto tx_error; + break; +#ifdef VINO_HAVE_ZLIB + case rfbEncodingZlib: + if (!rfbSendRectEncodingZlib(cl, x, y, w, h)) + goto tx_error; + break; +#ifdef VINO_HAVE_JPEG + case rfbEncodingTight: + if (!rfbSendRectEncodingTight(cl, x, y, w, h)) + goto tx_error; + break; +#endif +#endif +#ifdef VINO_HAVE_ZLIB + case rfbEncodingZRLE: + if (!rfbSendRectEncodingZRLE(cl, x, y, w, h)) + goto tx_error; + break; +#endif + } + } + + if (cursorIsDrawn) + rfbUndrawCursor(cl->screen, &cursorBounds); + + if ( nUpdateRegionRects == 0xFFFF && + !rfbSendLastRectMarker(cl) ) + goto tx_error; + + if (!rfbSendUpdateBuf(cl)) + goto tx_error; + + sraRgnReleaseIterator(i); + sraRgnDestroy(updateCopyRegion); + sraRgnDestroy(updateRegion); + + return TRUE; + + tx_error: + if (cursorIsDrawn) + rfbUndrawCursor(cl->screen, &cursorBounds); + if (i) + sraRgnReleaseIterator(i); + + sraRgnDestroy(updateCopyRegion); + sraRgnDestroy(updateRegion); + + return FALSE; +} + + +/* + * Send the copy region as a string of CopyRect encoded rectangles. + * The only slightly tricky thing is that we should send the messages in + * the correct order so that an earlier CopyRect will not corrupt the source + * of a later one. + */ + +rfbBool +rfbSendCopyRegion(rfbClientPtr cl, + sraRegionPtr reg, + int dx, + int dy) +{ + int x, y, w, h; + rfbFramebufferUpdateRectHeader rect; + rfbCopyRect cr; + sraRectangleIterator* i; + sraRect rect1; + + /* printf("copyrect: "); sraRgnPrint(reg); putchar('\n');fflush(stdout); */ + i = sraRgnGetReverseIterator(reg,dx>0,dy>0); + + while(sraRgnIteratorNext(i,&rect1)) { + x = rect1.x1; + y = rect1.y1; + w = rect1.x2 - x; + h = rect1.y2 - y; + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingCopyRect); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cr.srcX = Swap16IfLE(x - dx); + cr.srcY = Swap16IfLE(y - dy); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&cr, sz_rfbCopyRect); + cl->ublen += sz_rfbCopyRect; + + cl->rfbRectanglesSent[rfbEncodingCopyRect]++; + cl->rfbBytesSent[rfbEncodingCopyRect] + += sz_rfbFramebufferUpdateRectHeader + sz_rfbCopyRect; + + } + + return TRUE; +} + +/* + * Send a given rectangle in raw encoding (rfbEncodingRaw). + */ + +rfbBool +rfbSendRectEncodingRaw(rfbClientPtr cl, + int x, + int y, + int w, + int h) +{ + rfbFramebufferUpdateRectHeader rect; + int nlines; + int bytesPerLine = w * (cl->format.bitsPerPixel / 8); + char *fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) + + (x * (cl->screen->bitsPerPixel / 8))); + + /* Flush the buffer to guarantee correct alignment for translateFn(). */ + if (cl->ublen > 0) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingRaw); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect,sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbRectanglesSent[rfbEncodingRaw]++; + cl->rfbBytesSent[rfbEncodingRaw] + += sz_rfbFramebufferUpdateRectHeader + bytesPerLine * h; + + nlines = (UPDATE_BUF_SIZE - cl->ublen) / bytesPerLine; + + while (TRUE) { + if (nlines > h) + nlines = h; + + (*cl->translateFn)(cl->translateLookupTable, + &(cl->screen->rfbServerFormat), + &cl->format, fbptr, &cl->updateBuf[cl->ublen], + cl->screen->paddedWidthInBytes, w, nlines); + + cl->ublen += nlines * bytesPerLine; + h -= nlines; + + if (h == 0) /* rect fitted in buffer, do next one */ + return TRUE; + + /* buffer full - flush partial rect and do another nlines */ + + if (!rfbSendUpdateBuf(cl)) + return FALSE; + + fbptr += (cl->screen->paddedWidthInBytes * nlines); + + nlines = (UPDATE_BUF_SIZE - cl->ublen) / bytesPerLine; + if (nlines == 0) { + rfbErr("rfbSendRectEncodingRaw: send buffer too small for %d " + "bytes per line\n", bytesPerLine); + rfbCloseClient(cl); + return FALSE; + } + } +} + + + +/* + * Send an empty rectangle with encoding field set to value of + * rfbEncodingLastRect to notify client that this is the last + * rectangle in framebuffer update ("LastRect" extension of RFB + * protocol). + */ + +rfbBool +rfbSendLastRectMarker(rfbClientPtr cl) +{ + rfbFramebufferUpdateRectHeader rect; + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.encoding = Swap32IfLE(rfbEncodingLastRect); + rect.r.x = 0; + rect.r.y = 0; + rect.r.w = 0; + rect.r.h = 0; + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect,sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbLastRectMarkersSent++; + cl->rfbLastRectBytesSent += sz_rfbFramebufferUpdateRectHeader; + + return TRUE; +} + + +/* + * Send NewFBSize pseudo-rectangle. This tells the client to change + * its framebuffer size. + */ + +rfbBool +rfbSendNewFBSize(rfbClientPtr cl, + int w, + int h) +{ + rfbFramebufferUpdateRectHeader rect; + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.encoding = Swap32IfLE(rfbEncodingNewFBSize); + rect.r.x = 0; + rect.r.y = 0; + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbLastRectMarkersSent++; + cl->rfbLastRectBytesSent += sz_rfbFramebufferUpdateRectHeader; + + return TRUE; +} + + +/* + * Send the contents of cl->updateBuf. Returns 1 if successful, -1 if + * not (errno should be set). + */ + +rfbBool +rfbSendUpdateBuf(rfbClientPtr cl) +{ + if(cl->sock<0) + return FALSE; + + if (WriteExact(cl, cl->updateBuf, cl->ublen) < 0) { + rfbLogPerror("rfbSendUpdateBuf: write"); + rfbCloseClient(cl); + return FALSE; + } + + cl->ublen = 0; + return TRUE; +} + +/* + * rfbSendSetColourMapEntries sends a SetColourMapEntries message to the + * client, using values from the currently installed colormap. + */ + +rfbBool +rfbSendSetColourMapEntries(rfbClientPtr cl, + int firstColour, + int nColours) +{ + char buf[sz_rfbSetColourMapEntriesMsg + 256 * 3 * 2]; + rfbSetColourMapEntriesMsg *scme = (rfbSetColourMapEntriesMsg *)buf; + uint16_t *rgb = (uint16_t *)(&buf[sz_rfbSetColourMapEntriesMsg]); + rfbColourMap* cm = &cl->screen->colourMap; + + int i, len; + + scme->type = rfbSetColourMapEntries; + + scme->firstColour = Swap16IfLE(firstColour); + scme->nColours = Swap16IfLE(nColours); + + len = sz_rfbSetColourMapEntriesMsg; + + for (i = 0; i < nColours; i++) { + if(i<(int)cm->count) { + if(cm->is16) { + rgb[i*3] = Swap16IfLE(cm->data.shorts[i*3]); + rgb[i*3+1] = Swap16IfLE(cm->data.shorts[i*3+1]); + rgb[i*3+2] = Swap16IfLE(cm->data.shorts[i*3+2]); + } else { + rgb[i*3] = Swap16IfLE(cm->data.bytes[i*3]); + rgb[i*3+1] = Swap16IfLE(cm->data.bytes[i*3+1]); + rgb[i*3+2] = Swap16IfLE(cm->data.bytes[i*3+2]); + } + } + } + + len += nColours * 3 * 2; + + if (WriteExact(cl, buf, len) < 0) { + rfbLogPerror("rfbSendSetColourMapEntries: write"); + rfbCloseClient(cl); + return FALSE; + } + return TRUE; +} + +/* + * rfbSendBell sends a Bell message to all the clients. + */ + +void +rfbSendBell(rfbScreenInfoPtr rfbScreen) +{ + rfbClientIteratorPtr i; + rfbClientPtr cl; + rfbBellMsg b; + + i = rfbGetClientIterator(rfbScreen); + while((cl=rfbClientIteratorNext(i))) { + b.type = rfbBell; + if (WriteExact(cl, (char *)&b, sz_rfbBellMsg) < 0) { + rfbLogPerror("rfbSendBell: write"); + rfbCloseClient(cl); + } + } + rfbReleaseClientIterator(i); +} + + +/* + * rfbSendServerCutText sends a ServerCutText message to all the authenticated + * clients. + */ + +void +rfbSendServerCutText(rfbScreenInfoPtr rfbScreen,char *str, int len) +{ + rfbClientPtr cl; + rfbServerCutTextMsg sct; + rfbClientIteratorPtr iterator; + + iterator = rfbGetClientIterator(rfbScreen); + while ((cl = rfbClientIteratorNext(iterator)) != NULL) { + /* Client is not authenticated, ignore. See GNOME bug 678434. */ + if (cl->state != RFB_NORMAL) + continue; + + sct.type = rfbServerCutText; + sct.length = Swap32IfLE(len); + if (WriteExact(cl, (char *)&sct, + sz_rfbServerCutTextMsg) < 0) { + rfbLogPerror("rfbSendServerCutText: write"); + rfbCloseClient(cl); + continue; + } + if (WriteExact(cl, str, len) < 0) { + rfbLogPerror("rfbSendServerCutText: write"); + rfbCloseClient(cl); + } + } + rfbReleaseClientIterator(iterator); +} diff --git a/server/libvncserver/rre.c b/server/libvncserver/rre.c new file mode 100644 index 0000000..912d06b --- /dev/null +++ b/server/libvncserver/rre.c @@ -0,0 +1,321 @@ +/* + * rre.c + * + * Routines to implement Rise-and-Run-length Encoding (RRE). This + * code is based on krw's original javatel rfbserver. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +/* + * rreBeforeBuf contains pixel data in the client's format. + * rreAfterBuf contains the RRE encoded version. If the RRE encoded version is + * larger than the raw data or if it exceeds rreAfterBufSize then + * raw encoding is used instead. + */ + +static int rreBeforeBufSize = 0; +static char *rreBeforeBuf = NULL; + +static int rreAfterBufSize = 0; +static char *rreAfterBuf = NULL; +static int rreAfterBufLen; + +static int subrectEncode8(uint8_t *data, int w, int h); +static int subrectEncode16(uint16_t *data, int w, int h); +static int subrectEncode32(uint32_t *data, int w, int h); +static uint32_t getBgColour(char *data, int size, int bpp); + + +/* + * rfbSendRectEncodingRRE - send a given rectangle using RRE encoding. + */ + +rfbBool +rfbSendRectEncodingRRE(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + rfbFramebufferUpdateRectHeader rect; + rfbRREHeader hdr; + int nSubrects; + int i; + char *fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) + + (x * (cl->screen->bitsPerPixel / 8))); + + int maxRawSize = (cl->screen->width * cl->screen->height + * (cl->format.bitsPerPixel / 8)); + + if (rreBeforeBufSize < maxRawSize) { + rreBeforeBufSize = maxRawSize; + if (rreBeforeBuf == NULL) + rreBeforeBuf = (char *)malloc(rreBeforeBufSize); + else + rreBeforeBuf = (char *)realloc(rreBeforeBuf, rreBeforeBufSize); + } + + if (rreAfterBufSize < maxRawSize) { + rreAfterBufSize = maxRawSize; + if (rreAfterBuf == NULL) + rreAfterBuf = (char *)malloc(rreAfterBufSize); + else + rreAfterBuf = (char *)realloc(rreAfterBuf, rreAfterBufSize); + } + + (*cl->translateFn)(cl->translateLookupTable, + &(cl->screen->rfbServerFormat), + &cl->format, fbptr, rreBeforeBuf, + cl->screen->paddedWidthInBytes, w, h); + + switch (cl->format.bitsPerPixel) { + case 8: + nSubrects = subrectEncode8((uint8_t *)rreBeforeBuf, w, h); + break; + case 16: + nSubrects = subrectEncode16((uint16_t *)rreBeforeBuf, w, h); + break; + case 32: + nSubrects = subrectEncode32((uint32_t *)rreBeforeBuf, w, h); + break; + default: + rfbLog("getBgColour: bpp %d?\n",cl->format.bitsPerPixel); + return FALSE; + } + + if (nSubrects < 0) { + + /* RRE encoding was too large, use raw */ + + return rfbSendRectEncodingRaw(cl, x, y, w, h); + } + + cl->rfbRectanglesSent[rfbEncodingRRE]++; + cl->rfbBytesSent[rfbEncodingRRE] += (sz_rfbFramebufferUpdateRectHeader + + sz_rfbRREHeader + rreAfterBufLen); + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader + sz_rfbRREHeader + > UPDATE_BUF_SIZE) + { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingRRE); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + hdr.nSubrects = Swap32IfLE(nSubrects); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&hdr, sz_rfbRREHeader); + cl->ublen += sz_rfbRREHeader; + + for (i = 0; i < rreAfterBufLen;) { + + int bytesToCopy = UPDATE_BUF_SIZE - cl->ublen; + + if (i + bytesToCopy > rreAfterBufLen) { + bytesToCopy = rreAfterBufLen - i; + } + + memcpy(&cl->updateBuf[cl->ublen], &rreAfterBuf[i], bytesToCopy); + + cl->ublen += bytesToCopy; + i += bytesToCopy; + + if (cl->ublen == UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + } + + return TRUE; +} + + + +/* + * subrectEncode() encodes the given multicoloured rectangle as a background + * colour overwritten by single-coloured rectangles. It returns the number + * of subrectangles in the encoded buffer, or -1 if subrect encoding won't + * fit in the buffer. It puts the encoded rectangles in rreAfterBuf. The + * single-colour rectangle partition is not optimal, but does find the biggest + * horizontal or vertical rectangle top-left anchored to each consecutive + * coordinate position. + * + * The coding scheme is simply [<bgcolour><subrect><subrect>...] where each + * <subrect> is [<colour><x><y><w><h>]. + */ + +#define DEFINE_SUBRECT_ENCODE(bpp) \ +static int \ +subrectEncode##bpp(data,w,h) \ + uint##bpp##_t *data; \ + int w; \ + int h; \ +{ \ + uint##bpp##_t cl; \ + rfbRectangle subrect; \ + int x,y; \ + int i,j; \ + int hx=0,hy,vx=0,vy; \ + int hyflag; \ + uint##bpp##_t *seg; \ + uint##bpp##_t *line; \ + int hw,hh,vw,vh; \ + int thex,they,thew,theh; \ + int numsubs = 0; \ + int newLen; \ + uint##bpp##_t bg = (uint##bpp##_t)getBgColour((char*)data,w*h,bpp); \ + \ + *((uint##bpp##_t*)rreAfterBuf) = bg; \ + \ + rreAfterBufLen = (bpp/8); \ + \ + for (y=0; y<h; y++) { \ + line = data+(y*w); \ + for (x=0; x<w; x++) { \ + if (line[x] != bg) { \ + cl = line[x]; \ + hy = y-1; \ + hyflag = 1; \ + for (j=y; j<h; j++) { \ + seg = data+(j*w); \ + if (seg[x] != cl) {break;} \ + i = x; \ + while ((seg[i] == cl) && (i < w)) i += 1; \ + i -= 1; \ + if (j == y) vx = hx = i; \ + if (i < vx) vx = i; \ + if ((hyflag > 0) && (i >= hx)) {hy += 1;} else {hyflag = 0;} \ + } \ + vy = j-1; \ + \ + /* We now have two possible subrects: (x,y,hx,hy) and (x,y,vx,vy) \ + * We'll choose the bigger of the two. \ + */ \ + hw = hx-x+1; \ + hh = hy-y+1; \ + vw = vx-x+1; \ + vh = vy-y+1; \ + \ + thex = x; \ + they = y; \ + \ + if ((hw*hh) > (vw*vh)) { \ + thew = hw; \ + theh = hh; \ + } else { \ + thew = vw; \ + theh = vh; \ + } \ + \ + subrect.x = Swap16IfLE(thex); \ + subrect.y = Swap16IfLE(they); \ + subrect.w = Swap16IfLE(thew); \ + subrect.h = Swap16IfLE(theh); \ + \ + newLen = rreAfterBufLen + (bpp/8) + sz_rfbRectangle; \ + if ((newLen > (w * h * (bpp/8))) || (newLen > rreAfterBufSize)) \ + return -1; \ + \ + numsubs += 1; \ + *((uint##bpp##_t*)(rreAfterBuf + rreAfterBufLen)) = cl; \ + rreAfterBufLen += (bpp/8); \ + memcpy(&rreAfterBuf[rreAfterBufLen],&subrect,sz_rfbRectangle); \ + rreAfterBufLen += sz_rfbRectangle; \ + \ + /* \ + * Now mark the subrect as done. \ + */ \ + for (j=they; j < (they+theh); j++) { \ + for (i=thex; i < (thex+thew); i++) { \ + data[j*w+i] = bg; \ + } \ + } \ + } \ + } \ + } \ + \ + return numsubs; \ +} + +DEFINE_SUBRECT_ENCODE(8) +DEFINE_SUBRECT_ENCODE(16) +DEFINE_SUBRECT_ENCODE(32) + + +/* + * getBgColour() gets the most prevalent colour in a byte array. + */ +static uint32_t +getBgColour(data,size,bpp) + char *data; + int size; + int bpp; +{ + +#define NUMCLRS 256 + + static int counts[NUMCLRS]; + int i,j,k; + + int maxcount = 0; + uint8_t maxclr = 0; + + if (bpp != 8) { + if (bpp == 16) { + return ((uint16_t *)data)[0]; + } else if (bpp == 32) { + return ((uint32_t *)data)[0]; + } else { + rfbLog("getBgColour: bpp %d?\n",bpp); + return 0; + } + } + + for (i=0; i<NUMCLRS; i++) { + counts[i] = 0; + } + + for (j=0; j<size; j++) { + k = (int)(((uint8_t *)data)[j]); + if (k >= NUMCLRS) { + rfbErr("getBgColour: unusual colour = %d\n", k); + return 0; + } + counts[k] += 1; + if (counts[k] > maxcount) { + maxcount = counts[k]; + maxclr = ((uint8_t *)data)[j]; + } + } + + return maxclr; +} diff --git a/server/libvncserver/sockets.c b/server/libvncserver/sockets.c new file mode 100644 index 0000000..746a3e5 --- /dev/null +++ b/server/libvncserver/sockets.c @@ -0,0 +1,771 @@ +/* + * sockets.c - deal with TCP sockets. + * + * This code should be independent of any changes in the RFB protocol. It just + * deals with the X server scheduling stuff, calling rfbNewClientConnection and + * rfbProcessClientMessage to actually deal with the protocol. If a socket + * needs to be closed for any reason then rfbCloseClient should be called, and + * this in turn will call rfbClientConnectionGone. To make an active + * connection out, call rfbConnect - note that this does _not_ call + * rfbNewClientConnection. + * + * This file is divided into two types of function. Those beginning with + * "rfb" are specific to sockets using the RFB protocol. Those without the + * "rfb" prefix are more general socket routines (which are used by the http + * code). + * + * Thanks to Karl Hakimian for pointing out that some platforms return EAGAIN + * not EWOULDBLOCK. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif + +#ifdef WIN32 +#pragma warning (disable: 4018 4761) +#define close closesocket +#define read(sock,buf,len) recv(sock,buf,len,0) +#define EWOULDBLOCK WSAEWOULDBLOCK +#define ETIMEDOUT WSAETIMEDOUT +#define write(sock,buf,len) send(sock,buf,len,0) +#else +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif +#ifdef HAVE_NETINET_IN_H +#include <netinet/in.h> +#include <netinet/tcp.h> +#include <netdb.h> +#include <arpa/inet.h> +#endif +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#endif + +#include <net/if.h> // IFF_UP + +#ifdef HAVE_IFADDRS_H +#include <ifaddrs.h> +#else +#include "ifaddr/ifaddrs.h" +#endif + +#ifdef RFC2553 +#define ADDR_FAMILY_MEMBER ss_family +#else +#define ADDR_FAMILY_MEMBER sa_family +#endif + +#if defined(__linux__) && defined(NEED_TIMEVAL) +struct timeval +{ + long int tv_sec,tv_usec; +} +; +#endif + +#ifdef HAVE_FCNTL_H +#include <fcntl.h> +#endif + +#include <errno.h> + +/*#ifndef WIN32 +int max(int i,int j) { return(i<j?j:i); } +#endif +*/ + +int rfbMaxClientWait = 20000; /* time (ms) after which we decide client has + gone away - needed to stop us hanging */ + +/* + * rfbInitSockets sets up the TCP sockets to listen for RFB + * connections. It does nothing if called again. + */ + +static void rfbInitListenSock(rfbScreenInfoPtr rfbScreen); + +void +rfbInitSockets(rfbScreenInfoPtr rfbScreen) +{ + if (rfbScreen->socketInitDone) + return; + + rfbScreen->socketInitDone = TRUE; + + if (rfbScreen->inetdSock != -1) { + const int one = 1; + +#ifndef WIN32 + if (fcntl(rfbScreen->inetdSock, F_SETFL, O_NONBLOCK) < 0) { + rfbLogPerror("fcntl"); + return; + } +#endif + + if (setsockopt(rfbScreen->inetdSock, IPPROTO_TCP, TCP_NODELAY, + (char *)&one, sizeof(one)) < 0) { + rfbLogPerror("setsockopt"); + return; + } + + FD_ZERO(&(rfbScreen->allFds)); + FD_SET(rfbScreen->inetdSock, &(rfbScreen->allFds)); + rfbScreen->maxFd = rfbScreen->inetdSock; + return; + } + + rfbInitListenSock(rfbScreen); +} + +static void +rfbInitListenSock(rfbScreenInfoPtr rfbScreen) +{ + char *netIface = (char*)rfbScreen->netIface; + int i; + + if(netIface == NULL || if_nametoindex(netIface) == 0) { + if(netIface != NULL) + rfbLog("WARNING: This (%s) a invalid network interface, set to all\n", netIface); + netIface = NULL; + } + + if(rfbScreen->autoPort) { + rfbLog("Autoprobing TCP port in (%s) network interface\n", + netIface != NULL ? netIface : "all"); + + for (i = 5900; i < 6000; i++) { + if (ListenOnTCPPort(rfbScreen, i, netIface)) { + rfbScreen->rfbPort = i; + break; + } + } + + if (i >= 6000) { + rfbLogPerror("Failure autoprobing"); + return; + } + + rfbLog("Autoprobing selected port %d\n", rfbScreen->rfbPort); + + FD_ZERO(&rfbScreen->allFds); + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_SET(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); + rfbScreen->maxFd = rfbScreen->rfbListenSock[i]; + } + } + else if(rfbScreen->rfbPort > 0) { + rfbLog("Listening for VNC connections on TCP port %d in (%s) network interface\n", + rfbScreen->rfbPort, netIface != NULL ? netIface : "all"); + + if (!ListenOnTCPPort(rfbScreen, rfbScreen->rfbPort, netIface)) { + rfbLogPerror("ListenOnTCPPort"); + return; + } + + FD_ZERO(&rfbScreen->allFds); + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_SET(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); + rfbScreen->maxFd = rfbScreen->rfbListenSock[i]; + } + } +} + +void +rfbSetAutoPort(rfbScreenInfoPtr rfbScreen, rfbBool autoPort) +{ + if (rfbScreen->autoPort == autoPort) + return; + + rfbScreen->autoPort = autoPort; + + if (!rfbScreen->socketInitDone) + return; + + if (rfbScreen->rfbListenSockTotal > 0) { + int i; + + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_CLR(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); + close(rfbScreen->rfbListenSock[i]); + rfbScreen->rfbListenSock[i] = -1; + } + rfbScreen->rfbListenSockTotal = 0; + } + + rfbInitListenSock(rfbScreen); +} + +void +rfbSetPort(rfbScreenInfoPtr rfbScreen, int port) +{ + if (rfbScreen->rfbPort == port) + return; + + rfbScreen->rfbPort = port; + + if (!rfbScreen->socketInitDone || rfbScreen->autoPort) + return; + + if (rfbScreen->rfbListenSockTotal > 0) { + int i; + + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_CLR(rfbScreen->rfbListenSock[i], &rfbScreen->allFds); + close(rfbScreen->rfbListenSock[i]); + rfbScreen->rfbListenSock[i] = -1; + } + rfbScreen->rfbListenSockTotal = 0; + } + + rfbInitListenSock(rfbScreen); +} + +void +rfbProcessNewConnection(rfbScreenInfoPtr rfbScreen, int insock) +{ + const int one = 1; + int sock = -1; + + if((sock = accept(insock, NULL, NULL)) < 0) { + rfbLogPerror("rfbCheckFds: accept"); + return; + } + + if(sock < 0) { + rfbLogPerror("rfbCheckFds: accept"); + return; + } + +#ifndef WIN32 + if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) { + rfbLogPerror("rfbCheckFds: fcntl"); + close(sock); + return; + } +#endif + + if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one)) < 0) { + rfbLogPerror("rfbCheckFds: setsockopt"); + close(sock); + return; + } + + rfbNewClient(rfbScreen,sock); +} + +/* + * rfbCheckFds is called from ProcessInputEvents to check for input on the RFB + * socket(s). If there is input to process, the appropriate function in the + * RFB server code will be called (rfbNewClientConnection, + * rfbProcessClientMessage, etc). + */ + +void +rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec) +{ + int nfds; + int n; + fd_set fds; + struct timeval tv; + rfbClientIteratorPtr i; + rfbClientPtr cl; + + if (!rfbScreen->inetdInitDone && rfbScreen->inetdSock != -1) { + rfbNewClientConnection(rfbScreen,rfbScreen->inetdSock); + rfbScreen->inetdInitDone = TRUE; + } + + memcpy(&fds, &rfbScreen->allFds, sizeof(fd_set)); + tv.tv_sec = 0; + tv.tv_usec = usec; + nfds = select(rfbScreen->maxFd + 1, &fds, NULL, NULL /* &fds */, &tv); + if (nfds == 0) { + return; + } + if (nfds < 0) { +#ifdef WIN32 + errno = WSAGetLastError(); +#endif + if (errno != EINTR) + rfbLogPerror("rfbCheckFds: select"); + return; + } + printf("DUMP: nfds = %d\n", nfds); + for(n=0; n < rfbScreen->rfbListenSockTotal; n++) { + if (rfbScreen->rfbListenSock[n] != -1 && FD_ISSET(rfbScreen->rfbListenSock[n], &fds)) { + rfbProcessNewConnection(rfbScreen, rfbScreen->rfbListenSock[n]); + FD_CLR(rfbScreen->rfbListenSock[n], &fds); + if (--nfds == 0) + return; + } + } + + i = rfbGetClientIterator(rfbScreen); + while((cl = rfbClientIteratorNext(i))) { + if (cl->onHold) + continue; + if (FD_ISSET(cl->sock, &fds) && FD_ISSET(cl->sock, &(rfbScreen->allFds))) + rfbProcessClientMessage(cl); + } + rfbReleaseClientIterator(i); +} + +void +rfbCloseClient(cl) + rfbClientPtr cl; +{ + rfbAuthCleanupClient(cl); + + LOCK(cl->updateMutex); +#ifdef LIBVNCSERVER_HAVE_LIBPTHREAD + if (cl->sock != -1) +#endif + { + FD_CLR(cl->sock,&(cl->screen->allFds)); + if(cl->sock==cl->screen->maxFd) + while(cl->screen->maxFd>0 + && !FD_ISSET(cl->screen->maxFd,&(cl->screen->allFds))) + cl->screen->maxFd--; + shutdown(cl->sock,SHUT_RDWR); + close(cl->sock); + cl->sock = -1; + } + UNLOCK(cl->updateMutex); +} + + +#ifdef VINO_HAVE_GNUTLS +static int +ReadExactOverTLS(rfbClientPtr cl, char* buf, int len, int timeout) +{ + while (len > 0) { + int n; + + n = gnutls_record_recv(cl->tlsSession, buf, len); + if (n == 0) { + UNLOCK(cl->outputMutex); + return 0; + + } else if (n < 0) { + if (n == GNUTLS_E_INTERRUPTED || n == GNUTLS_E_AGAIN) + continue; + + UNLOCK(cl->outputMutex); + return -1; + } + + buf += n; + len -= n; + } + + return 1; +} +#endif /* VINO_HAVE_GNUTLS */ + +/* + * ReadExact reads an exact number of bytes from a client. Returns 1 if + * those bytes have been read, 0 if the other end has closed, or -1 if an error + * occurred (errno is set to ETIMEDOUT if it timed out). + */ + +int +ReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout) +{ + int sock = cl->sock; + int n; + fd_set fds; + struct timeval tv; + +#ifdef VINO_HAVE_GNUTLS + if (cl->useTLS) + return ReadExactOverTLS(cl, buf, len, timeout); +#endif + + while (len > 0) { + n = read(sock, buf, len); + + if (n > 0) { + + buf += n; + len -= n; + + } else if (n == 0) { + + return 0; + + } else { +#ifdef WIN32 + errno = WSAGetLastError(); +#endif + if (errno == EINTR) + continue; + + if (errno != EWOULDBLOCK && errno != EAGAIN) { + return n; + } + + FD_ZERO(&fds); + FD_SET(sock, &fds); + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + n = select(sock+1, &fds, NULL, &fds, &tv); + if (n < 0) { + rfbLogPerror("ReadExact: select"); + return n; + } + if (n == 0) { + errno = ETIMEDOUT; + return -1; + } + } + } + return 1; +} + +int ReadExact(rfbClientPtr cl,char* buf,int len) +{ + return(ReadExactTimeout(cl,buf,len,rfbMaxClientWait)); +} + +#ifdef VINO_HAVE_GNUTLS +extern int ReadPending(rfbClientPtr cl) +{ + if (cl->useTLS && cl->tlsSession) + return gnutls_record_check_pending(cl->tlsSession); + else + return 0; +} +#else +extern int ReadPending(rfbClientPtr cl) +{ + return 0; +} +#endif + +#ifdef VINO_HAVE_GNUTLS +static int +WriteExactOverTLS(rfbClientPtr cl, const char* buf, int len) +{ + LOCK(cl->outputMutex); + + while (len > 0) { + int n; + + n = gnutls_record_send(cl->tlsSession, buf, len); + if (n == 0) { + UNLOCK(cl->outputMutex); + return 0; + + } else if (n < 0) { + if (n == GNUTLS_E_INTERRUPTED || n == GNUTLS_E_AGAIN) + continue; + + UNLOCK(cl->outputMutex); + return -1; + } + + buf += n; + len -= n; + } + + UNLOCK(cl->outputMutex); + + return 1; +} +#endif /* VINO_HAVE_GNUTLS */ + +/* + * WriteExact writes an exact number of bytes to a client. Returns 1 if + * those bytes have been written, or -1 if an error occurred (errno is set to + * ETIMEDOUT if it timed out). + */ + +int +WriteExact(rfbClientPtr cl, const char* buf, int len) +{ + int sock = cl->sock; + int n; + fd_set fds; + struct timeval tv; + int totalTimeWaited = 0; + +#ifdef VINO_HAVE_GNUTLS + if (cl->useTLS) + return WriteExactOverTLS(cl, buf, len); +#endif + + LOCK(cl->outputMutex); + while (len > 0) { + n = write(sock, buf, len); + + if (n > 0) { + + buf += n; + len -= n; + + } else if (n == 0) { + + rfbErr("WriteExact: write returned 0?\n"); + return 0; + + } else { +#ifdef WIN32 + errno = WSAGetLastError(); +#endif + if (errno == EINTR) + continue; + + if (errno != EWOULDBLOCK && errno != EAGAIN) { + UNLOCK(cl->outputMutex); + return n; + } + + /* Retry every 5 seconds until we exceed rfbMaxClientWait. We + need to do this because select doesn't necessarily return + immediately when the other end has gone away */ + + FD_ZERO(&fds); + FD_SET(sock, &fds); + tv.tv_sec = 5; + tv.tv_usec = 0; + n = select(sock+1, NULL, &fds, NULL /* &fds */, &tv); + if (n < 0) { + rfbLogPerror("WriteExact: select"); + UNLOCK(cl->outputMutex); + return n; + } + if (n == 0) { + totalTimeWaited += 5000; + if (totalTimeWaited >= rfbMaxClientWait) { + errno = ETIMEDOUT; + UNLOCK(cl->outputMutex); + return -1; + } + } else { + totalTimeWaited = 0; + } + } + } + UNLOCK(cl->outputMutex); + return 1; +} + +rfbBool +ListenOnTCPPort(rfbScreenInfoPtr rfbScreen, int port, const char *netIface) +{ + int sock = -1; + int *psock = NULL; + int *ptot = NULL; + struct ifaddrs *myaddrs = NULL; + struct ifaddrs *ifa = NULL; + + if(rfbScreen == NULL) + return FALSE; + + psock = rfbScreen->rfbListenSock; + ptot = &rfbScreen->rfbListenSockTotal; + *ptot = 0; + + if(netIface == NULL || strlen(netIface) == 0) + { +#ifdef VINO_ENABLE_IPV6 + int sock6 = -1; + struct sockaddr_in6 s6; + + memset(&s6, 0, sizeof(s6)); + s6.sin6_family = AF_INET6; + s6.sin6_port = htons(port); + s6.sin6_addr = in6addr_any; + + sock6 = NewSocketListenTCP ((struct sockaddr*)&s6, sizeof(s6)); + rfbLog("Listening IPv6://[::]:%d\n", port); +#endif + + struct sockaddr_in s4; + + memset(&s4, 0, sizeof(s4)); + s4.sin_family = AF_INET; + s4.sin_port = htons(port); + s4.sin_addr.s_addr = htonl(INADDR_ANY); + + sock = NewSocketListenTCP ((struct sockaddr*)&s4, sizeof(s4)); + rfbLog("Listening IPv4://0.0.0.0:%d\n", port); + +#ifdef VINO_ENABLE_IPV6 + if(sock6 > 0) { + psock[*ptot] = sock6; + *ptot += 1; + } +#endif + if(sock > 0) { + psock[*ptot] = sock; + *ptot += 1; + } + + if (*ptot) + return TRUE; + + /* no need to log sock/sock6, both are -1 here */ + rfbLog("Problems in NewSocketListenTCP()\n"); + return FALSE; + } + + if(getifaddrs(&myaddrs) != 0) { + rfbLogPerror("getifaddrs\n"); + return FALSE; + } + + for (ifa = myaddrs; ifa != NULL && *ptot < RFB_MAX_SOCKETLISTEN; ifa = ifa->ifa_next) { + char buf[64] = { 0, }; + + if (ifa->ifa_addr == NULL || (ifa->ifa_flags & IFF_UP) == 0) + continue; + + if (ifa->ifa_addr->ADDR_FAMILY_MEMBER == AF_INET) { + struct sockaddr_in *s4 = (struct sockaddr_in*)ifa->ifa_addr; + s4->sin_port = htons(port); + + if (inet_ntop(s4->sin_family, (struct sockaddr*)&s4->sin_addr, buf, sizeof(buf)) == NULL) { + rfbLog("%s: inet_ntop failed!\n", ifa->ifa_name); + continue; + } + else if(!strcmp(ifa->ifa_name, netIface)) { + rfbLog("Listening IPv4://%s:%d\n", buf, port); + sock = NewSocketListenTCP((struct sockaddr*)s4, INET_ADDRSTRLEN); + } + } +#ifdef VINO_ENABLE_IPV6 + if (ifa->ifa_addr->ADDR_FAMILY_MEMBER == AF_INET6) { + struct sockaddr_in6 *s6 = (struct sockaddr_in6*)ifa->ifa_addr; + s6->sin6_port = htons(port); + + if (inet_ntop(ifa->ifa_addr->ADDR_FAMILY_MEMBER, (struct sockaddr*)&s6->sin6_addr, buf, sizeof(buf)) == NULL) { + rfbLog("%s: inet_ntop failed!\n", ifa->ifa_name); + continue; + } + else if(!strcmp(ifa->ifa_name, netIface)) { + rfbLog("Listening IPv6://%s:%d\n", buf, port); + sock = NewSocketListenTCP((struct sockaddr*)s6, INET6_ADDRSTRLEN); + } + } +#endif + + if(sock > 0) { + psock[*ptot] = sock; + *ptot += 1; + sock = -1; + } + } + + freeifaddrs(myaddrs); + + return TRUE; +} + +int +NewSocketListenTCP(struct sockaddr *addr, socklen_t len) +{ + int sock = -1; + int one = 1; + + if ((sock = socket(addr->sa_family, SOCK_STREAM, 0)) < 0) + return -1; + + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one)) < 0) { + close(sock); + return -1; + } + +#ifdef VINO_ENABLE_IPV6 + if (addr->sa_family == AF_INET6) { +#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY) + setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&one, sizeof(one)); + /* we cannot really check for errors here */ +#endif + } +#endif + + if (bind(sock, addr, len) < 0) { + close(sock); + return -1; + } + + if (listen(sock, 5) < 0) { + close(sock); + return -1; + } + + return sock; +} + +rfbBool +rfbSetNetworkInterface(rfbScreenInfoPtr rfbScreen, const char *netIface) +{ + int i; + + if (!rfbScreen->socketInitDone || !rfbScreen->socketInitDone) + return FALSE; + + if(rfbScreen->rfbListenSockTotal > 0) { + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_CLR(rfbScreen->rfbListenSock[i], &(rfbScreen->allFds)); + close(rfbScreen->rfbListenSock[i]); + rfbScreen->rfbListenSock[i] = -1; + } + rfbScreen->rfbListenSockTotal = 0; + } + + if(netIface != NULL && strlen(netIface) > 0 && if_nametoindex(netIface) > 0) { + rfbScreen->netIface = netIface; + } + else { + rfbScreen->netIface = NULL; + if(netIface != NULL) + rfbLog("WARNING: This (%s) a invalid network interface, set to all\n", netIface); + } + + rfbLog("Re-binding socket to listen for VNC connections on TCP port %d in (%s) interface\n", + rfbScreen->rfbPort, rfbScreen->netIface != NULL ? rfbScreen->netIface : "all"); + + if (!ListenOnTCPPort(rfbScreen, rfbScreen->rfbPort, rfbScreen->netIface)) { + rfbLogPerror("ListenOnTCPPort"); + return FALSE; + } + + for(i=0; i < rfbScreen->rfbListenSockTotal; i++) { + FD_SET(rfbScreen->rfbListenSock[i], &(rfbScreen->allFds)); + rfbScreen->maxFd = max(rfbScreen->rfbListenSock[i], rfbScreen->maxFd); + } + + return TRUE; +} + diff --git a/server/libvncserver/stats.c b/server/libvncserver/stats.c new file mode 100644 index 0000000..b350d68 --- /dev/null +++ b/server/libvncserver/stats.c @@ -0,0 +1,115 @@ +/* + * stats.c + */ + +/* + * Copyright (C) 2002 RealVNC Ltd. + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" + +static const char* encNames[] = { + "raw", "copyRect", "RRE", "[encoding 3]", "CoRRE", "hextile", + "zlib", "tight", "[encoding 8]", "[encoding 9]", "[encoding 10]", + "[encoding 11]", "[encoding 12]", "[encoding 13]", "[encoding 14]", + "[encoding 15]", "ZRLE", "[encoding 17]", "[encoding 18]", + "[encoding 19]", "[encoding 20]" +}; + + +void +rfbResetStats(rfbClientPtr cl) +{ + int i; + for (i = 0; i < MAX_ENCODINGS; i++) { + cl->rfbBytesSent[i] = 0; + cl->rfbRectanglesSent[i] = 0; + } + cl->rfbLastRectMarkersSent = 0; + cl->rfbLastRectBytesSent = 0; + cl->rfbCursorShapeBytesSent = 0; + cl->rfbCursorShapeUpdatesSent = 0; + cl->rfbCursorPosBytesSent = 0; + cl->rfbCursorPosUpdatesSent = 0; + cl->rfbFramebufferUpdateMessagesSent = 0; + cl->rfbRawBytesEquivalent = 0; + cl->rfbKeyEventsRcvd = 0; + cl->rfbPointerEventsRcvd = 0; +} + +void +rfbPrintStats(rfbClientPtr cl) +{ + int i; + int totalRectanglesSent = 0; + int totalBytesSent = 0; + + rfbLog("Statistics:\n"); + + if ((cl->rfbKeyEventsRcvd != 0) || (cl->rfbPointerEventsRcvd != 0)) + rfbLog(" key events received %d, pointer events %d\n", + cl->rfbKeyEventsRcvd, cl->rfbPointerEventsRcvd); + + for (i = 0; i < MAX_ENCODINGS; i++) { + totalRectanglesSent += cl->rfbRectanglesSent[i]; + totalBytesSent += cl->rfbBytesSent[i]; + } + + totalRectanglesSent += (cl->rfbCursorShapeUpdatesSent + + cl->rfbCursorPosUpdatesSent + + cl->rfbLastRectMarkersSent); + totalBytesSent += (cl->rfbCursorShapeBytesSent + + cl->rfbCursorPosBytesSent + + cl->rfbLastRectBytesSent); + + rfbLog(" framebuffer updates %d, rectangles %d, bytes %d\n", + cl->rfbFramebufferUpdateMessagesSent, totalRectanglesSent, + totalBytesSent); + + if (cl->rfbLastRectMarkersSent != 0) + rfbLog(" LastRect and NewFBSize markers %d, bytes %d\n", + cl->rfbLastRectMarkersSent, cl->rfbLastRectBytesSent); + + if (cl->rfbCursorShapeUpdatesSent != 0) + rfbLog(" cursor shape updates %d, bytes %d\n", + cl->rfbCursorShapeUpdatesSent, cl->rfbCursorShapeBytesSent); + + if (cl->rfbCursorPosUpdatesSent != 0) + rfbLog(" cursor position updates %d, bytes %d\n", + cl->rfbCursorPosUpdatesSent, cl->rfbCursorPosBytesSent); + + for (i = 0; i < MAX_ENCODINGS; i++) { + if (cl->rfbRectanglesSent[i] != 0) + rfbLog(" %s rectangles %d, bytes %d\n", + encNames[i], cl->rfbRectanglesSent[i], cl->rfbBytesSent[i]); + } + + if ((totalBytesSent - cl->rfbBytesSent[rfbEncodingCopyRect]) != 0) { + rfbLog(" raw bytes equivalent %d, compression ratio %f\n", + cl->rfbRawBytesEquivalent, + (double)cl->rfbRawBytesEquivalent + / (double)(totalBytesSent + - cl->rfbBytesSent[rfbEncodingCopyRect]- + cl->rfbCursorShapeBytesSent - + cl->rfbCursorPosBytesSent - + cl->rfbLastRectBytesSent)); + } +} diff --git a/server/libvncserver/tableinit24.c b/server/libvncserver/tableinit24.c new file mode 100644 index 0000000..39e9920 --- /dev/null +++ b/server/libvncserver/tableinit24.c @@ -0,0 +1,157 @@ +/* + 24 bit + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +static void +rfbInitOneRGBTable24 (uint8_t *table, int inMax, int outMax, int outShift,int swap); + + +static void +rfbInitColourMapSingleTable24(char **table, rfbPixelFormat *in, + rfbPixelFormat *out,rfbColourMap* colourMap) +{ + uint32_t i, r, g, b, outValue; + uint8_t *t; + uint8_t c; + unsigned int nEntries = 1 << in->bitsPerPixel; + int shift = colourMap->is16?16:8; + + if (*table) free(*table); + *table = (char *)malloc(nEntries * 3 + 1); + t = (uint8_t *)*table; + + for (i = 0; i < nEntries; i++) { + r = g = b = 0; + if(i < colourMap->count) { + if(colourMap->is16) { + r = colourMap->data.shorts[3*i+0]; + g = colourMap->data.shorts[3*i+1]; + b = colourMap->data.shorts[3*i+2]; + } else { + r = colourMap->data.bytes[3*i+0]; + g = colourMap->data.bytes[3*i+1]; + b = colourMap->data.bytes[3*i+2]; + } + } + outValue = ((((r * (1 + out->redMax)) >> shift) << out->redShift) | + (((g * (1 + out->greenMax)) >> shift) << out->greenShift) | + (((b * (1 + out->blueMax)) >> shift) << out->blueShift)); + *(uint32_t*)&t[3*i] = outValue; + if(!rfbEndianTest) + memmove(t+3*i,t+3*i+1,3); + if (out->bigEndian != in->bigEndian) { + c = t[3*i]; t[3*i] = t[3*i+2]; t[3*i+2] = c; + } + } +} + +/* + * rfbInitTrueColourSingleTable sets up a single lookup table for truecolour + * translation. + */ + +static void +rfbInitTrueColourSingleTable24 (char **table, rfbPixelFormat *in, + rfbPixelFormat *out) +{ + int i,outValue; + int inRed, inGreen, inBlue, outRed, outGreen, outBlue; + uint8_t *t; + uint8_t c; + int nEntries = 1 << in->bitsPerPixel; + + if (*table) free(*table); + *table = (char *)malloc(nEntries * 3 + 1); + t = (uint8_t *)*table; + + for (i = 0; i < nEntries; i++) { + inRed = (i >> in->redShift) & in->redMax; + inGreen = (i >> in->greenShift) & in->greenMax; + inBlue = (i >> in->blueShift) & in->blueMax; + + outRed = (inRed * out->redMax + in->redMax / 2) / in->redMax; + outGreen = (inGreen * out->greenMax + in->greenMax / 2) / in->greenMax; + outBlue = (inBlue * out->blueMax + in->blueMax / 2) / in->blueMax; + + outValue = ((outRed << out->redShift) | + (outGreen << out->greenShift) | + (outBlue << out->blueShift)); + *(uint32_t*)&t[3*i] = outValue; + if(!rfbEndianTest) + memmove(t+3*i,t+3*i+1,3); + if (out->bigEndian != in->bigEndian) { + c = t[3*i]; t[3*i] = t[3*i+2]; t[3*i+2] = c; + } + } +} + + +/* + * rfbInitTrueColourRGBTables sets up three separate lookup tables for the + * red, green and blue values. + */ + +static void +rfbInitTrueColourRGBTables24 (char **table, rfbPixelFormat *in, + rfbPixelFormat *out) +{ + uint8_t *redTable; + uint8_t *greenTable; + uint8_t *blueTable; + + if (*table) free(*table); + *table = (char *)malloc((in->redMax + in->greenMax + in->blueMax + 3) + * 3 + 1); + redTable = (uint8_t *)*table; + greenTable = redTable + 3*(in->redMax + 1); + blueTable = greenTable + 3*(in->greenMax + 1); + + rfbInitOneRGBTable24 (redTable, in->redMax, out->redMax, + out->redShift, (out->bigEndian != in->bigEndian)); + rfbInitOneRGBTable24 (greenTable, in->greenMax, out->greenMax, + out->greenShift, (out->bigEndian != in->bigEndian)); + rfbInitOneRGBTable24 (blueTable, in->blueMax, out->blueMax, + out->blueShift, (out->bigEndian != in->bigEndian)); +} + +static void +rfbInitOneRGBTable24 (uint8_t *table, int inMax, int outMax, int outShift, + int swap) +{ + int i; + int nEntries = inMax + 1; + uint32_t outValue; + uint8_t c; + + for (i = 0; i < nEntries; i++) { + outValue = ((i * outMax + inMax / 2) / inMax) << outShift; + *(uint32_t *)&table[3*i] = outValue; + if(!rfbEndianTest) + memmove(table+3*i,table+3*i+1,3); + if (swap) { + c = table[3*i]; table[3*i] = table[3*i+2]; + table[3*i+2] = c; + } + } +} diff --git a/server/libvncserver/tableinitcmtemplate.c b/server/libvncserver/tableinitcmtemplate.c new file mode 100644 index 0000000..df01b23 --- /dev/null +++ b/server/libvncserver/tableinitcmtemplate.c @@ -0,0 +1,84 @@ +/* + * tableinitcmtemplate.c - template for initialising lookup tables for + * translation from a colour map to true colour. + * + * This file shouldn't be compiled. It is included multiple times by + * translate.c, each time with a different definition of the macro OUT. + * For each value of OUT, this file defines a function which allocates an + * appropriately sized lookup table and initialises it. + * + * I know this code isn't nice to read because of all the macros, but + * efficiency is important here. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#if !defined(OUT) +#error "This file shouldn't be compiled." +#error "It is included as part of translate.c" +#endif + +#define OUT_T CONCAT3E(uint,OUT,_t) +#define SwapOUT(x) CONCAT2E(Swap,OUT(x)) +#define rfbInitColourMapSingleTableOUT \ + CONCAT2E(rfbInitColourMapSingleTable,OUT) + +static void +rfbInitColourMapSingleTableOUT(char **table, rfbPixelFormat *in, + rfbPixelFormat *out,rfbColourMap* colourMap) +{ + uint32_t i, r, g, b; + OUT_T *t; + uint32_t nEntries = 1 << in->bitsPerPixel; + int shift = colourMap->is16?16:8; + + if (*table) free(*table); + *table = (char *)malloc(nEntries * sizeof(OUT_T)); + t = (OUT_T *)*table; + + for (i = 0; i < nEntries; i++) { + r = g = b = 0; + if(i < colourMap->count) { + if(colourMap->is16) { + r = colourMap->data.shorts[3*i+0]; + g = colourMap->data.shorts[3*i+1]; + b = colourMap->data.shorts[3*i+2]; + } else { + r = colourMap->data.bytes[3*i+0]; + g = colourMap->data.bytes[3*i+1]; + b = colourMap->data.bytes[3*i+2]; + } + } + t[i] = ((((r * (1 + out->redMax)) >> shift) << out->redShift) | + (((g * (1 + out->greenMax)) >> shift) << out->greenShift) | + (((b * (1 + out->blueMax)) >> shift) << out->blueShift)); +#if (OUT != 8) + if (out->bigEndian != in->bigEndian) { + t[i] = SwapOUT(t[i]); + } +#endif + } +} + +#undef OUT_T +#undef SwapOUT +#undef rfbInitColourMapSingleTableOUT diff --git a/server/libvncserver/tableinittctemplate.c b/server/libvncserver/tableinittctemplate.c new file mode 100644 index 0000000..8d4f742 --- /dev/null +++ b/server/libvncserver/tableinittctemplate.c @@ -0,0 +1,142 @@ +/* + * tableinittctemplate.c - template for initialising lookup tables for + * truecolour to truecolour translation. + * + * This file shouldn't be compiled. It is included multiple times by + * translate.c, each time with a different definition of the macro OUT. + * For each value of OUT, this file defines two functions for initialising + * lookup tables. One is for truecolour translation using a single lookup + * table, the other is for truecolour translation using three separate + * lookup tables for the red, green and blue values. + * + * I know this code isn't nice to read because of all the macros, but + * efficiency is important here. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#if !defined(OUT) +#error "This file shouldn't be compiled." +#error "It is included as part of translate.c" +#endif + +#define OUT_T CONCAT3E(uint,OUT,_t) +#define SwapOUT(x) CONCAT2E(Swap,OUT(x)) +#define rfbInitTrueColourSingleTableOUT \ + CONCAT2E(rfbInitTrueColourSingleTable,OUT) +#define rfbInitTrueColourRGBTablesOUT CONCAT2E(rfbInitTrueColourRGBTables,OUT) +#define rfbInitOneRGBTableOUT CONCAT2E(rfbInitOneRGBTable,OUT) + +static void +rfbInitOneRGBTableOUT (OUT_T *table, int inMax, int outMax, int outShift, + int swap); + + +/* + * rfbInitTrueColourSingleTable sets up a single lookup table for truecolour + * translation. + */ + +static void +rfbInitTrueColourSingleTableOUT (char **table, rfbPixelFormat *in, + rfbPixelFormat *out) +{ + int i; + int inRed, inGreen, inBlue, outRed, outGreen, outBlue; + OUT_T *t; + int nEntries = 1 << in->bitsPerPixel; + + if (*table) free(*table); + *table = (char *)malloc(nEntries * sizeof(OUT_T)); + t = (OUT_T *)*table; + + for (i = 0; i < nEntries; i++) { + inRed = (i >> in->redShift) & in->redMax; + inGreen = (i >> in->greenShift) & in->greenMax; + inBlue = (i >> in->blueShift) & in->blueMax; + + outRed = (inRed * out->redMax + in->redMax / 2) / in->redMax; + outGreen = (inGreen * out->greenMax + in->greenMax / 2) / in->greenMax; + outBlue = (inBlue * out->blueMax + in->blueMax / 2) / in->blueMax; + + t[i] = ((outRed << out->redShift) | + (outGreen << out->greenShift) | + (outBlue << out->blueShift)); +#if (OUT != 8) + if (out->bigEndian != in->bigEndian) { + t[i] = SwapOUT(t[i]); + } +#endif + } +} + + +/* + * rfbInitTrueColourRGBTables sets up three separate lookup tables for the + * red, green and blue values. + */ + +static void +rfbInitTrueColourRGBTablesOUT (char **table, rfbPixelFormat *in, + rfbPixelFormat *out) +{ + OUT_T *redTable; + OUT_T *greenTable; + OUT_T *blueTable; + + if (*table) free(*table); + *table = (char *)malloc((in->redMax + in->greenMax + in->blueMax + 3) + * sizeof(OUT_T)); + redTable = (OUT_T *)*table; + greenTable = redTable + in->redMax + 1; + blueTable = greenTable + in->greenMax + 1; + + rfbInitOneRGBTableOUT (redTable, in->redMax, out->redMax, + out->redShift, (out->bigEndian != in->bigEndian)); + rfbInitOneRGBTableOUT (greenTable, in->greenMax, out->greenMax, + out->greenShift, (out->bigEndian != in->bigEndian)); + rfbInitOneRGBTableOUT (blueTable, in->blueMax, out->blueMax, + out->blueShift, (out->bigEndian != in->bigEndian)); +} + +static void +rfbInitOneRGBTableOUT (OUT_T *table, int inMax, int outMax, int outShift, + int swap) +{ + int i; + int nEntries = inMax + 1; + + for (i = 0; i < nEntries; i++) { + table[i] = ((i * outMax + inMax / 2) / inMax) << outShift; +#if (OUT != 8) + if (swap) { + table[i] = SwapOUT(table[i]); + } +#endif + } +} + +#undef OUT_T +#undef SwapOUT +#undef rfbInitTrueColourSingleTableOUT +#undef rfbInitTrueColourRGBTablesOUT +#undef rfbInitOneRGBTableOUT diff --git a/server/libvncserver/tabletrans24template.c b/server/libvncserver/tabletrans24template.c new file mode 100644 index 0000000..4b3a0a0 --- /dev/null +++ b/server/libvncserver/tabletrans24template.c @@ -0,0 +1,281 @@ +/* + * tabletranstemplate.c - template for translation using lookup tables. + * + * This file shouldn't be compiled. It is included multiple times by + * translate.c, each time with different definitions of the macros IN and OUT. + * + * For each pair of values IN and OUT, this file defines two functions for + * translating a given rectangle of pixel data. One uses a single lookup + * table, and the other uses three separate lookup tables for the red, green + * and blue values. + * + * I know this code isn't nice to read because of all the macros, but + * efficiency is important here. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#if !defined(BPP) +#error "This file shouldn't be compiled." +#error "It is included as part of translate.c" +#endif + +#if BPP == 24 + +/* + * rfbTranslateWithSingleTableINtoOUT translates a rectangle of pixel data + * using a single lookup table. + */ + +static void +rfbTranslateWithSingleTable24to24 (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + uint8_t *ip = (uint8_t *)iptr; + uint8_t *op = (uint8_t *)optr; + int ipextra = bytesBetweenInputLines - width * 3; + uint8_t *opLineEnd; + uint8_t *t = (uint8_t *)table; + int shift = rfbEndianTest?0:8; + uint8_t c; + + while (height > 0) { + opLineEnd = op + width*3; + + while (op < opLineEnd) { + *(uint32_t*)op = t[((*(uint32_t *)ip)>>shift)&0x00ffffff]; + if(!rfbEndianTest) + memmove(op,op+1,3); + if (out->bigEndian != in->bigEndian) { + c = op[0]; op[0] = op[2]; op[2] = c; + } + op += 3; + ip += 3; + } + + ip += ipextra; + height--; + } +} + +/* + * rfbTranslateWithRGBTablesINtoOUT translates a rectangle of pixel data + * using three separate lookup tables for the red, green and blue values. + */ + +static void +rfbTranslateWithRGBTables24to24 (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + uint8_t *ip = (uint8_t *)iptr; + uint8_t *op = (uint8_t *)optr; + int ipextra = bytesBetweenInputLines - width*3; + uint8_t *opLineEnd; + uint8_t *redTable = (uint8_t *)table; + uint8_t *greenTable = redTable + 3*(in->redMax + 1); + uint8_t *blueTable = greenTable + 3*(in->greenMax + 1); + uint32_t outValue,inValue; + int shift = rfbEndianTest?0:8; + + while (height > 0) { + opLineEnd = op+3*width; + + while (op < opLineEnd) { + inValue = ((*(uint32_t *)ip)>>shift)&0x00ffffff; + outValue = (redTable[(inValue >> in->redShift) & in->redMax] | + greenTable[(inValue >> in->greenShift) & in->greenMax] | + blueTable[(inValue >> in->blueShift) & in->blueMax]); + memcpy(op,&outValue,3); + op += 3; + ip+=3; + } + ip += ipextra; + height--; + } +} + +#else + +#define IN_T CONCAT3E(uint,BPP,_t) +#define OUT_T CONCAT3E(uint,BPP,_t) +#define rfbTranslateWithSingleTable24toOUT \ + CONCAT4E(rfbTranslateWithSingleTable,24,to,BPP) +#define rfbTranslateWithSingleTableINto24 \ + CONCAT4E(rfbTranslateWithSingleTable,BPP,to,24) +#define rfbTranslateWithRGBTables24toOUT \ + CONCAT4E(rfbTranslateWithRGBTables,24,to,BPP) +#define rfbTranslateWithRGBTablesINto24 \ + CONCAT4E(rfbTranslateWithRGBTables,BPP,to,24) + +/* + * rfbTranslateWithSingleTableINtoOUT translates a rectangle of pixel data + * using a single lookup table. + */ + +static void +rfbTranslateWithSingleTable24toOUT (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + uint8_t *ip = (uint8_t *)iptr; + OUT_T *op = (OUT_T *)optr; + int ipextra = bytesBetweenInputLines - width*3; + OUT_T *opLineEnd; + OUT_T *t = (OUT_T *)table; + int shift = rfbEndianTest?0:8; + + while (height > 0) { + opLineEnd = op + width; + + while (op < opLineEnd) { + *(op++) = t[((*(uint32_t *)ip)>>shift)&0x00ffffff]; + ip+=3; + } + + ip += ipextra; + height--; + } +} + + +/* + * rfbTranslateWithRGBTablesINtoOUT translates a rectangle of pixel data + * using three separate lookup tables for the red, green and blue values. + */ + +static void +rfbTranslateWithRGBTables24toOUT (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + uint8_t *ip = (uint8_t *)iptr; + OUT_T *op = (OUT_T *)optr; + int ipextra = bytesBetweenInputLines - width*3; + OUT_T *opLineEnd; + OUT_T *redTable = (OUT_T *)table; + OUT_T *greenTable = redTable + in->redMax + 1; + OUT_T *blueTable = greenTable + in->greenMax + 1; + uint32_t inValue; + int shift = rfbEndianTest?0:8; + + while (height > 0) { + opLineEnd = &op[width]; + + while (op < opLineEnd) { + inValue = ((*(uint32_t *)ip)>>shift)&0x00ffffff; + *(op++) = (redTable[(inValue >> in->redShift) & in->redMax] | + greenTable[(inValue >> in->greenShift) & in->greenMax] | + blueTable[(inValue >> in->blueShift) & in->blueMax]); + ip+=3; + } + ip += ipextra; + height--; + } +} + +/* + * rfbTranslateWithSingleTableINto24 translates a rectangle of pixel data + * using a single lookup table. + */ + +static void +rfbTranslateWithSingleTableINto24 (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + IN_T *ip = (IN_T *)iptr; + uint8_t *op = (uint8_t *)optr; + int ipextra = bytesBetweenInputLines / sizeof(IN_T) - width; + uint8_t *opLineEnd; + uint8_t *t = (uint8_t *)table; + + while (height > 0) { + opLineEnd = op + width * 3; + + while (op < opLineEnd) { + memcpy(op,&t[3*(*(ip++))],3); + op += 3; + } + + ip += ipextra; + height--; + } +} + + +/* + * rfbTranslateWithRGBTablesINto24 translates a rectangle of pixel data + * using three separate lookup tables for the red, green and blue values. + */ + +static void +rfbTranslateWithRGBTablesINto24 (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + IN_T *ip = (IN_T *)iptr; + uint8_t *op = (uint8_t *)optr; + int ipextra = bytesBetweenInputLines / sizeof(IN_T) - width; + uint8_t *opLineEnd; + uint8_t *redTable = (uint8_t *)table; + uint8_t *greenTable = redTable + 3*(in->redMax + 1); + uint8_t *blueTable = greenTable + 3*(in->greenMax + 1); + uint32_t outValue; + + while (height > 0) { + opLineEnd = op+3*width; + + while (op < opLineEnd) { + outValue = (redTable[(*ip >> in->redShift) & in->redMax] | + greenTable[(*ip >> in->greenShift) & in->greenMax] | + blueTable[(*ip >> in->blueShift) & in->blueMax]); + memcpy(op,&outValue,3); + op += 3; + ip++; + } + ip += ipextra; + height--; + } +} + +#undef IN_T +#undef OUT_T +#undef rfbTranslateWithSingleTable24toOUT +#undef rfbTranslateWithRGBTables24toOUT +#undef rfbTranslateWithSingleTableINto24 +#undef rfbTranslateWithRGBTablesINto24 + +#endif diff --git a/server/libvncserver/tabletranstemplate.c b/server/libvncserver/tabletranstemplate.c new file mode 100644 index 0000000..e83c623 --- /dev/null +++ b/server/libvncserver/tabletranstemplate.c @@ -0,0 +1,117 @@ +/* + * tabletranstemplate.c - template for translation using lookup tables. + * + * This file shouldn't be compiled. It is included multiple times by + * translate.c, each time with different definitions of the macros IN and OUT. + * + * For each pair of values IN and OUT, this file defines two functions for + * translating a given rectangle of pixel data. One uses a single lookup + * table, and the other uses three separate lookup tables for the red, green + * and blue values. + * + * I know this code isn't nice to read because of all the macros, but + * efficiency is important here. + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#if !defined(IN) || !defined(OUT) +#error "This file shouldn't be compiled." +#error "It is included as part of translate.c" +#endif + +#define IN_T CONCAT3E(uint,IN,_t) +#define OUT_T CONCAT3E(uint,OUT,_t) +#define rfbTranslateWithSingleTableINtoOUT \ + CONCAT4E(rfbTranslateWithSingleTable,IN,to,OUT) +#define rfbTranslateWithRGBTablesINtoOUT \ + CONCAT4E(rfbTranslateWithRGBTables,IN,to,OUT) + +/* + * rfbTranslateWithSingleTableINtoOUT translates a rectangle of pixel data + * using a single lookup table. + */ + +static void +rfbTranslateWithSingleTableINtoOUT (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + IN_T *ip = (IN_T *)iptr; + OUT_T *op = (OUT_T *)optr; + int ipextra = bytesBetweenInputLines / sizeof(IN_T) - width; + OUT_T *opLineEnd; + OUT_T *t = (OUT_T *)table; + + while (height > 0) { + opLineEnd = op + width; + + while (op < opLineEnd) { + *(op++) = t[*(ip++)]; + } + + ip += ipextra; + height--; + } +} + + +/* + * rfbTranslateWithRGBTablesINtoOUT translates a rectangle of pixel data + * using three separate lookup tables for the red, green and blue values. + */ + +static void +rfbTranslateWithRGBTablesINtoOUT (char *table, rfbPixelFormat *in, + rfbPixelFormat *out, + char *iptr, char *optr, + int bytesBetweenInputLines, + int width, int height) +{ + IN_T *ip = (IN_T *)iptr; + OUT_T *op = (OUT_T *)optr; + int ipextra = bytesBetweenInputLines / sizeof(IN_T) - width; + OUT_T *opLineEnd; + OUT_T *redTable = (OUT_T *)table; + OUT_T *greenTable = redTable + in->redMax + 1; + OUT_T *blueTable = greenTable + in->greenMax + 1; + + while (height > 0) { + opLineEnd = &op[width]; + + while (op < opLineEnd) { + *(op++) = (redTable[(*ip >> in->redShift) & in->redMax] | + greenTable[(*ip >> in->greenShift) & in->greenMax] | + blueTable[(*ip >> in->blueShift) & in->blueMax]); + ip++; + } + ip += ipextra; + height--; + } +} + +#undef IN_T +#undef OUT_T +#undef rfbTranslateWithSingleTableINtoOUT +#undef rfbTranslateWithRGBTablesINtoOUT diff --git a/server/libvncserver/tight.c b/server/libvncserver/tight.c new file mode 100644 index 0000000..71fd5b6 --- /dev/null +++ b/server/libvncserver/tight.c @@ -0,0 +1,1825 @@ +/* + * tight.c + * + * Routines to implement Tight Encoding + */ + +/* + * Copyright (C) 2000, 2001 Const Kaplinsky. All Rights Reserved. + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/*#include <stdio.h>*/ +#include "rfb/rfb.h" + +#ifdef VINO_HAVE_JPEG + +#ifdef WIN32 +#define XMD_H +#undef FAR +#define NEEDFAR_POINTERS +#endif + +#include <jpeglib.h> + +/* Note: The following constant should not be changed. */ +#define TIGHT_MIN_TO_COMPRESS 12 + +/* The parameters below may be adjusted. */ +#define MIN_SPLIT_RECT_SIZE 4096 +#define MIN_SOLID_SUBRECT_SIZE 2048 +#define MAX_SPLIT_TILE_SIZE 16 + +/* May be set to TRUE with "-lazytight" Xvnc option. */ +rfbBool rfbTightDisableGradient = FALSE; + +/* This variable is set on every rfbSendRectEncodingTight() call. */ +static rfbBool usePixelFormat24; + + +/* Compression level stuff. The following array contains various + encoder parameters for each of 10 compression levels (0..9). + Last three parameters correspond to JPEG quality levels (0..9). */ + +typedef struct TIGHT_CONF_s { + int maxRectSize, maxRectWidth; + int monoMinRectSize, gradientMinRectSize; + int idxZlibLevel, monoZlibLevel, rawZlibLevel, gradientZlibLevel; + int gradientThreshold, gradientThreshold24; + int idxMaxColorsDivisor; + int jpegQuality, jpegThreshold, jpegThreshold24; +} TIGHT_CONF; + +static TIGHT_CONF tightConf[10] = { + { 512, 32, 6, 65536, 0, 0, 0, 0, 0, 0, 4, 5, 10000, 23000 }, + { 2048, 128, 6, 65536, 1, 1, 1, 0, 0, 0, 8, 10, 8000, 18000 }, + { 6144, 256, 8, 65536, 3, 3, 2, 0, 0, 0, 24, 15, 6500, 15000 }, + { 10240, 1024, 12, 65536, 5, 5, 3, 0, 0, 0, 32, 25, 5000, 12000 }, + { 16384, 2048, 12, 65536, 6, 6, 4, 0, 0, 0, 32, 37, 4000, 10000 }, + { 32768, 2048, 12, 4096, 7, 7, 5, 4, 150, 380, 32, 50, 3000, 8000 }, + { 65536, 2048, 16, 4096, 7, 7, 6, 4, 170, 420, 48, 60, 2000, 5000 }, + { 65536, 2048, 16, 4096, 8, 8, 7, 5, 180, 450, 64, 70, 1000, 2500 }, + { 65536, 2048, 32, 8192, 9, 9, 8, 6, 190, 475, 64, 75, 500, 1200 }, + { 65536, 2048, 32, 8192, 9, 9, 9, 6, 200, 500, 96, 80, 200, 500 } +}; + +static int compressLevel; +static int qualityLevel; + +/* Stuff dealing with palettes. */ + +typedef struct COLOR_LIST_s { + struct COLOR_LIST_s *next; + int idx; + uint32_t rgb; +} COLOR_LIST; + +typedef struct PALETTE_ENTRY_s { + COLOR_LIST *listNode; + int numPixels; +} PALETTE_ENTRY; + +typedef struct PALETTE_s { + PALETTE_ENTRY entry[256]; + COLOR_LIST *hash[256]; + COLOR_LIST list[256]; +} PALETTE; + +static int paletteNumColors, paletteMaxColors; +static uint32_t monoBackground, monoForeground; +static PALETTE palette; + +/* Pointers to dynamically-allocated buffers. */ + +static int tightBeforeBufSize = 0; +static char *tightBeforeBuf = NULL; + +static int tightAfterBufSize = 0; +static char *tightAfterBuf = NULL; + +static int *prevRowBuf = NULL; + +void rfbTightCleanup() +{ + if(tightBeforeBufSize) { + free(tightBeforeBuf); + tightBeforeBuf = NULL; + tightBeforeBufSize=0; + } + if(tightAfterBufSize) { + free(tightAfterBuf); + tightAfterBuf = NULL; + tightAfterBufSize=0; + } +} + +/* Prototypes for static functions. */ + +static void FindBestSolidArea (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t colorValue, int *w_ptr, int *h_ptr); +static void ExtendSolidArea (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t colorValue, + int *x_ptr, int *y_ptr, int *w_ptr, int *h_ptr); +static rfbBool CheckSolidTile (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t *colorPtr, rfbBool needSameColor); +static rfbBool CheckSolidTile8 (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t *colorPtr, rfbBool needSameColor); +static rfbBool CheckSolidTile16 (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t *colorPtr, rfbBool needSameColor); +static rfbBool CheckSolidTile32 (rfbClientPtr cl, int x, int y, int w, int h, + uint32_t *colorPtr, rfbBool needSameColor); + +static rfbBool SendRectSimple (rfbClientPtr cl, int x, int y, int w, int h); +static rfbBool SendSubrect (rfbClientPtr cl, int x, int y, int w, int h); +static rfbBool SendTightHeader (rfbClientPtr cl, int x, int y, int w, int h); + +static rfbBool SendSolidRect (rfbClientPtr cl); +static rfbBool SendMonoRect (rfbClientPtr cl, int w, int h); +static rfbBool SendIndexedRect (rfbClientPtr cl, int w, int h); +static rfbBool SendFullColorRect (rfbClientPtr cl, int w, int h); +static rfbBool SendGradientRect (rfbClientPtr cl, int w, int h); + +static rfbBool CompressData(rfbClientPtr cl, int streamId, int dataLen, + int zlibLevel, int zlibStrategy); +static rfbBool SendCompressedData(rfbClientPtr cl, int compressedLen); + +static void FillPalette8(int count); +static void FillPalette16(int count); +static void FillPalette32(int count); + +static void PaletteReset(void); +static int PaletteInsert(uint32_t rgb, int numPixels, int bpp); + +static void Pack24(rfbClientPtr cl, char *buf, rfbPixelFormat *fmt, int count); + +static void EncodeIndexedRect16(uint8_t *buf, int count); +static void EncodeIndexedRect32(uint8_t *buf, int count); + +static void EncodeMonoRect8(uint8_t *buf, int w, int h); +static void EncodeMonoRect16(uint8_t *buf, int w, int h); +static void EncodeMonoRect32(uint8_t *buf, int w, int h); + +static void FilterGradient24(rfbClientPtr cl, char *buf, rfbPixelFormat *fmt, int w, int h); +static void FilterGradient16(rfbClientPtr cl, uint16_t *buf, rfbPixelFormat *fmt, int w, int h); +static void FilterGradient32(rfbClientPtr cl, uint32_t *buf, rfbPixelFormat *fmt, int w, int h); + +static int DetectSmoothImage(rfbClientPtr cl, rfbPixelFormat *fmt, int w, int h); +static unsigned long DetectSmoothImage24(rfbClientPtr cl, rfbPixelFormat *fmt, int w, int h); +static unsigned long DetectSmoothImage16(rfbClientPtr cl, rfbPixelFormat *fmt, int w, int h); +static unsigned long DetectSmoothImage32(rfbClientPtr cl, rfbPixelFormat *fmt, int w, int h); + +static rfbBool SendJpegRect(rfbClientPtr cl, int x, int y, int w, int h, + int quality); +static void PrepareRowForJpeg(rfbClientPtr cl, uint8_t *dst, int x, int y, int count); +static void PrepareRowForJpeg24(rfbClientPtr cl, uint8_t *dst, int x, int y, int count); +static void PrepareRowForJpeg16(rfbClientPtr cl, uint8_t *dst, int x, int y, int count); +static void PrepareRowForJpeg32(rfbClientPtr cl, uint8_t *dst, int x, int y, int count); + +static void JpegInitDestination(j_compress_ptr cinfo); +static boolean JpegEmptyOutputBuffer(j_compress_ptr cinfo); +static void JpegTermDestination(j_compress_ptr cinfo); +static void JpegSetDstManager(j_compress_ptr cinfo); + + +/* + * Tight encoding implementation. + */ + +int +rfbNumCodedRectsTight(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + int maxRectSize, maxRectWidth; + int subrectMaxWidth, subrectMaxHeight; + + /* No matter how many rectangles we will send if LastRect markers + are used to terminate rectangle stream. */ + if (cl->enableLastRectEncoding && w * h >= MIN_SPLIT_RECT_SIZE) + return 0; + + maxRectSize = tightConf[cl->tightCompressLevel].maxRectSize; + maxRectWidth = tightConf[cl->tightCompressLevel].maxRectWidth; + + if (w > maxRectWidth || w * h > maxRectSize) { + subrectMaxWidth = (w > maxRectWidth) ? maxRectWidth : w; + subrectMaxHeight = maxRectSize / subrectMaxWidth; + return (((w - 1) / maxRectWidth + 1) * + ((h - 1) / subrectMaxHeight + 1)); + } else { + return 1; + } +} + +rfbBool +rfbSendRectEncodingTight(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + int nMaxRows; + uint32_t colorValue; + int dx, dy, dw, dh; + int x_best, y_best, w_best, h_best; + char *fbptr; + + rfbSendUpdateBuf(cl); + + compressLevel = cl->tightCompressLevel; + qualityLevel = cl->tightQualityLevel; + + if ( cl->format.depth == 24 && cl->format.redMax == 0xFF && + cl->format.greenMax == 0xFF && cl->format.blueMax == 0xFF ) { + usePixelFormat24 = TRUE; + } else { + usePixelFormat24 = FALSE; + } + + if (!cl->enableLastRectEncoding || w * h < MIN_SPLIT_RECT_SIZE) + return SendRectSimple(cl, x, y, w, h); + + /* Make sure we can write at least one pixel into tightBeforeBuf. */ + + if (tightBeforeBufSize < 4) { + tightBeforeBufSize = 4; + if (tightBeforeBuf == NULL) + tightBeforeBuf = (char *)malloc(tightBeforeBufSize); + else + tightBeforeBuf = (char *)realloc(tightBeforeBuf, + tightBeforeBufSize); + } + + /* Calculate maximum number of rows in one non-solid rectangle. */ + + { + int maxRectSize, maxRectWidth, nMaxWidth; + + maxRectSize = tightConf[compressLevel].maxRectSize; + maxRectWidth = tightConf[compressLevel].maxRectWidth; + nMaxWidth = (w > maxRectWidth) ? maxRectWidth : w; + nMaxRows = maxRectSize / nMaxWidth; + } + + /* Try to find large solid-color areas and send them separately. */ + + for (dy = y; dy < y + h; dy += MAX_SPLIT_TILE_SIZE) { + + /* If a rectangle becomes too large, send its upper part now. */ + + if (dy - y >= nMaxRows) { + if (!SendRectSimple(cl, x, y, w, nMaxRows)) + return 0; + y += nMaxRows; + h -= nMaxRows; + } + + dh = (dy + MAX_SPLIT_TILE_SIZE <= y + h) ? + MAX_SPLIT_TILE_SIZE : (y + h - dy); + + for (dx = x; dx < x + w; dx += MAX_SPLIT_TILE_SIZE) { + + dw = (dx + MAX_SPLIT_TILE_SIZE <= x + w) ? + MAX_SPLIT_TILE_SIZE : (x + w - dx); + + if (CheckSolidTile(cl, dx, dy, dw, dh, &colorValue, FALSE)) { + + /* Get dimensions of solid-color area. */ + + FindBestSolidArea(cl, dx, dy, w - (dx - x), h - (dy - y), + colorValue, &w_best, &h_best); + + /* Make sure a solid rectangle is large enough + (or the whole rectangle is of the same color). */ + + if ( w_best * h_best != w * h && + w_best * h_best < MIN_SOLID_SUBRECT_SIZE ) + continue; + + /* Try to extend solid rectangle to maximum size. */ + + x_best = dx; y_best = dy; + ExtendSolidArea(cl, x, y, w, h, colorValue, + &x_best, &y_best, &w_best, &h_best); + + /* Send rectangles at top and left to solid-color area. */ + + if ( y_best != y && + !SendRectSimple(cl, x, y, w, y_best-y) ) + return FALSE; + if ( x_best != x && + !rfbSendRectEncodingTight(cl, x, y_best, + x_best-x, h_best) ) + return FALSE; + + /* Send solid-color rectangle. */ + + if (!SendTightHeader(cl, x_best, y_best, w_best, h_best)) + return FALSE; + + fbptr = (cl->screen->frameBuffer + + (cl->screen->paddedWidthInBytes * y_best) + + (x_best * (cl->screen->bitsPerPixel / 8))); + + (*cl->translateFn)(cl->translateLookupTable, &cl->screen->rfbServerFormat, + &cl->format, fbptr, tightBeforeBuf, + cl->screen->paddedWidthInBytes, 1, 1); + + if (!SendSolidRect(cl)) + return FALSE; + + /* Send remaining rectangles (at right and bottom). */ + + if ( x_best + w_best != x + w && + !rfbSendRectEncodingTight(cl, x_best+w_best, y_best, + w-(x_best-x)-w_best, h_best) ) + return FALSE; + if ( y_best + h_best != y + h && + !rfbSendRectEncodingTight(cl, x, y_best+h_best, + w, h-(y_best-y)-h_best) ) + return FALSE; + + /* Return after all recursive calls are done. */ + + return TRUE; + } + + } + + } + + /* No suitable solid-color rectangles found. */ + + return SendRectSimple(cl, x, y, w, h); +} + +static void +FindBestSolidArea(cl, x, y, w, h, colorValue, w_ptr, h_ptr) + rfbClientPtr cl; + int x, y, w, h; + uint32_t colorValue; + int *w_ptr, *h_ptr; +{ + int dx, dy, dw, dh; + int w_prev; + int w_best = 0, h_best = 0; + + w_prev = w; + + for (dy = y; dy < y + h; dy += MAX_SPLIT_TILE_SIZE) { + + dh = (dy + MAX_SPLIT_TILE_SIZE <= y + h) ? + MAX_SPLIT_TILE_SIZE : (y + h - dy); + dw = (w_prev > MAX_SPLIT_TILE_SIZE) ? + MAX_SPLIT_TILE_SIZE : w_prev; + + if (!CheckSolidTile(cl, x, dy, dw, dh, &colorValue, TRUE)) + break; + + for (dx = x + dw; dx < x + w_prev;) { + dw = (dx + MAX_SPLIT_TILE_SIZE <= x + w_prev) ? + MAX_SPLIT_TILE_SIZE : (x + w_prev - dx); + if (!CheckSolidTile(cl, dx, dy, dw, dh, &colorValue, TRUE)) + break; + dx += dw; + } + + w_prev = dx - x; + if (w_prev * (dy + dh - y) > w_best * h_best) { + w_best = w_prev; + h_best = dy + dh - y; + } + } + + *w_ptr = w_best; + *h_ptr = h_best; +} + +static void +ExtendSolidArea(cl, x, y, w, h, colorValue, x_ptr, y_ptr, w_ptr, h_ptr) + rfbClientPtr cl; + int x, y, w, h; + uint32_t colorValue; + int *x_ptr, *y_ptr, *w_ptr, *h_ptr; +{ + int cx, cy; + + /* Try to extend the area upwards. */ + for ( cy = *y_ptr - 1; + cy >= y && CheckSolidTile(cl, *x_ptr, cy, *w_ptr, 1, &colorValue, TRUE); + cy-- ); + *h_ptr += *y_ptr - (cy + 1); + *y_ptr = cy + 1; + + /* ... downwards. */ + for ( cy = *y_ptr + *h_ptr; + cy < y + h && + CheckSolidTile(cl, *x_ptr, cy, *w_ptr, 1, &colorValue, TRUE); + cy++ ); + *h_ptr += cy - (*y_ptr + *h_ptr); + + /* ... to the left. */ + for ( cx = *x_ptr - 1; + cx >= x && CheckSolidTile(cl, cx, *y_ptr, 1, *h_ptr, &colorValue, TRUE); + cx-- ); + *w_ptr += *x_ptr - (cx + 1); + *x_ptr = cx + 1; + + /* ... to the right. */ + for ( cx = *x_ptr + *w_ptr; + cx < x + w && + CheckSolidTile(cl, cx, *y_ptr, 1, *h_ptr, &colorValue, TRUE); + cx++ ); + *w_ptr += cx - (*x_ptr + *w_ptr); +} + +/* + * Check if a rectangle is all of the same color. If needSameColor is + * set to non-zero, then also check that its color equals to the + * *colorPtr value. The result is 1 if the test is successfull, and in + * that case new color will be stored in *colorPtr. + */ + +static rfbBool CheckSolidTile(rfbClientPtr cl, int x, int y, int w, int h, uint32_t* colorPtr, rfbBool needSameColor) +{ + switch(cl->screen->rfbServerFormat.bitsPerPixel) { + case 32: + return CheckSolidTile32(cl, x, y, w, h, colorPtr, needSameColor); + case 16: + return CheckSolidTile16(cl, x, y, w, h, colorPtr, needSameColor); + default: + return CheckSolidTile8(cl, x, y, w, h, colorPtr, needSameColor); + } +} + +#define DEFINE_CHECK_SOLID_FUNCTION(bpp) \ + \ +static rfbBool \ +CheckSolidTile##bpp(rfbClientPtr cl, int x, int y, int w, int h, uint32_t* colorPtr, rfbBool needSameColor) \ +{ \ + uint##bpp##_t *fbptr; \ + uint##bpp##_t colorValue; \ + int dx, dy; \ + \ + fbptr = (uint##bpp##_t *) \ + &cl->screen->frameBuffer[y * cl->screen->paddedWidthInBytes + x * (bpp/8)]; \ + \ + colorValue = *fbptr; \ + if (needSameColor && (uint32_t)colorValue != *colorPtr) \ + return FALSE; \ + \ + for (dy = 0; dy < h; dy++) { \ + for (dx = 0; dx < w; dx++) { \ + if (colorValue != fbptr[dx]) \ + return FALSE; \ + } \ + fbptr = (uint##bpp##_t *)((uint8_t *)fbptr + cl->screen->paddedWidthInBytes); \ + } \ + \ + *colorPtr = (uint32_t)colorValue; \ + return TRUE; \ +} + +DEFINE_CHECK_SOLID_FUNCTION(8) +DEFINE_CHECK_SOLID_FUNCTION(16) +DEFINE_CHECK_SOLID_FUNCTION(32) + +static rfbBool +SendRectSimple(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + int maxBeforeSize, maxAfterSize; + int maxRectSize, maxRectWidth; + int subrectMaxWidth, subrectMaxHeight; + int dx, dy; + int rw, rh; + + maxRectSize = tightConf[compressLevel].maxRectSize; + maxRectWidth = tightConf[compressLevel].maxRectWidth; + + maxBeforeSize = maxRectSize * (cl->format.bitsPerPixel / 8); + maxAfterSize = maxBeforeSize + (maxBeforeSize + 99) / 100 + 12; + + if (tightBeforeBufSize < maxBeforeSize) { + tightBeforeBufSize = maxBeforeSize; + if (tightBeforeBuf == NULL) + tightBeforeBuf = (char *)malloc(tightBeforeBufSize); + else + tightBeforeBuf = (char *)realloc(tightBeforeBuf, + tightBeforeBufSize); + } + + if (tightAfterBufSize < maxAfterSize) { + tightAfterBufSize = maxAfterSize; + if (tightAfterBuf == NULL) + tightAfterBuf = (char *)malloc(tightAfterBufSize); + else + tightAfterBuf = (char *)realloc(tightAfterBuf, + tightAfterBufSize); + } + + if (w > maxRectWidth || w * h > maxRectSize) { + subrectMaxWidth = (w > maxRectWidth) ? maxRectWidth : w; + subrectMaxHeight = maxRectSize / subrectMaxWidth; + + for (dy = 0; dy < h; dy += subrectMaxHeight) { + for (dx = 0; dx < w; dx += maxRectWidth) { + rw = (dx + maxRectWidth < w) ? maxRectWidth : w - dx; + rh = (dy + subrectMaxHeight < h) ? subrectMaxHeight : h - dy; + if (!SendSubrect(cl, x+dx, y+dy, rw, rh)) + return FALSE; + } + } + } else { + if (!SendSubrect(cl, x, y, w, h)) + return FALSE; + } + + return TRUE; +} + +static rfbBool +SendSubrect(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + char *fbptr; + rfbBool success = FALSE; + + /* Send pending data if there is more than 128 bytes. */ + if (cl->ublen > 128) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + if (!SendTightHeader(cl, x, y, w, h)) + return FALSE; + + fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) + + (x * (cl->screen->bitsPerPixel / 8))); + + (*cl->translateFn)(cl->translateLookupTable, &cl->screen->rfbServerFormat, + &cl->format, fbptr, tightBeforeBuf, + cl->screen->paddedWidthInBytes, w, h); + + paletteMaxColors = w * h / tightConf[compressLevel].idxMaxColorsDivisor; + if ( paletteMaxColors < 2 && + w * h >= tightConf[compressLevel].monoMinRectSize ) { + paletteMaxColors = 2; + } + switch (cl->format.bitsPerPixel) { + case 8: + FillPalette8(w * h); + break; + case 16: + FillPalette16(w * h); + break; + default: + FillPalette32(w * h); + } + + switch (paletteNumColors) { + case 0: + /* Truecolor image */ + if (DetectSmoothImage(cl, &cl->format, w, h)) { + if (qualityLevel != -1) { + success = SendJpegRect(cl, x, y, w, h, + tightConf[qualityLevel].jpegQuality); + } else { + success = SendGradientRect(cl, w, h); + } + } else { + success = SendFullColorRect(cl, w, h); + } + break; + case 1: + /* Solid rectangle */ + success = SendSolidRect(cl); + break; + case 2: + /* Two-color rectangle */ + success = SendMonoRect(cl, w, h); + break; + default: + /* Up to 256 different colors */ + if ( paletteNumColors > 96 && + qualityLevel != -1 && qualityLevel <= 3 && + DetectSmoothImage(cl, &cl->format, w, h) ) { + success = SendJpegRect(cl, x, y, w, h, + tightConf[qualityLevel].jpegQuality); + } else { + success = SendIndexedRect(cl, w, h); + } + } + return success; +} + +static rfbBool +SendTightHeader(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + rfbFramebufferUpdateRectHeader rect; + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingTight); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + cl->rfbRectanglesSent[rfbEncodingTight]++; + cl->rfbBytesSent[rfbEncodingTight] += sz_rfbFramebufferUpdateRectHeader; + + return TRUE; +} + +/* + * Subencoding implementations. + */ + +static rfbBool +SendSolidRect(cl) + rfbClientPtr cl; +{ + int len; + + if (usePixelFormat24) { + Pack24(cl, tightBeforeBuf, &cl->format, 1); + len = 3; + } else + len = cl->format.bitsPerPixel / 8; + + if (cl->ublen + 1 + len > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + cl->updateBuf[cl->ublen++] = (char)(rfbTightFill << 4); + memcpy (&cl->updateBuf[cl->ublen], tightBeforeBuf, len); + cl->ublen += len; + + cl->rfbBytesSent[rfbEncodingTight] += len + 1; + + return TRUE; +} + +static rfbBool +SendMonoRect(cl, w, h) + rfbClientPtr cl; + int w, h; +{ + int streamId = 1; + int paletteLen, dataLen; + + if ( cl->ublen + TIGHT_MIN_TO_COMPRESS + 6 + + 2 * cl->format.bitsPerPixel / 8 > UPDATE_BUF_SIZE ) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + /* Prepare tight encoding header. */ + dataLen = (w + 7) / 8; + dataLen *= h; + + cl->updateBuf[cl->ublen++] = (streamId | rfbTightExplicitFilter) << 4; + cl->updateBuf[cl->ublen++] = rfbTightFilterPalette; + cl->updateBuf[cl->ublen++] = 1; + + /* Prepare palette, convert image. */ + switch (cl->format.bitsPerPixel) { + + case 32: + EncodeMonoRect32((uint8_t *)tightBeforeBuf, w, h); + + ((uint32_t *)tightAfterBuf)[0] = monoBackground; + ((uint32_t *)tightAfterBuf)[1] = monoForeground; + if (usePixelFormat24) { + Pack24(cl, tightAfterBuf, &cl->format, 2); + paletteLen = 6; + } else + paletteLen = 8; + + memcpy(&cl->updateBuf[cl->ublen], tightAfterBuf, paletteLen); + cl->ublen += paletteLen; + cl->rfbBytesSent[rfbEncodingTight] += 3 + paletteLen; + break; + + case 16: + EncodeMonoRect16((uint8_t *)tightBeforeBuf, w, h); + + ((uint16_t *)tightAfterBuf)[0] = (uint16_t)monoBackground; + ((uint16_t *)tightAfterBuf)[1] = (uint16_t)monoForeground; + + memcpy(&cl->updateBuf[cl->ublen], tightAfterBuf, 4); + cl->ublen += 4; + cl->rfbBytesSent[rfbEncodingTight] += 7; + break; + + default: + EncodeMonoRect8((uint8_t *)tightBeforeBuf, w, h); + + cl->updateBuf[cl->ublen++] = (char)monoBackground; + cl->updateBuf[cl->ublen++] = (char)monoForeground; + cl->rfbBytesSent[rfbEncodingTight] += 5; + } + + return CompressData(cl, streamId, dataLen, + tightConf[compressLevel].monoZlibLevel, + Z_DEFAULT_STRATEGY); +} + +static rfbBool +SendIndexedRect(cl, w, h) + rfbClientPtr cl; + int w, h; +{ + int streamId = 2; + int i, entryLen; + + if ( cl->ublen + TIGHT_MIN_TO_COMPRESS + 6 + + paletteNumColors * cl->format.bitsPerPixel / 8 > + UPDATE_BUF_SIZE ) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + /* Prepare tight encoding header. */ + cl->updateBuf[cl->ublen++] = (streamId | rfbTightExplicitFilter) << 4; + cl->updateBuf[cl->ublen++] = rfbTightFilterPalette; + cl->updateBuf[cl->ublen++] = (char)(paletteNumColors - 1); + + /* Prepare palette, convert image. */ + switch (cl->format.bitsPerPixel) { + + case 32: + EncodeIndexedRect32((uint8_t *)tightBeforeBuf, w * h); + + for (i = 0; i < paletteNumColors; i++) { + ((uint32_t *)tightAfterBuf)[i] = + palette.entry[i].listNode->rgb; + } + if (usePixelFormat24) { + Pack24(cl, tightAfterBuf, &cl->format, paletteNumColors); + entryLen = 3; + } else + entryLen = 4; + + memcpy(&cl->updateBuf[cl->ublen], tightAfterBuf, paletteNumColors * entryLen); + cl->ublen += paletteNumColors * entryLen; + cl->rfbBytesSent[rfbEncodingTight] += 3 + paletteNumColors * entryLen; + break; + + case 16: + EncodeIndexedRect16((uint8_t *)tightBeforeBuf, w * h); + + for (i = 0; i < paletteNumColors; i++) { + ((uint16_t *)tightAfterBuf)[i] = + (uint16_t)palette.entry[i].listNode->rgb; + } + + memcpy(&cl->updateBuf[cl->ublen], tightAfterBuf, paletteNumColors * 2); + cl->ublen += paletteNumColors * 2; + cl->rfbBytesSent[rfbEncodingTight] += 3 + paletteNumColors * 2; + break; + + default: + return FALSE; /* Should never happen. */ + } + + return CompressData(cl, streamId, w * h, + tightConf[compressLevel].idxZlibLevel, + Z_DEFAULT_STRATEGY); +} + +static rfbBool +SendFullColorRect(cl, w, h) + rfbClientPtr cl; + int w, h; +{ + int streamId = 0; + int len; + + if (cl->ublen + TIGHT_MIN_TO_COMPRESS + 1 > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + cl->updateBuf[cl->ublen++] = 0x00; /* stream id = 0, no flushing, no filter */ + cl->rfbBytesSent[rfbEncodingTight]++; + + if (usePixelFormat24) { + Pack24(cl, tightBeforeBuf, &cl->format, w * h); + len = 3; + } else + len = cl->format.bitsPerPixel / 8; + + return CompressData(cl, streamId, w * h * len, + tightConf[compressLevel].rawZlibLevel, + Z_DEFAULT_STRATEGY); +} + +static rfbBool +SendGradientRect(cl, w, h) + rfbClientPtr cl; + int w, h; +{ + int streamId = 3; + int len; + + if (cl->format.bitsPerPixel == 8) + return SendFullColorRect(cl, w, h); + + if (cl->ublen + TIGHT_MIN_TO_COMPRESS + 2 > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + if (prevRowBuf == NULL) + prevRowBuf = (int *)malloc(2048 * 3 * sizeof(int)); + + cl->updateBuf[cl->ublen++] = (streamId | rfbTightExplicitFilter) << 4; + cl->updateBuf[cl->ublen++] = rfbTightFilterGradient; + cl->rfbBytesSent[rfbEncodingTight] += 2; + + if (usePixelFormat24) { + FilterGradient24(cl, tightBeforeBuf, &cl->format, w, h); + len = 3; + } else if (cl->format.bitsPerPixel == 32) { + FilterGradient32(cl, (uint32_t *)tightBeforeBuf, &cl->format, w, h); + len = 4; + } else { + FilterGradient16(cl, (uint16_t *)tightBeforeBuf, &cl->format, w, h); + len = 2; + } + + return CompressData(cl, streamId, w * h * len, + tightConf[compressLevel].gradientZlibLevel, + Z_FILTERED); +} + +static rfbBool +CompressData(cl, streamId, dataLen, zlibLevel, zlibStrategy) + rfbClientPtr cl; + int streamId, dataLen, zlibLevel, zlibStrategy; +{ + z_streamp pz; + int err; + + if (dataLen < TIGHT_MIN_TO_COMPRESS) { + memcpy(&cl->updateBuf[cl->ublen], tightBeforeBuf, dataLen); + cl->ublen += dataLen; + cl->rfbBytesSent[rfbEncodingTight] += dataLen; + return TRUE; + } + + pz = &cl->zsStruct[streamId]; + + /* Initialize compression stream if needed. */ + if (!cl->zsActive[streamId]) { + pz->zalloc = Z_NULL; + pz->zfree = Z_NULL; + pz->opaque = Z_NULL; + + err = deflateInit2 (pz, zlibLevel, Z_DEFLATED, MAX_WBITS, + MAX_MEM_LEVEL, zlibStrategy); + if (err != Z_OK) + return FALSE; + + cl->zsActive[streamId] = TRUE; + cl->zsLevel[streamId] = zlibLevel; + } + + /* Prepare buffer pointers. */ + pz->next_in = (Bytef *)tightBeforeBuf; + pz->avail_in = dataLen; + pz->next_out = (Bytef *)tightAfterBuf; + pz->avail_out = tightAfterBufSize; + + /* Change compression parameters if needed. */ + if (zlibLevel != cl->zsLevel[streamId]) { + if (deflateParams (pz, zlibLevel, zlibStrategy) != Z_OK) { + return FALSE; + } + cl->zsLevel[streamId] = zlibLevel; + } + + /* Actual compression. */ + if ( deflate (pz, Z_SYNC_FLUSH) != Z_OK || + pz->avail_in != 0 || pz->avail_out == 0 ) { + return FALSE; + } + + return SendCompressedData(cl, tightAfterBufSize - pz->avail_out); +} + +static rfbBool SendCompressedData(cl, compressedLen) + rfbClientPtr cl; + int compressedLen; +{ + int i, portionLen; + + cl->updateBuf[cl->ublen++] = compressedLen & 0x7F; + cl->rfbBytesSent[rfbEncodingTight]++; + if (compressedLen > 0x7F) { + cl->updateBuf[cl->ublen-1] |= 0x80; + cl->updateBuf[cl->ublen++] = compressedLen >> 7 & 0x7F; + cl->rfbBytesSent[rfbEncodingTight]++; + if (compressedLen > 0x3FFF) { + cl->updateBuf[cl->ublen-1] |= 0x80; + cl->updateBuf[cl->ublen++] = compressedLen >> 14 & 0xFF; + cl->rfbBytesSent[rfbEncodingTight]++; + } + } + + portionLen = UPDATE_BUF_SIZE; + for (i = 0; i < compressedLen; i += portionLen) { + if (i + portionLen > compressedLen) { + portionLen = compressedLen - i; + } + if (cl->ublen + portionLen > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + memcpy(&cl->updateBuf[cl->ublen], &tightAfterBuf[i], portionLen); + cl->ublen += portionLen; + } + cl->rfbBytesSent[rfbEncodingTight] += compressedLen; + + return TRUE; +} + +/* + * Code to determine how many different colors used in rectangle. + */ + +static void +FillPalette8(count) + int count; +{ + uint8_t *data = (uint8_t *)tightBeforeBuf; + uint8_t c0, c1; + int i, n0, n1; + + paletteNumColors = 0; + + c0 = data[0]; + for (i = 1; i < count && data[i] == c0; i++); + if (i == count) { + paletteNumColors = 1; + return; /* Solid rectangle */ + } + + if (paletteMaxColors < 2) + return; + + n0 = i; + c1 = data[i]; + n1 = 0; + for (i++; i < count; i++) { + if (data[i] == c0) { + n0++; + } else if (data[i] == c1) { + n1++; + } else + break; + } + if (i == count) { + if (n0 > n1) { + monoBackground = (uint32_t)c0; + monoForeground = (uint32_t)c1; + } else { + monoBackground = (uint32_t)c1; + monoForeground = (uint32_t)c0; + } + paletteNumColors = 2; /* Two colors */ + } +} + +#define DEFINE_FILL_PALETTE_FUNCTION(bpp) \ + \ +static void \ +FillPalette##bpp(count) \ + int count; \ +{ \ + uint##bpp##_t *data = (uint##bpp##_t *)tightBeforeBuf; \ + uint##bpp##_t c0, c1, ci; \ + int i, n0, n1, ni; \ + \ + c0 = data[0]; \ + for (i = 1; i < count && data[i] == c0; i++); \ + if (i >= count) { \ + paletteNumColors = 1; /* Solid rectangle */ \ + return; \ + } \ + \ + if (paletteMaxColors < 2) { \ + paletteNumColors = 0; /* Full-color encoding preferred */ \ + return; \ + } \ + \ + n0 = i; \ + c1 = data[i]; \ + n1 = 0; \ + for (i++; i < count; i++) { \ + ci = data[i]; \ + if (ci == c0) { \ + n0++; \ + } else if (ci == c1) { \ + n1++; \ + } else \ + break; \ + } \ + if (i >= count) { \ + if (n0 > n1) { \ + monoBackground = (uint32_t)c0; \ + monoForeground = (uint32_t)c1; \ + } else { \ + monoBackground = (uint32_t)c1; \ + monoForeground = (uint32_t)c0; \ + } \ + paletteNumColors = 2; /* Two colors */ \ + return; \ + } \ + \ + PaletteReset(); \ + PaletteInsert (c0, (uint32_t)n0, bpp); \ + PaletteInsert (c1, (uint32_t)n1, bpp); \ + \ + ni = 1; \ + for (i++; i < count; i++) { \ + if (data[i] == ci) { \ + ni++; \ + } else { \ + if (!PaletteInsert (ci, (uint32_t)ni, bpp)) \ + return; \ + ci = data[i]; \ + ni = 1; \ + } \ + } \ + PaletteInsert (ci, (uint32_t)ni, bpp); \ +} + +DEFINE_FILL_PALETTE_FUNCTION(16) +DEFINE_FILL_PALETTE_FUNCTION(32) + + +/* + * Functions to operate with palette structures. + */ + +#define HASH_FUNC16(rgb) ((int)(((rgb >> 8) + rgb) & 0xFF)) +#define HASH_FUNC32(rgb) ((int)(((rgb >> 16) + (rgb >> 8)) & 0xFF)) + +static void +PaletteReset(void) +{ + paletteNumColors = 0; + memset(palette.hash, 0, 256 * sizeof(COLOR_LIST *)); +} + +static int +PaletteInsert(rgb, numPixels, bpp) + uint32_t rgb; + int numPixels; + int bpp; +{ + COLOR_LIST *pnode; + COLOR_LIST *prev_pnode = NULL; + int hash_key, idx, new_idx, count; + + hash_key = (bpp == 16) ? HASH_FUNC16(rgb) : HASH_FUNC32(rgb); + + pnode = palette.hash[hash_key]; + + while (pnode != NULL) { + if (pnode->rgb == rgb) { + /* Such palette entry already exists. */ + new_idx = idx = pnode->idx; + count = palette.entry[idx].numPixels + numPixels; + if (new_idx && palette.entry[new_idx-1].numPixels < count) { + do { + palette.entry[new_idx] = palette.entry[new_idx-1]; + palette.entry[new_idx].listNode->idx = new_idx; + new_idx--; + } + while (new_idx && palette.entry[new_idx-1].numPixels < count); + palette.entry[new_idx].listNode = pnode; + pnode->idx = new_idx; + } + palette.entry[new_idx].numPixels = count; + return paletteNumColors; + } + prev_pnode = pnode; + pnode = pnode->next; + } + + /* Check if palette is full. */ + if (paletteNumColors == 256 || paletteNumColors == paletteMaxColors) { + paletteNumColors = 0; + return 0; + } + + /* Move palette entries with lesser pixel counts. */ + for ( idx = paletteNumColors; + idx > 0 && palette.entry[idx-1].numPixels < numPixels; + idx-- ) { + palette.entry[idx] = palette.entry[idx-1]; + palette.entry[idx].listNode->idx = idx; + } + + /* Add new palette entry into the freed slot. */ + pnode = &palette.list[paletteNumColors]; + if (prev_pnode != NULL) { + prev_pnode->next = pnode; + } else { + palette.hash[hash_key] = pnode; + } + pnode->next = NULL; + pnode->idx = idx; + pnode->rgb = rgb; + palette.entry[idx].listNode = pnode; + palette.entry[idx].numPixels = numPixels; + + return (++paletteNumColors); +} + + +/* + * Converting 32-bit color samples into 24-bit colors. + * Should be called only when redMax, greenMax and blueMax are 255. + * Color components assumed to be byte-aligned. + */ + +static void Pack24(cl, buf, fmt, count) + rfbClientPtr cl; + char *buf; + rfbPixelFormat *fmt; + int count; +{ + uint32_t *buf32; + uint32_t pix; + int r_shift, g_shift, b_shift; + + buf32 = (uint32_t *)buf; + + if (!cl->screen->rfbServerFormat.bigEndian == !fmt->bigEndian) { + r_shift = fmt->redShift; + g_shift = fmt->greenShift; + b_shift = fmt->blueShift; + } else { + r_shift = 24 - fmt->redShift; + g_shift = 24 - fmt->greenShift; + b_shift = 24 - fmt->blueShift; + } + + while (count--) { + pix = *buf32++; + *buf++ = (char)(pix >> r_shift); + *buf++ = (char)(pix >> g_shift); + *buf++ = (char)(pix >> b_shift); + } +} + + +/* + * Converting truecolor samples into palette indices. + */ + +#define DEFINE_IDX_ENCODE_FUNCTION(bpp) \ + \ +static void \ +EncodeIndexedRect##bpp(buf, count) \ + uint8_t *buf; \ + int count; \ +{ \ + COLOR_LIST *pnode; \ + uint##bpp##_t *src; \ + uint##bpp##_t rgb; \ + int rep = 0; \ + \ + src = (uint##bpp##_t *) buf; \ + \ + while (count--) { \ + rgb = *src++; \ + while (count && *src == rgb) { \ + rep++, src++, count--; \ + } \ + pnode = palette.hash[HASH_FUNC##bpp(rgb)]; \ + while (pnode != NULL) { \ + if ((uint##bpp##_t)pnode->rgb == rgb) { \ + *buf++ = (uint8_t)pnode->idx; \ + while (rep) { \ + *buf++ = (uint8_t)pnode->idx; \ + rep--; \ + } \ + break; \ + } \ + pnode = pnode->next; \ + } \ + } \ +} + +DEFINE_IDX_ENCODE_FUNCTION(16) +DEFINE_IDX_ENCODE_FUNCTION(32) + +#define DEFINE_MONO_ENCODE_FUNCTION(bpp) \ + \ +static void \ +EncodeMonoRect##bpp(buf, w, h) \ + uint8_t *buf; \ + int w, h; \ +{ \ + uint##bpp##_t *ptr; \ + uint##bpp##_t bg; \ + unsigned int value, mask; \ + int aligned_width; \ + int x, y, bg_bits; \ + \ + ptr = (uint##bpp##_t *) buf; \ + bg = (uint##bpp##_t) monoBackground; \ + aligned_width = w - w % 8; \ + \ + for (y = 0; y < h; y++) { \ + for (x = 0; x < aligned_width; x += 8) { \ + for (bg_bits = 0; bg_bits < 8; bg_bits++) { \ + if (*ptr++ != bg) \ + break; \ + } \ + if (bg_bits == 8) { \ + *buf++ = 0; \ + continue; \ + } \ + mask = 0x80 >> bg_bits; \ + value = mask; \ + for (bg_bits++; bg_bits < 8; bg_bits++) { \ + mask >>= 1; \ + if (*ptr++ != bg) { \ + value |= mask; \ + } \ + } \ + *buf++ = (uint8_t)value; \ + } \ + \ + mask = 0x80; \ + value = 0; \ + if (x >= w) \ + continue; \ + \ + for (; x < w; x++) { \ + if (*ptr++ != bg) { \ + value |= mask; \ + } \ + mask >>= 1; \ + } \ + *buf++ = (uint8_t)value; \ + } \ +} + +DEFINE_MONO_ENCODE_FUNCTION(8) +DEFINE_MONO_ENCODE_FUNCTION(16) +DEFINE_MONO_ENCODE_FUNCTION(32) + + +/* + * ``Gradient'' filter for 24-bit color samples. + * Should be called only when redMax, greenMax and blueMax are 255. + * Color components assumed to be byte-aligned. + */ + +static void +FilterGradient24(cl, buf, fmt, w, h) + rfbClientPtr cl; + char *buf; + rfbPixelFormat *fmt; + int w, h; +{ + uint32_t *buf32; + uint32_t pix32; + int *prevRowPtr; + int shiftBits[3]; + int pixHere[3], pixUpper[3], pixLeft[3], pixUpperLeft[3]; + int prediction; + int x, y, c; + + buf32 = (uint32_t *)buf; + memset (prevRowBuf, 0, w * 3 * sizeof(int)); + + if (!cl->screen->rfbServerFormat.bigEndian == !fmt->bigEndian) { + shiftBits[0] = fmt->redShift; + shiftBits[1] = fmt->greenShift; + shiftBits[2] = fmt->blueShift; + } else { + shiftBits[0] = 24 - fmt->redShift; + shiftBits[1] = 24 - fmt->greenShift; + shiftBits[2] = 24 - fmt->blueShift; + } + + for (y = 0; y < h; y++) { + for (c = 0; c < 3; c++) { + pixUpper[c] = 0; + pixHere[c] = 0; + } + prevRowPtr = prevRowBuf; + for (x = 0; x < w; x++) { + pix32 = *buf32++; + for (c = 0; c < 3; c++) { + pixUpperLeft[c] = pixUpper[c]; + pixLeft[c] = pixHere[c]; + pixUpper[c] = *prevRowPtr; + pixHere[c] = (int)(pix32 >> shiftBits[c] & 0xFF); + *prevRowPtr++ = pixHere[c]; + + prediction = pixLeft[c] + pixUpper[c] - pixUpperLeft[c]; + if (prediction < 0) { + prediction = 0; + } else if (prediction > 0xFF) { + prediction = 0xFF; + } + *buf++ = (char)(pixHere[c] - prediction); + } + } + } +} + + +/* + * ``Gradient'' filter for other color depths. + */ + +#define DEFINE_GRADIENT_FILTER_FUNCTION(bpp) \ + \ +static void \ +FilterGradient##bpp(cl, buf, fmt, w, h) \ + rfbClientPtr cl; \ + uint##bpp##_t *buf; \ + rfbPixelFormat *fmt; \ + int w, h; \ +{ \ + uint##bpp##_t pix, diff; \ + rfbBool endianMismatch; \ + int *prevRowPtr; \ + int maxColor[3], shiftBits[3]; \ + int pixHere[3], pixUpper[3], pixLeft[3], pixUpperLeft[3]; \ + int prediction; \ + int x, y, c; \ + \ + memset (prevRowBuf, 0, w * 3 * sizeof(int)); \ + \ + endianMismatch = (!cl->screen->rfbServerFormat.bigEndian != !fmt->bigEndian); \ + \ + maxColor[0] = fmt->redMax; \ + maxColor[1] = fmt->greenMax; \ + maxColor[2] = fmt->blueMax; \ + shiftBits[0] = fmt->redShift; \ + shiftBits[1] = fmt->greenShift; \ + shiftBits[2] = fmt->blueShift; \ + \ + for (y = 0; y < h; y++) { \ + for (c = 0; c < 3; c++) { \ + pixUpper[c] = 0; \ + pixHere[c] = 0; \ + } \ + prevRowPtr = prevRowBuf; \ + for (x = 0; x < w; x++) { \ + pix = *buf; \ + if (endianMismatch) { \ + pix = Swap##bpp(pix); \ + } \ + diff = 0; \ + for (c = 0; c < 3; c++) { \ + pixUpperLeft[c] = pixUpper[c]; \ + pixLeft[c] = pixHere[c]; \ + pixUpper[c] = *prevRowPtr; \ + pixHere[c] = (int)(pix >> shiftBits[c] & maxColor[c]); \ + *prevRowPtr++ = pixHere[c]; \ + \ + prediction = pixLeft[c] + pixUpper[c] - pixUpperLeft[c]; \ + if (prediction < 0) { \ + prediction = 0; \ + } else if (prediction > maxColor[c]) { \ + prediction = maxColor[c]; \ + } \ + diff |= ((pixHere[c] - prediction) & maxColor[c]) \ + << shiftBits[c]; \ + } \ + if (endianMismatch) { \ + diff = Swap##bpp(diff); \ + } \ + *buf++ = diff; \ + } \ + } \ +} + +DEFINE_GRADIENT_FILTER_FUNCTION(16) +DEFINE_GRADIENT_FILTER_FUNCTION(32) + + +/* + * Code to guess if given rectangle is suitable for smooth image + * compression (by applying "gradient" filter or JPEG coder). + */ + +#define JPEG_MIN_RECT_SIZE 4096 + +#define DETECT_SUBROW_WIDTH 7 +#define DETECT_MIN_WIDTH 8 +#define DETECT_MIN_HEIGHT 8 + +static int +DetectSmoothImage (cl, fmt, w, h) + rfbClientPtr cl; + rfbPixelFormat *fmt; + int w, h; +{ + long avgError; + + if ( cl->screen->rfbServerFormat.bitsPerPixel == 8 || fmt->bitsPerPixel == 8 || + w < DETECT_MIN_WIDTH || h < DETECT_MIN_HEIGHT ) { + return 0; + } + + if (qualityLevel != -1) { + if (w * h < JPEG_MIN_RECT_SIZE) { + return 0; + } + } else { + if ( rfbTightDisableGradient || + w * h < tightConf[compressLevel].gradientMinRectSize ) { + return 0; + } + } + + if (fmt->bitsPerPixel == 32) { + if (usePixelFormat24) { + avgError = DetectSmoothImage24(cl, fmt, w, h); + if (qualityLevel != -1) { + return (avgError < tightConf[qualityLevel].jpegThreshold24); + } + return (avgError < tightConf[compressLevel].gradientThreshold24); + } else { + avgError = DetectSmoothImage32(cl, fmt, w, h); + } + } else { + avgError = DetectSmoothImage16(cl, fmt, w, h); + } + if (qualityLevel != -1) { + return (avgError < tightConf[qualityLevel].jpegThreshold); + } + return (avgError < tightConf[compressLevel].gradientThreshold); +} + +static unsigned long +DetectSmoothImage24 (cl, fmt, w, h) + rfbClientPtr cl; + rfbPixelFormat *fmt; + int w, h; +{ + int off; + int x, y, d, dx, c; + int diffStat[256]; + int pixelCount = 0; + int pix, left[3]; + unsigned long avgError; + + /* If client is big-endian, color samples begin from the second + byte (offset 1) of a 32-bit pixel value. */ + off = (fmt->bigEndian != 0); + + memset(diffStat, 0, 256*sizeof(int)); + + y = 0, x = 0; + while (y < h && x < w) { + for (d = 0; d < h - y && d < w - x - DETECT_SUBROW_WIDTH; d++) { + for (c = 0; c < 3; c++) { + left[c] = (int)tightBeforeBuf[((y+d)*w+x+d)*4+off+c] & 0xFF; + } + for (dx = 1; dx <= DETECT_SUBROW_WIDTH; dx++) { + for (c = 0; c < 3; c++) { + pix = (int)tightBeforeBuf[((y+d)*w+x+d+dx)*4+off+c] & 0xFF; + diffStat[abs(pix - left[c])]++; + left[c] = pix; + } + pixelCount++; + } + } + if (w > h) { + x += h; + y = 0; + } else { + x = 0; + y += w; + } + } + + if (diffStat[0] * 33 / pixelCount >= 95) + return 0; + + avgError = 0; + for (c = 1; c < 8; c++) { + avgError += (unsigned long)diffStat[c] * (unsigned long)(c * c); + if (diffStat[c] == 0 || diffStat[c] > diffStat[c-1] * 2) + return 0; + } + for (; c < 256; c++) { + avgError += (unsigned long)diffStat[c] * (unsigned long)(c * c); + } + avgError /= (pixelCount * 3 - diffStat[0]); + + return avgError; +} + +#define DEFINE_DETECT_FUNCTION(bpp) \ + \ +static unsigned long \ +DetectSmoothImage##bpp (cl, fmt, w, h) \ + rfbClientPtr cl; \ + rfbPixelFormat *fmt; \ + int w, h; \ +{ \ + rfbBool endianMismatch; \ + uint##bpp##_t pix; \ + int maxColor[3], shiftBits[3]; \ + int x, y, d, dx, c; \ + int diffStat[256]; \ + int pixelCount = 0; \ + int sample, sum, left[3]; \ + unsigned long avgError; \ + \ + endianMismatch = (!cl->screen->rfbServerFormat.bigEndian != !fmt->bigEndian); \ + \ + maxColor[0] = fmt->redMax; \ + maxColor[1] = fmt->greenMax; \ + maxColor[2] = fmt->blueMax; \ + shiftBits[0] = fmt->redShift; \ + shiftBits[1] = fmt->greenShift; \ + shiftBits[2] = fmt->blueShift; \ + \ + memset(diffStat, 0, 256*sizeof(int)); \ + \ + y = 0, x = 0; \ + while (y < h && x < w) { \ + for (d = 0; d < h - y && d < w - x - DETECT_SUBROW_WIDTH; d++) { \ + pix = ((uint##bpp##_t *)tightBeforeBuf)[(y+d)*w+x+d]; \ + if (endianMismatch) { \ + pix = Swap##bpp(pix); \ + } \ + for (c = 0; c < 3; c++) { \ + left[c] = (int)(pix >> shiftBits[c] & maxColor[c]); \ + } \ + for (dx = 1; dx <= DETECT_SUBROW_WIDTH; dx++) { \ + pix = ((uint##bpp##_t *)tightBeforeBuf)[(y+d)*w+x+d+dx]; \ + if (endianMismatch) { \ + pix = Swap##bpp(pix); \ + } \ + sum = 0; \ + for (c = 0; c < 3; c++) { \ + sample = (int)(pix >> shiftBits[c] & maxColor[c]); \ + sum += abs(sample - left[c]); \ + left[c] = sample; \ + } \ + if (sum > 255) \ + sum = 255; \ + diffStat[sum]++; \ + pixelCount++; \ + } \ + } \ + if (w > h) { \ + x += h; \ + y = 0; \ + } else { \ + x = 0; \ + y += w; \ + } \ + } \ + \ + if ((diffStat[0] + diffStat[1]) * 100 / pixelCount >= 90) \ + return 0; \ + \ + avgError = 0; \ + for (c = 1; c < 8; c++) { \ + avgError += (unsigned long)diffStat[c] * (unsigned long)(c * c); \ + if (diffStat[c] == 0 || diffStat[c] > diffStat[c-1] * 2) \ + return 0; \ + } \ + for (; c < 256; c++) { \ + avgError += (unsigned long)diffStat[c] * (unsigned long)(c * c); \ + } \ + avgError /= (pixelCount - diffStat[0]); \ + \ + return avgError; \ +} + +DEFINE_DETECT_FUNCTION(16) +DEFINE_DETECT_FUNCTION(32) + + +/* + * JPEG compression stuff. + */ + +static struct jpeg_destination_mgr jpegDstManager; +static rfbBool jpegError; +static int jpegDstDataLen; + +static rfbBool +SendJpegRect(cl, x, y, w, h, quality) + rfbClientPtr cl; + int x, y, w, h; + int quality; +{ + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + uint8_t *srcBuf; + JSAMPROW rowPointer[1]; + int dy; + + if (cl->screen->rfbServerFormat.bitsPerPixel == 8) + return SendFullColorRect(cl, w, h); + + srcBuf = (uint8_t *)malloc(w * 3); + if (srcBuf == NULL) { + return SendFullColorRect(cl, w, h); + } + rowPointer[0] = srcBuf; + + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_compress(&cinfo); + + cinfo.image_width = w; + cinfo.image_height = h; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; + + jpeg_set_defaults(&cinfo); + jpeg_set_quality(&cinfo, quality, TRUE); + + JpegSetDstManager (&cinfo); + + jpeg_start_compress(&cinfo, TRUE); + + for (dy = 0; dy < h; dy++) { + PrepareRowForJpeg(cl, srcBuf, x, y + dy, w); + jpeg_write_scanlines(&cinfo, rowPointer, 1); + if (jpegError) + break; + } + + if (!jpegError) + jpeg_finish_compress(&cinfo); + + jpeg_destroy_compress(&cinfo); + free(srcBuf); + + if (jpegError) + return SendFullColorRect(cl, w, h); + + if (cl->ublen + TIGHT_MIN_TO_COMPRESS + 1 > UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + cl->updateBuf[cl->ublen++] = (char)(rfbTightJpeg << 4); + cl->rfbBytesSent[rfbEncodingTight]++; + + return SendCompressedData(cl, jpegDstDataLen); +} + +static void +PrepareRowForJpeg(cl, dst, x, y, count) + rfbClientPtr cl; + uint8_t *dst; + int x, y, count; +{ + if (cl->screen->rfbServerFormat.bitsPerPixel == 32) { + if ( cl->screen->rfbServerFormat.redMax == 0xFF && + cl->screen->rfbServerFormat.greenMax == 0xFF && + cl->screen->rfbServerFormat.blueMax == 0xFF ) { + PrepareRowForJpeg24(cl, dst, x, y, count); + } else { + PrepareRowForJpeg32(cl, dst, x, y, count); + } + } else { + /* 16 bpp assumed. */ + PrepareRowForJpeg16(cl, dst, x, y, count); + } +} + +static void +PrepareRowForJpeg24(cl, dst, x, y, count) + rfbClientPtr cl; + uint8_t *dst; + int x, y, count; +{ + uint32_t *fbptr; + uint32_t pix; + + fbptr = (uint32_t *) + &cl->screen->frameBuffer[y * cl->screen->paddedWidthInBytes + x * 4]; + + while (count--) { + pix = *fbptr++; + *dst++ = (uint8_t)(pix >> cl->screen->rfbServerFormat.redShift); + *dst++ = (uint8_t)(pix >> cl->screen->rfbServerFormat.greenShift); + *dst++ = (uint8_t)(pix >> cl->screen->rfbServerFormat.blueShift); + } +} + +#define DEFINE_JPEG_GET_ROW_FUNCTION(bpp) \ + \ +static void \ +PrepareRowForJpeg##bpp(cl, dst, x, y, count) \ + rfbClientPtr cl; \ + uint8_t *dst; \ + int x, y, count; \ +{ \ + uint##bpp##_t *fbptr; \ + uint##bpp##_t pix; \ + int inRed, inGreen, inBlue; \ + \ + fbptr = (uint##bpp##_t *) \ + &cl->screen->frameBuffer[y * cl->screen->paddedWidthInBytes + \ + x * (bpp / 8)]; \ + \ + while (count--) { \ + pix = *fbptr++; \ + \ + inRed = (int) \ + (pix >> cl->screen->rfbServerFormat.redShift & cl->screen->rfbServerFormat.redMax); \ + inGreen = (int) \ + (pix >> cl->screen->rfbServerFormat.greenShift & cl->screen->rfbServerFormat.greenMax); \ + inBlue = (int) \ + (pix >> cl->screen->rfbServerFormat.blueShift & cl->screen->rfbServerFormat.blueMax); \ + \ + *dst++ = (uint8_t)((inRed * 255 + cl->screen->rfbServerFormat.redMax / 2) / \ + cl->screen->rfbServerFormat.redMax); \ + *dst++ = (uint8_t)((inGreen * 255 + cl->screen->rfbServerFormat.greenMax / 2) / \ + cl->screen->rfbServerFormat.greenMax); \ + *dst++ = (uint8_t)((inBlue * 255 + cl->screen->rfbServerFormat.blueMax / 2) / \ + cl->screen->rfbServerFormat.blueMax); \ + } \ +} + +DEFINE_JPEG_GET_ROW_FUNCTION(16) +DEFINE_JPEG_GET_ROW_FUNCTION(32) + +/* + * Destination manager implementation for JPEG library. + */ + +static void +JpegInitDestination(j_compress_ptr cinfo) +{ + jpegError = FALSE; + jpegDstManager.next_output_byte = (JOCTET *)tightAfterBuf; + jpegDstManager.free_in_buffer = (size_t)tightAfterBufSize; +} + +static boolean +JpegEmptyOutputBuffer(j_compress_ptr cinfo) +{ + jpegError = TRUE; + jpegDstManager.next_output_byte = (JOCTET *)tightAfterBuf; + jpegDstManager.free_in_buffer = (size_t)tightAfterBufSize; + + return TRUE; +} + +static void +JpegTermDestination(j_compress_ptr cinfo) +{ + jpegDstDataLen = tightAfterBufSize - jpegDstManager.free_in_buffer; +} + +static void +JpegSetDstManager(j_compress_ptr cinfo) +{ + jpegDstManager.init_destination = JpegInitDestination; + jpegDstManager.empty_output_buffer = JpegEmptyOutputBuffer; + jpegDstManager.term_destination = JpegTermDestination; + cinfo->dest = &jpegDstManager; +} + +#endif /* VINO_HAVE_JPEG */ diff --git a/server/libvncserver/translate.c b/server/libvncserver/translate.c new file mode 100644 index 0000000..56d22cd --- /dev/null +++ b/server/libvncserver/translate.c @@ -0,0 +1,453 @@ +/* + * translate.c - translate between different pixel formats + */ + +/* + * OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>. + * Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge. + * All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "rfb/rfb.h" +#include "rfb/rfbregion.h" + +static void PrintPixelFormat(rfbPixelFormat *pf); +static rfbBool rfbSetClientColourMapBGR233(rfbClientPtr cl); + +rfbBool rfbEconomicTranslate = FALSE; + +/* + * Some standard pixel formats. + */ + +static const rfbPixelFormat BGR233Format = { + 8, 8, 0, 1, 7, 7, 3, 0, 3, 6, 0, 0 +}; + + +/* + * Macro to compare pixel formats. + */ + +#define PF_EQ(x,y) \ + ((x.bitsPerPixel == y.bitsPerPixel) && \ + (x.depth == y.depth) && \ + ((x.bigEndian == y.bigEndian) || (x.bitsPerPixel == 8)) && \ + (x.trueColour == y.trueColour) && \ + (!x.trueColour || ((x.redMax == y.redMax) && \ + (x.greenMax == y.greenMax) && \ + (x.blueMax == y.blueMax) && \ + (x.redShift == y.redShift) && \ + (x.greenShift == y.greenShift) && \ + (x.blueShift == y.blueShift)))) + +#define CONCAT2(a,b) a##b +#define CONCAT2E(a,b) CONCAT2(a,b) +#define CONCAT3(a,b,c) a##b##c +#define CONCAT3E(a,b,c) CONCAT3(a,b,c) +#define CONCAT4(a,b,c,d) a##b##c##d +#define CONCAT4E(a,b,c,d) CONCAT4(a,b,c,d) + +#undef OUT +#undef IN + +#define OUT 8 +#include "tableinitcmtemplate.c" +#include "tableinittctemplate.c" +#define IN 8 +#include "tabletranstemplate.c" +#undef IN +#define IN 16 +#include "tabletranstemplate.c" +#undef IN +#define IN 32 +#include "tabletranstemplate.c" +#undef IN +#undef OUT + +#define OUT 16 +#include "tableinitcmtemplate.c" +#include "tableinittctemplate.c" +#define IN 8 +#include "tabletranstemplate.c" +#undef IN +#define IN 16 +#include "tabletranstemplate.c" +#undef IN +#define IN 32 +#include "tabletranstemplate.c" +#undef IN +#undef OUT + +#define OUT 32 +#include "tableinitcmtemplate.c" +#include "tableinittctemplate.c" +#define IN 8 +#include "tabletranstemplate.c" +#undef IN +#define IN 16 +#include "tabletranstemplate.c" +#undef IN +#define IN 32 +#include "tabletranstemplate.c" +#undef IN +#undef OUT + +#define COUNT_OFFSETS 4 +#define BPP2OFFSET(bpp) ((bpp)/8-1) +#include "tableinit24.c" +#define BPP 8 +#include "tabletrans24template.c" +#undef BPP +#define BPP 16 +#include "tabletrans24template.c" +#undef BPP +#define BPP 24 +#include "tabletrans24template.c" +#undef BPP +#define BPP 32 +#include "tabletrans24template.c" +#undef BPP + +typedef void (*rfbInitCMTableFnType)(char **table, rfbPixelFormat *in, + rfbPixelFormat *out,rfbColourMap* cm); +typedef void (*rfbInitTableFnType)(char **table, rfbPixelFormat *in, + rfbPixelFormat *out); + +rfbInitCMTableFnType rfbInitColourMapSingleTableFns[COUNT_OFFSETS] = { + rfbInitColourMapSingleTable8, + rfbInitColourMapSingleTable16, + rfbInitColourMapSingleTable24, + rfbInitColourMapSingleTable32 +}; + +rfbInitTableFnType rfbInitTrueColourSingleTableFns[COUNT_OFFSETS] = { + rfbInitTrueColourSingleTable8, + rfbInitTrueColourSingleTable16, + rfbInitTrueColourSingleTable24, + rfbInitTrueColourSingleTable32 +}; + +rfbInitTableFnType rfbInitTrueColourRGBTablesFns[COUNT_OFFSETS] = { + rfbInitTrueColourRGBTables8, + rfbInitTrueColourRGBTables16, + rfbInitTrueColourRGBTables24, + rfbInitTrueColourRGBTables32 +}; + +rfbTranslateFnType rfbTranslateWithSingleTableFns[COUNT_OFFSETS][COUNT_OFFSETS] = { + { rfbTranslateWithSingleTable8to8, + rfbTranslateWithSingleTable8to16, + rfbTranslateWithSingleTable8to24, + rfbTranslateWithSingleTable8to32 }, + { rfbTranslateWithSingleTable16to8, + rfbTranslateWithSingleTable16to16, + rfbTranslateWithSingleTable16to24, + rfbTranslateWithSingleTable16to32 }, + { rfbTranslateWithSingleTable24to8, + rfbTranslateWithSingleTable24to16, + rfbTranslateWithSingleTable24to24, + rfbTranslateWithSingleTable24to32 }, + { rfbTranslateWithSingleTable32to8, + rfbTranslateWithSingleTable32to16, + rfbTranslateWithSingleTable32to24, + rfbTranslateWithSingleTable32to32 } +}; + +rfbTranslateFnType rfbTranslateWithRGBTablesFns[COUNT_OFFSETS][COUNT_OFFSETS] = { + { rfbTranslateWithRGBTables8to8, + rfbTranslateWithRGBTables8to16, + rfbTranslateWithRGBTables8to24, + rfbTranslateWithRGBTables8to32 }, + { rfbTranslateWithRGBTables16to8, + rfbTranslateWithRGBTables16to16, + rfbTranslateWithRGBTables16to24, + rfbTranslateWithRGBTables16to32 }, + { rfbTranslateWithRGBTables24to8, + rfbTranslateWithRGBTables24to16, + rfbTranslateWithRGBTables24to24, + rfbTranslateWithRGBTables24to32 }, + { rfbTranslateWithRGBTables32to8, + rfbTranslateWithRGBTables32to16, + rfbTranslateWithRGBTables32to24, + rfbTranslateWithRGBTables32to32 } +}; + + + +/* + * rfbTranslateNone is used when no translation is required. + */ + +void +rfbTranslateNone(char *table, rfbPixelFormat *in, rfbPixelFormat *out, + char *iptr, char *optr, int bytesBetweenInputLines, + int width, int height) +{ + int bytesPerOutputLine = width * (out->bitsPerPixel / 8); + + while (height > 0) { + memcpy(optr, iptr, bytesPerOutputLine); + iptr += bytesBetweenInputLines; + optr += bytesPerOutputLine; + height--; + } +} + + +/* + * rfbSetTranslateFunction sets the translation function. + */ + +rfbBool +rfbSetTranslateFunction(cl) + rfbClientPtr cl; +{ + rfbLog("Pixel format for client %s:\n",cl->host); + PrintPixelFormat(&cl->format); + + /* + * Check that bits per pixel values are valid + */ + + if ((cl->screen->rfbServerFormat.bitsPerPixel != 8) && + (cl->screen->rfbServerFormat.bitsPerPixel != 16) && + (cl->screen->rfbServerFormat.bitsPerPixel != 24) && + (cl->screen->rfbServerFormat.bitsPerPixel != 32)) + { + rfbErr("%s: server bits per pixel not 8, 16 or 32 (is %d)\n", + "rfbSetTranslateFunction", + cl->screen->rfbServerFormat.bitsPerPixel); + rfbCloseClient(cl); + return FALSE; + } + + if ((cl->format.bitsPerPixel != 8) && + (cl->format.bitsPerPixel != 16) && + (cl->format.bitsPerPixel != 24) && + (cl->format.bitsPerPixel != 32)) + { + rfbErr("%s: client bits per pixel not 8, 16 or 32\n", + "rfbSetTranslateFunction"); + rfbCloseClient(cl); + return FALSE; + } + + if (!cl->format.trueColour && (cl->format.bitsPerPixel != 8)) { + rfbErr("rfbSetTranslateFunction: client has colour map " + "but %d-bit - can only cope with 8-bit colour maps\n", + cl->format.bitsPerPixel); + rfbCloseClient(cl); + return FALSE; + } + + /* + * bpp is valid, now work out how to translate + */ + + if (!cl->format.trueColour) { + /* + * truecolour -> colour map + * + * Set client's colour map to BGR233, then effectively it's + * truecolour as well + */ + + if (!rfbSetClientColourMapBGR233(cl)) + return FALSE; + + cl->format = BGR233Format; + } + + /* truecolour -> truecolour */ + + if (PF_EQ(cl->format,cl->screen->rfbServerFormat)) { + + /* client & server the same */ + + rfbLog("no translation needed\n"); + cl->translateFn = rfbTranslateNone; + return TRUE; + } + + if ((cl->screen->rfbServerFormat.bitsPerPixel < 16) || + ((!cl->screen->rfbServerFormat.trueColour || !rfbEconomicTranslate) && + (cl->screen->rfbServerFormat.bitsPerPixel == 16))) { + + /* we can use a single lookup table for <= 16 bpp */ + + cl->translateFn = rfbTranslateWithSingleTableFns + [BPP2OFFSET(cl->screen->rfbServerFormat.bitsPerPixel)] + [BPP2OFFSET(cl->format.bitsPerPixel)]; + + if(cl->screen->rfbServerFormat.trueColour) + (*rfbInitTrueColourSingleTableFns + [BPP2OFFSET(cl->format.bitsPerPixel)]) (&cl->translateLookupTable, + &(cl->screen->rfbServerFormat), &cl->format); + else + (*rfbInitColourMapSingleTableFns + [BPP2OFFSET(cl->format.bitsPerPixel)]) (&cl->translateLookupTable, + &(cl->screen->rfbServerFormat), &cl->format,&cl->screen->colourMap); + + } else { + + /* otherwise we use three separate tables for red, green and blue */ + + cl->translateFn = rfbTranslateWithRGBTablesFns + [BPP2OFFSET(cl->screen->rfbServerFormat.bitsPerPixel)] + [BPP2OFFSET(cl->format.bitsPerPixel)]; + + (*rfbInitTrueColourRGBTablesFns + [BPP2OFFSET(cl->format.bitsPerPixel)]) (&cl->translateLookupTable, + &(cl->screen->rfbServerFormat), &cl->format); + } + + return TRUE; +} + + + +/* + * rfbSetClientColourMapBGR233 sets the client's colour map so that it's + * just like an 8-bit BGR233 true colour client. + */ + +static rfbBool +rfbSetClientColourMapBGR233(cl) + rfbClientPtr cl; +{ + char buf[sz_rfbSetColourMapEntriesMsg + 256 * 3 * 2]; + rfbSetColourMapEntriesMsg *scme = (rfbSetColourMapEntriesMsg *)buf; + uint16_t *rgb = (uint16_t *)(&buf[sz_rfbSetColourMapEntriesMsg]); + int i, len; + int r, g, b; + + if (cl->format.bitsPerPixel != 8 ) { + rfbErr("%s: client not 8 bits per pixel\n", + "rfbSetClientColourMapBGR233"); + rfbCloseClient(cl); + return FALSE; + } + + scme->type = rfbSetColourMapEntries; + + scme->firstColour = Swap16IfLE(0); + scme->nColours = Swap16IfLE(256); + + len = sz_rfbSetColourMapEntriesMsg; + + i = 0; + + for (b = 0; b < 4; b++) { + for (g = 0; g < 8; g++) { + for (r = 0; r < 8; r++) { + rgb[i++] = Swap16IfLE(r * 65535 / 7); + rgb[i++] = Swap16IfLE(g * 65535 / 7); + rgb[i++] = Swap16IfLE(b * 65535 / 3); + } + } + } + + len += 256 * 3 * 2; + + if (WriteExact(cl, buf, len) < 0) { + rfbLogPerror("rfbSetClientColourMapBGR233: write"); + rfbCloseClient(cl); + return FALSE; + } + return TRUE; +} + +/* this function is not called very often, so it needn't be + efficient. */ + +/* + * rfbSetClientColourMap is called to set the client's colour map. If the + * client is a true colour client, we simply update our own translation table + * and mark the whole screen as having been modified. + */ + +rfbBool +rfbSetClientColourMap(cl, firstColour, nColours) + rfbClientPtr cl; + int firstColour; + int nColours; +{ + if (cl->screen->rfbServerFormat.trueColour || !cl->readyForSetColourMapEntries) { + return TRUE; + } + + if (nColours == 0) { + nColours = cl->screen->colourMap.count; + } + + if (cl->format.trueColour) { + (*rfbInitColourMapSingleTableFns + [BPP2OFFSET(cl->format.bitsPerPixel)]) (&cl->translateLookupTable, + &cl->screen->rfbServerFormat, &cl->format,&cl->screen->colourMap); + + sraRgnDestroy(cl->modifiedRegion); + cl->modifiedRegion = + sraRgnCreateRect(0,0,cl->screen->width,cl->screen->height); + + return TRUE; + } + + return rfbSendSetColourMapEntries(cl, firstColour, nColours); +} + + +/* + * rfbSetClientColourMaps sets the colour map for each RFB client. + */ + +void +rfbSetClientColourMaps(rfbScreen, firstColour, nColours) + rfbScreenInfoPtr rfbScreen; + int firstColour; + int nColours; +{ + rfbClientIteratorPtr i; + rfbClientPtr cl; + + i = rfbGetClientIterator(rfbScreen); + while((cl = rfbClientIteratorNext(i))) + rfbSetClientColourMap(cl, firstColour, nColours); + rfbReleaseClientIterator(i); +} + +static void +PrintPixelFormat(pf) + rfbPixelFormat *pf; +{ + if (pf->bitsPerPixel == 1) { + rfbLog(" 1 bpp, %s sig bit in each byte is leftmost on the screen.\n", + (pf->bigEndian ? "most" : "least")); + } else { + rfbLog(" %d bpp, depth %d%s\n",pf->bitsPerPixel,pf->depth, + ((pf->bitsPerPixel == 8) ? "" + : (pf->bigEndian ? ", big endian" : ", little endian"))); + if (pf->trueColour) { + rfbLog(" true colour: max r %d g %d b %d, shift r %d g %d b %d\n", + pf->redMax, pf->greenMax, pf->blueMax, + pf->redShift, pf->greenShift, pf->blueShift); + } else { + rfbLog(" uses a colour map (not true colour).\n"); + } + } +} diff --git a/server/libvncserver/vncauth.c b/server/libvncserver/vncauth.c new file mode 100644 index 0000000..027f062 --- /dev/null +++ b/server/libvncserver/vncauth.c @@ -0,0 +1,100 @@ +/* + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/* + * vncauth.c - Functions for VNC password management and authentication. + */ + +#include "rfb/rfbproto.h" +#include "d3des.h" + +#ifdef VINO_HAVE_GCRYPT +#include <gcrypt.h> +#endif +#include <string.h> +#include <stdlib.h> +#include <time.h> + +#ifdef WIN32 +#define srandom srand +#define random rand +#endif + +/* + * Generate CHALLENGESIZE random bytes for use in challenge-response + * authentication. + */ + +void +vncRandomBytes(unsigned char *bytes) +{ +#ifdef VINO_HAVE_GCRYPT + static rfbBool gcrypt_init = FALSE; + + if (!gcrypt_init) { + if (!gcry_check_version(NULL)) /* version mismatch */ + exit(1); + gcry_control(GCRYCTL_DISABLE_SECMEM, 0); + gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); + gcrypt_init = TRUE; + } + + gcry_randomize(bytes, CHALLENGESIZE, GCRY_STRONG_RANDOM); +#else + int i; + static rfbBool s_srandom_called = FALSE; + + if (!s_srandom_called) { + srandom((unsigned int)time(0) ^ (unsigned int)getpid()); + s_srandom_called = TRUE; + } + + for (i = 0; i < CHALLENGESIZE; i++) { + bytes[i] = (unsigned char)(random() & 255); + } +#endif /* VINO_HAVE_GCRYPT */ +} + + +/* + * Encrypt CHALLENGESIZE bytes in memory using a password. + */ + +void +vncEncryptBytes(unsigned char *bytes, char *passwd) +{ + unsigned char key[8]; + unsigned int i; + + /* key is simply password padded with nulls */ + + for (i = 0; i < 8; i++) { + if (i < strlen(passwd)) { + key[i] = passwd[i]; + } else { + key[i] = 0; + } + } + + deskey(key, EN0); + + for (i = 0; i < CHALLENGESIZE; i += 8) { + des(bytes+i, bytes+i); + } +} diff --git a/server/libvncserver/zlib.c b/server/libvncserver/zlib.c new file mode 100644 index 0000000..63792b8 --- /dev/null +++ b/server/libvncserver/zlib.c @@ -0,0 +1,305 @@ +/* + * zlib.c + * + * Routines to implement zlib based encoding (deflate). + */ + +/* + * Copyright (C) 2000 Tridia Corporation. All Rights Reserved. + * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + * + * For the latest source code, please check: + * + * http://www.developVNC.org/ + * + * or send email to feedback@developvnc.org. + */ + +#include "rfb/rfb.h" + +#ifdef VINO_HAVE_ZLIB + +/* + * zlibBeforeBuf contains pixel data in the client's format. + * zlibAfterBuf contains the zlib (deflated) encoding version. + * If the zlib compressed/encoded version is + * larger than the raw data or if it exceeds zlibAfterBufSize then + * raw encoding is used instead. + */ + +static int zlibBeforeBufSize = 0; +static char *zlibBeforeBuf = NULL; + +static int zlibAfterBufSize = 0; +static char *zlibAfterBuf = NULL; +static int zlibAfterBufLen; + +/* + * rfbSendOneRectEncodingZlib - send a given rectangle using one Zlib + * rectangle encoding. + */ + +static rfbBool +rfbSendOneRectEncodingZlib(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + rfbFramebufferUpdateRectHeader rect; + rfbZlibHeader hdr; + int deflateResult; + int previousOut; + int i; + char *fbptr = (cl->screen->frameBuffer + (cl->screen->paddedWidthInBytes * y) + + (x * (cl->screen->bitsPerPixel / 8))); + + int maxRawSize; + int maxCompSize; + + maxRawSize = (cl->screen->width * cl->screen->height + * (cl->format.bitsPerPixel / 8)); + + if (zlibBeforeBufSize < maxRawSize) { + zlibBeforeBufSize = maxRawSize; + if (zlibBeforeBuf == NULL) + zlibBeforeBuf = (char *)malloc(zlibBeforeBufSize); + else + zlibBeforeBuf = (char *)realloc(zlibBeforeBuf, zlibBeforeBufSize); + } + + /* zlib compression is not useful for very small data sets. + * So, we just send these raw without any compression. + */ + if (( w * h * (cl->screen->bitsPerPixel / 8)) < + VNC_ENCODE_ZLIB_MIN_COMP_SIZE ) { + + int result; + + /* The translation function (used also by the in raw encoding) + * requires 4/2/1 byte alignment in the output buffer (which is + * updateBuf for the raw encoding) based on the bitsPerPixel of + * the viewer/client. This prevents SIGBUS errors on some + * architectures like SPARC, PARISC... + */ + if (( cl->format.bitsPerPixel > 8 ) && + ( cl->ublen % ( cl->format.bitsPerPixel / 8 )) != 0 ) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + result = rfbSendRectEncodingRaw(cl, x, y, w, h); + + return result; + + } + + /* + * zlib requires output buffer to be slightly larger than the input + * buffer, in the worst case. + */ + maxCompSize = maxRawSize + (( maxRawSize + 99 ) / 100 ) + 12; + + if (zlibAfterBufSize < maxCompSize) { + zlibAfterBufSize = maxCompSize; + if (zlibAfterBuf == NULL) + zlibAfterBuf = (char *)malloc(zlibAfterBufSize); + else + zlibAfterBuf = (char *)realloc(zlibAfterBuf, zlibAfterBufSize); + } + + /* + * Convert pixel data to client format. + */ + (*cl->translateFn)(cl->translateLookupTable, &cl->screen->rfbServerFormat, + &cl->format, fbptr, zlibBeforeBuf, + cl->screen->paddedWidthInBytes, w, h); + + cl->compStream.next_in = ( Bytef * )zlibBeforeBuf; + cl->compStream.avail_in = w * h * (cl->format.bitsPerPixel / 8); + cl->compStream.next_out = ( Bytef * )zlibAfterBuf; + cl->compStream.avail_out = maxCompSize; + cl->compStream.data_type = Z_BINARY; + + /* Initialize the deflation state. */ + if ( cl->compStreamInited == FALSE ) { + + cl->compStream.total_in = 0; + cl->compStream.total_out = 0; + cl->compStream.zalloc = Z_NULL; + cl->compStream.zfree = Z_NULL; + cl->compStream.opaque = Z_NULL; + + deflateInit2( &(cl->compStream), + cl->zlibCompressLevel, + Z_DEFLATED, + MAX_WBITS, + MAX_MEM_LEVEL, + Z_DEFAULT_STRATEGY ); + /* deflateInit( &(cl->compStream), Z_BEST_COMPRESSION ); */ + /* deflateInit( &(cl->compStream), Z_BEST_SPEED ); */ + cl->compStreamInited = TRUE; + + } + + previousOut = cl->compStream.total_out; + + /* Perform the compression here. */ + deflateResult = deflate( &(cl->compStream), Z_SYNC_FLUSH ); + + /* Find the total size of the resulting compressed data. */ + zlibAfterBufLen = cl->compStream.total_out - previousOut; + + if ( deflateResult != Z_OK ) { + rfbErr("zlib deflation error: %s\n", cl->compStream.msg); + return FALSE; + } + + /* Note that it is not possible to switch zlib parameters based on + * the results of the compression pass. The reason is + * that we rely on the compressor and decompressor states being + * in sync. Compressing and then discarding the results would + * cause lose of synchronization. + */ + + /* Update statics */ + cl->rfbRectanglesSent[rfbEncodingZlib]++; + cl->rfbBytesSent[rfbEncodingZlib] += (sz_rfbFramebufferUpdateRectHeader + + sz_rfbZlibHeader + zlibAfterBufLen); + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader + sz_rfbZlibHeader + > UPDATE_BUF_SIZE) + { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingZlib); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + hdr.nBytes = Swap32IfLE(zlibAfterBufLen); + + memcpy(&cl->updateBuf[cl->ublen], (char *)&hdr, sz_rfbZlibHeader); + cl->ublen += sz_rfbZlibHeader; + + for (i = 0; i < zlibAfterBufLen;) { + + int bytesToCopy = UPDATE_BUF_SIZE - cl->ublen; + + if (i + bytesToCopy > zlibAfterBufLen) { + bytesToCopy = zlibAfterBufLen - i; + } + + memcpy(&cl->updateBuf[cl->ublen], &zlibAfterBuf[i], bytesToCopy); + + cl->ublen += bytesToCopy; + i += bytesToCopy; + + if (cl->ublen == UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + } + + return TRUE; + +} + + +/* + * rfbSendRectEncodingZlib - send a given rectangle using one or more + * Zlib encoding rectangles. + */ + +rfbBool +rfbSendRectEncodingZlib(cl, x, y, w, h) + rfbClientPtr cl; + int x, y, w, h; +{ + int maxLines; + int linesRemaining; + rfbRectangle partialRect; + + partialRect.x = x; + partialRect.y = y; + partialRect.w = w; + partialRect.h = h; + + /* Determine maximum pixel/scan lines allowed per rectangle. */ + maxLines = ( ZLIB_MAX_SIZE(w) / w ); + + /* Initialize number of scan lines left to do. */ + linesRemaining = h; + + /* Loop until all work is done. */ + while ( linesRemaining > 0 ) { + + int linesToComp; + + if ( maxLines < linesRemaining ) + linesToComp = maxLines; + else + linesToComp = linesRemaining; + + partialRect.h = linesToComp; + + /* Encode (compress) and send the next rectangle. */ + if ( ! rfbSendOneRectEncodingZlib( cl, + partialRect.x, + partialRect.y, + partialRect.w, + partialRect.h )) { + + return FALSE; + } + + /* Technically, flushing the buffer here is not extrememly + * efficient. However, this improves the overall throughput + * of the system over very slow networks. By flushing + * the buffer with every maximum size zlib rectangle, we + * improve the pipelining usage of the server CPU, network, + * and viewer CPU components. Insuring that these components + * are working in parallel actually improves the performance + * seen by the user. + * Since, zlib is most useful for slow networks, this flush + * is appropriate for the desired behavior of the zlib encoding. + */ + if (( cl->ublen > 0 ) && + ( linesToComp == maxLines )) { + if (!rfbSendUpdateBuf(cl)) { + + return FALSE; + } + } + + /* Update remaining and incremental rectangle location. */ + linesRemaining -= linesToComp; + partialRect.y += linesToComp; + + } + + return TRUE; + +} + +#endif diff --git a/server/libvncserver/zrle.c b/server/libvncserver/zrle.c new file mode 100644 index 0000000..676fb08 --- /dev/null +++ b/server/libvncserver/zrle.c @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/* + * zrle.c + * + * Routines to implement Zlib Run-length Encoding (ZRLE). + */ + +#include "rfb/rfb.h" +#include "zrleoutstream.h" + + +#ifdef VINO_HAVE_ZLIB + +#define GET_IMAGE_INTO_BUF(tx,ty,tw,th,buf) \ +{ char *fbptr = (cl->screen->frameBuffer \ + + (cl->screen->paddedWidthInBytes * ty) \ + + (tx * (cl->screen->bitsPerPixel / 8))); \ + \ + (*cl->translateFn)(cl->translateLookupTable, &cl->screen->rfbServerFormat,\ + &cl->format, fbptr, (char*)buf, \ + cl->screen->paddedWidthInBytes, tw, th); } + +#define EXTRA_ARGS , rfbClientPtr cl + +#define BPP 8 +#include "zrleencodetemplate.c" +#undef BPP +#define BPP 16 +#include "zrleencodetemplate.c" +#undef BPP +#define BPP 32 +#include "zrleencodetemplate.c" +#define CPIXEL 24A +#include "zrleencodetemplate.c" +#undef CPIXEL +#define CPIXEL 24B +#include "zrleencodetemplate.c" +#undef CPIXEL +#undef BPP + + +/* + * zrleBeforeBuf contains pixel data in the client's format. It must be at + * least one pixel bigger than the largest tile of pixel data, since the + * ZRLE encoding algorithm writes to the position one past the end of the pixel + * data. + */ + +static char zrleBeforeBuf[rfbZRLETileWidth * rfbZRLETileHeight * 4 + 4]; + + + +/* + * rfbSendRectEncodingZRLE - send a given rectangle using ZRLE encoding. + */ + + +rfbBool rfbSendRectEncodingZRLE(rfbClientPtr cl, int x, int y, int w, int h) +{ + zrleOutStream* zos; + rfbFramebufferUpdateRectHeader rect; + rfbZRLEHeader hdr; + int i; + + if (!cl->zrleData) + cl->zrleData = zrleOutStreamNew(); + zos = cl->zrleData; + zos->in.ptr = zos->in.start; + zos->out.ptr = zos->out.start; + + switch (cl->format.bitsPerPixel) { + + case 8: + zrleEncode8( x, y, w, h, zos, zrleBeforeBuf, cl); + break; + + case 16: + zrleEncode16(x, y, w, h, zos, zrleBeforeBuf, cl); + break; + + case 32: { + rfbBool fitsInLS3Bytes + = ((cl->format.redMax << cl->format.redShift) < (1<<24) && + (cl->format.greenMax << cl->format.greenShift) < (1<<24) && + (cl->format.blueMax << cl->format.blueShift) < (1<<24)); + + rfbBool fitsInMS3Bytes = (cl->format.redShift > 7 && + cl->format.greenShift > 7 && + cl->format.blueShift > 7); + + if ((fitsInLS3Bytes && !cl->format.bigEndian) || + (fitsInMS3Bytes && cl->format.bigEndian)) + { + zrleEncode24A(x, y, w, h, zos, zrleBeforeBuf, cl); + } + else if ((fitsInLS3Bytes && cl->format.bigEndian) || + (fitsInMS3Bytes && !cl->format.bigEndian)) + { + zrleEncode24B(x, y, w, h, zos, zrleBeforeBuf, cl); + } + else + { + zrleEncode32(x, y, w, h, zos, zrleBeforeBuf, cl); + } + } + break; + } + + cl->rfbRectanglesSent[rfbEncodingZRLE]++; + cl->rfbBytesSent[rfbEncodingZRLE] += (sz_rfbFramebufferUpdateRectHeader + + sz_rfbZRLEHeader + ZRLE_BUFFER_LENGTH(&zos->out)); + + if (cl->ublen + sz_rfbFramebufferUpdateRectHeader + sz_rfbZRLEHeader + > UPDATE_BUF_SIZE) + { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + + rect.r.x = Swap16IfLE(x); + rect.r.y = Swap16IfLE(y); + rect.r.w = Swap16IfLE(w); + rect.r.h = Swap16IfLE(h); + rect.encoding = Swap32IfLE(rfbEncodingZRLE); + + memcpy(cl->updateBuf+cl->ublen, (char *)&rect, + sz_rfbFramebufferUpdateRectHeader); + cl->ublen += sz_rfbFramebufferUpdateRectHeader; + + hdr.length = Swap32IfLE(ZRLE_BUFFER_LENGTH(&zos->out)); + + memcpy(cl->updateBuf+cl->ublen, (char *)&hdr, sz_rfbZRLEHeader); + cl->ublen += sz_rfbZRLEHeader; + + /* copy into updateBuf and send from there. Maybe should send directly? */ + + for (i = 0; i < ZRLE_BUFFER_LENGTH(&zos->out);) { + + int bytesToCopy = UPDATE_BUF_SIZE - cl->ublen; + + if (i + bytesToCopy > ZRLE_BUFFER_LENGTH(&zos->out)) { + bytesToCopy = ZRLE_BUFFER_LENGTH(&zos->out) - i; + } + + memcpy(cl->updateBuf+cl->ublen, (uint8_t*)zos->out.start + i, bytesToCopy); + + cl->ublen += bytesToCopy; + i += bytesToCopy; + + if (cl->ublen == UPDATE_BUF_SIZE) { + if (!rfbSendUpdateBuf(cl)) + return FALSE; + } + } + + return TRUE; +} + + +void FreeZrleData(rfbClientPtr cl) +{ + if (cl->zrleData) + zrleOutStreamFree(cl->zrleData); + cl->zrleData = NULL; +} + +#endif /* VINO_HAVE_ZLIB */ diff --git a/server/libvncserver/zrleencodetemplate.c b/server/libvncserver/zrleencodetemplate.c new file mode 100644 index 0000000..17ef0ad --- /dev/null +++ b/server/libvncserver/zrleencodetemplate.c @@ -0,0 +1,271 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/* + * Before including this file, you must define a number of CPP macros. + * + * BPP should be 8, 16 or 32 depending on the bits per pixel. + * GET_IMAGE_INTO_BUF should be some code which gets a rectangle of pixel data + * into the given buffer. EXTRA_ARGS can be defined to pass any other + * arguments needed by GET_IMAGE_INTO_BUF. + * + * Note that the buf argument to ZRLE_ENCODE needs to be at least one pixel + * bigger than the largest tile of pixel data, since the ZRLE encoding + * algorithm writes to the position one past the end of the pixel data. + */ + +#include "zrleoutstream.h" +#include "zrlepalettehelper.h" +#include <assert.h> + +/* __RFB_CONCAT2 concatenates its two arguments. __RFB_CONCAT2E does the same + but also expands its arguments if they are macros */ + +#ifndef __RFB_CONCAT2E +#define __RFB_CONCAT2(a,b) a##b +#define __RFB_CONCAT2E(a,b) __RFB_CONCAT2(a,b) +#endif + +#ifdef CPIXEL +#define PIXEL_T __RFB_CONCAT2E(zrle_U,BPP) +#define zrleOutStreamWRITE_PIXEL __RFB_CONCAT2E(zrleOutStreamWriteOpaque,CPIXEL) +#define ZRLE_ENCODE __RFB_CONCAT2E(zrleEncode,CPIXEL) +#define ZRLE_ENCODE_TILE __RFB_CONCAT2E(zrleEncodeTile,CPIXEL) +#define BPPOUT 24 +#else +#define PIXEL_T __RFB_CONCAT2E(zrle_U,BPP) +#define zrleOutStreamWRITE_PIXEL __RFB_CONCAT2E(zrleOutStreamWriteOpaque,BPP) +#define ZRLE_ENCODE __RFB_CONCAT2E(zrleEncode,BPP) +#define ZRLE_ENCODE_TILE __RFB_CONCAT2E(zrleEncodeTile,BPP) +#define BPPOUT BPP +#endif + +#ifndef ZRLE_ONCE +#define ZRLE_ONCE + +static const int bitsPerPackedPixel[] = { + 0, 1, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +}; + +static zrlePaletteHelper paletteHelper; + +#endif /* ZRLE_ONCE */ + +static void ZRLE_ENCODE_TILE (PIXEL_T* data, int w, int h, zrleOutStream* os); + +static void ZRLE_ENCODE (int x, int y, int w, int h, + zrleOutStream* os, void* buf + EXTRA_ARGS) +{ + int ty; + for (ty = y; ty < y+h; ty += rfbZRLETileHeight) { + int tx, th = rfbZRLETileHeight; + if (th > y+h-ty) th = y+h-ty; + for (tx = x; tx < x+w; tx += rfbZRLETileWidth) { + int tw = rfbZRLETileWidth; + if (tw > x+w-tx) tw = x+w-tx; + + GET_IMAGE_INTO_BUF(tx,ty,tw,th,buf); + + ZRLE_ENCODE_TILE((PIXEL_T*)buf, tw, th, os); + } + } + zrleOutStreamFlush(os); +} + + +static void ZRLE_ENCODE_TILE (PIXEL_T* data, int w, int h, zrleOutStream* os) +{ + /* First find the palette and the number of runs */ + + zrlePaletteHelper *ph; + + int runs = 0; + int singlePixels = 0; + + rfbBool useRle; + rfbBool usePalette; + + int estimatedBytes; + int plainRleBytes; + int i; + + PIXEL_T* ptr = data; + PIXEL_T* end = ptr + h * w; + *end = ~*(end-1); /* one past the end is different so the while loop ends */ + + ph = &paletteHelper; + zrlePaletteHelperInit(ph); + + while (ptr < end) { + PIXEL_T pix = *ptr; + if (*++ptr != pix) { + singlePixels++; + } else { + while (*++ptr == pix) ; + runs++; + } + zrlePaletteHelperInsert(ph, pix); + } + + /* Solid tile is a special case */ + + if (ph->size == 1) { + zrleOutStreamWriteU8(os, 1); + zrleOutStreamWRITE_PIXEL(os, ph->palette[0]); + return; + } + + // Try to work out whether to use RLE and/or a palette. We do this by + // estimating the number of bytes which will be generated and picking the + // method which results in the fewest bytes. Of course this may not result + // in the fewest bytes after compression... + + useRle = FALSE; + usePalette = FALSE; + + estimatedBytes = w * h * (BPPOUT/8); // start assuming raw + + plainRleBytes = ((BPPOUT/8)+1) * (runs + singlePixels); + + if (plainRleBytes < estimatedBytes) { + useRle = TRUE; + estimatedBytes = plainRleBytes; + } + + if (ph->size < 128) { + int paletteRleBytes = (BPPOUT/8) * ph->size + 2 * runs + singlePixels; + + if (paletteRleBytes < estimatedBytes) { + useRle = TRUE; + usePalette = TRUE; + estimatedBytes = paletteRleBytes; + } + + if (ph->size < 17) { + int packedBytes = ((BPPOUT/8) * ph->size + + w * h * bitsPerPackedPixel[ph->size-1] / 8); + + if (packedBytes < estimatedBytes) { + useRle = FALSE; + usePalette = TRUE; + estimatedBytes = packedBytes; + } + } + } + + if (!usePalette) ph->size = 0; + + zrleOutStreamWriteU8(os, (useRle ? 128 : 0) | ph->size); + + for (i = 0; i < ph->size; i++) { + zrleOutStreamWRITE_PIXEL(os, ph->palette[i]); + } + + if (useRle) { + + PIXEL_T* ptr = data; + PIXEL_T* end = ptr + w * h; + PIXEL_T* runStart; + PIXEL_T pix; + while (ptr < end) { + int len; + runStart = ptr; + pix = *ptr++; + while (*ptr == pix && ptr < end) + ptr++; + len = ptr - runStart; + if (len <= 2 && usePalette) { + int index = zrlePaletteHelperLookup(ph, pix); + if (len == 2) + zrleOutStreamWriteU8(os, index); + zrleOutStreamWriteU8(os, index); + continue; + } + if (usePalette) { + int index = zrlePaletteHelperLookup(ph, pix); + zrleOutStreamWriteU8(os, index | 128); + } else { + zrleOutStreamWRITE_PIXEL(os, pix); + } + len -= 1; + while (len >= 255) { + zrleOutStreamWriteU8(os, 255); + len -= 255; + } + zrleOutStreamWriteU8(os, len); + } + + } else { + + // no RLE + + if (usePalette) { + int bppp; + PIXEL_T* ptr = data; + + // packed pixels + + assert (ph->size < 17); + + bppp = bitsPerPackedPixel[ph->size-1]; + + for (i = 0; i < h; i++) { + zrle_U8 nbits = 0; + zrle_U8 byte = 0; + + PIXEL_T* eol = ptr + w; + + while (ptr < eol) { + PIXEL_T pix = *ptr++; + zrle_U8 index = zrlePaletteHelperLookup(ph, pix); + byte = (byte << bppp) | index; + nbits += bppp; + if (nbits >= 8) { + zrleOutStreamWriteU8(os, byte); + nbits = 0; + } + } + if (nbits > 0) { + byte <<= 8 - nbits; + zrleOutStreamWriteU8(os, byte); + } + } + } else { + + // raw + +#ifdef CPIXEL + PIXEL_T *ptr; + for (ptr = data; ptr < data+w*h; ptr++) { + zrleOutStreamWRITE_PIXEL(os, *ptr); + } +#else + zrleOutStreamWriteBytes(os, (zrle_U8 *)data, w*h*(BPP/8)); +#endif + } + } +} + +#undef PIXEL_T +#undef zrleOutStreamWRITE_PIXEL +#undef ZRLE_ENCODE +#undef ZRLE_ENCODE_TILE +#undef BPPOUT diff --git a/server/libvncserver/zrleoutstream.c b/server/libvncserver/zrleoutstream.c new file mode 100644 index 0000000..d22d649 --- /dev/null +++ b/server/libvncserver/zrleoutstream.c @@ -0,0 +1,276 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "zrleoutstream.h" +#include <stdlib.h> + +#define ZRLE_IN_BUFFER_SIZE 16384 +#define ZRLE_OUT_BUFFER_SIZE 1024 +#undef ZRLE_DEBUG + +static rfbBool zrleBufferAlloc(zrleBuffer *buffer, int size) +{ + buffer->ptr = buffer->start = malloc(size); + if (buffer->start == NULL) { + buffer->end = NULL; + return FALSE; + } + + buffer->end = buffer->start + size; + + return TRUE; +} + +static void zrleBufferFree(zrleBuffer *buffer) +{ + if (buffer->start) + free(buffer->start); + buffer->start = buffer->ptr = buffer->end = NULL; +} + +static rfbBool zrleBufferGrow(zrleBuffer *buffer, int size) +{ + int offset; + + size += buffer->end - buffer->start; + offset = ZRLE_BUFFER_LENGTH (buffer); + + buffer->start = realloc(buffer->start, size); + if (!buffer->start) { + return FALSE; + } + + buffer->end = buffer->start + size; + buffer->ptr = buffer->start + offset; + + return TRUE; +} + +zrleOutStream *zrleOutStreamNew(void) +{ + zrleOutStream *os; + + os = malloc(sizeof(zrleOutStream)); + if (os == NULL) + return NULL; + + if (!zrleBufferAlloc(&os->in, ZRLE_IN_BUFFER_SIZE)) { + free(os); + return NULL; + } + + if (!zrleBufferAlloc(&os->out, ZRLE_OUT_BUFFER_SIZE)) { + zrleBufferFree(&os->in); + free(os); + return NULL; + } + + os->zs.zalloc = Z_NULL; + os->zs.zfree = Z_NULL; + os->zs.opaque = Z_NULL; + if (deflateInit(&os->zs, Z_DEFAULT_COMPRESSION) != Z_OK) { + zrleBufferFree(&os->in); + free(os); + return NULL; + } + + return os; +} + +void zrleOutStreamFree (zrleOutStream *os) +{ + deflateEnd(&os->zs); + zrleBufferFree(&os->in); + zrleBufferFree(&os->out); + free(os); +} + +rfbBool zrleOutStreamFlush(zrleOutStream *os) +{ + os->zs.next_in = os->in.start; + os->zs.avail_in = ZRLE_BUFFER_LENGTH (&os->in); + +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamFlush: avail_in %d\n", os->zs.avail_in); +#endif + + while (os->zs.avail_in != 0) { + do { + int ret; + + if (os->out.ptr >= os->out.end && + !zrleBufferGrow(&os->out, os->out.end - os->out.start)) { + rfbLog("zrleOutStreamFlush: failed to grow output buffer\n"); + return FALSE; + } + + os->zs.next_out = os->out.ptr; + os->zs.avail_out = os->out.end - os->out.ptr; + +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamFlush: calling deflate, avail_in %d, avail_out %d\n", + os->zs.avail_in, os->zs.avail_out); +#endif + + if ((ret = deflate(&os->zs, Z_SYNC_FLUSH)) != Z_OK) { + rfbLog("zrleOutStreamFlush: deflate failed with error code %d\n", ret); + return FALSE; + } + +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamFlush: after deflate: %d bytes\n", + os->zs.next_out - os->out.ptr); +#endif + + os->out.ptr = os->zs.next_out; + } while (os->zs.avail_out == 0); + } + + os->in.ptr = os->in.start; + + return TRUE; +} + +static int zrleOutStreamOverrun(zrleOutStream *os, + int size) +{ +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamOverrun\n"); +#endif + + while (os->in.end - os->in.ptr < size && os->in.ptr > os->in.start) { + os->zs.next_in = os->in.start; + os->zs.avail_in = ZRLE_BUFFER_LENGTH (&os->in); + + do { + int ret; + + if (os->out.ptr >= os->out.end && + !zrleBufferGrow(&os->out, os->out.end - os->out.start)) { + rfbLog("zrleOutStreamOverrun: failed to grow output buffer\n"); + return FALSE; + } + + os->zs.next_out = os->out.ptr; + os->zs.avail_out = os->out.end - os->out.ptr; + +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamOverrun: calling deflate, avail_in %d, avail_out %d\n", + os->zs.avail_in, os->zs.avail_out); +#endif + + if ((ret = deflate(&os->zs, 0)) != Z_OK) { + rfbLog("zrleOutStreamOverrun: deflate failed with error code %d\n", ret); + return 0; + } + +#ifdef ZRLE_DEBUG + rfbLog("zrleOutStreamOverrun: after deflate: %d bytes\n", + os->zs.next_out - os->out.ptr); +#endif + + os->out.ptr = os->zs.next_out; + } while (os->zs.avail_out == 0); + + /* output buffer not full */ + + if (os->zs.avail_in == 0) { + os->in.ptr = os->in.start; + } else { + /* but didn't consume all the data? try shifting what's left to the + * start of the buffer. + */ + rfbLog("zrleOutStreamOverrun: out buf not full, but in data not consumed\n"); + memmove(os->in.start, os->zs.next_in, os->in.ptr - os->zs.next_in); + os->in.ptr -= os->zs.next_in - os->in.start; + } + } + + if (size > os->in.end - os->in.ptr) + size = os->in.end - os->in.ptr; + + return size; +} + +static inline int zrleOutStreamCheck(zrleOutStream *os, + int size) +{ + if (os->in.ptr + size > os->in.end) { + return zrleOutStreamOverrun(os, size); + } + return size; +} + +void zrleOutStreamWriteBytes(zrleOutStream *os, + const zrle_U8 *data, + int length) +{ + const zrle_U8* dataEnd = data + length; + while (data < dataEnd) { + int n = zrleOutStreamCheck(os, dataEnd - data); + memcpy(os->in.ptr, data, n); + os->in.ptr += n; + data += n; + } +} + +void zrleOutStreamWriteU8(zrleOutStream *os, zrle_U8 u) +{ + zrleOutStreamCheck(os, 1); + *os->in.ptr++ = u; +} + +void zrleOutStreamWriteOpaque8(zrleOutStream *os, zrle_U8 u) +{ + zrleOutStreamCheck(os, 1); + *os->in.ptr++ = u; +} + +void zrleOutStreamWriteOpaque16 (zrleOutStream *os, zrle_U16 u) +{ + zrleOutStreamCheck(os, 2); + *os->in.ptr++ = ((zrle_U8*)&u)[0]; + *os->in.ptr++ = ((zrle_U8*)&u)[1]; +} + +void zrleOutStreamWriteOpaque32 (zrleOutStream *os, zrle_U32 u) +{ + zrleOutStreamCheck(os, 4); + *os->in.ptr++ = ((zrle_U8*)&u)[0]; + *os->in.ptr++ = ((zrle_U8*)&u)[1]; + *os->in.ptr++ = ((zrle_U8*)&u)[2]; + *os->in.ptr++ = ((zrle_U8*)&u)[3]; +} + +void zrleOutStreamWriteOpaque24A(zrleOutStream *os, zrle_U32 u) +{ + zrleOutStreamCheck(os, 3); + *os->in.ptr++ = ((zrle_U8*)&u)[0]; + *os->in.ptr++ = ((zrle_U8*)&u)[1]; + *os->in.ptr++ = ((zrle_U8*)&u)[2]; +} + +void zrleOutStreamWriteOpaque24B(zrleOutStream *os, zrle_U32 u) +{ + zrleOutStreamCheck(os, 3); + *os->in.ptr++ = ((zrle_U8*)&u)[1]; + *os->in.ptr++ = ((zrle_U8*)&u)[2]; + *os->in.ptr++ = ((zrle_U8*)&u)[3]; +} diff --git a/server/libvncserver/zrleoutstream.h b/server/libvncserver/zrleoutstream.h new file mode 100644 index 0000000..9e4fe51 --- /dev/null +++ b/server/libvncserver/zrleoutstream.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#ifndef __ZRLE_OUT_STREAM_H__ +#define __ZRLE_OUT_STREAM_H__ + +#include <zlib.h> +#include "zrletypes.h" +#include "rfb/rfb.h" + +typedef struct { + zrle_U8 *start; + zrle_U8 *ptr; + zrle_U8 *end; +} zrleBuffer; + +typedef struct { + zrleBuffer in; + zrleBuffer out; + + z_stream zs; +} zrleOutStream; + +#define ZRLE_BUFFER_LENGTH(b) ((b)->ptr - (b)->start) + +zrleOutStream *zrleOutStreamNew (void); +void zrleOutStreamFree (zrleOutStream *os); +rfbBool zrleOutStreamFlush (zrleOutStream *os); +void zrleOutStreamWriteBytes (zrleOutStream *os, + const zrle_U8 *data, + int length); +void zrleOutStreamWriteU8 (zrleOutStream *os, + zrle_U8 u); +void zrleOutStreamWriteOpaque8 (zrleOutStream *os, + zrle_U8 u); +void zrleOutStreamWriteOpaque16 (zrleOutStream *os, + zrle_U16 u); +void zrleOutStreamWriteOpaque32 (zrleOutStream *os, + zrle_U32 u); +void zrleOutStreamWriteOpaque24A(zrleOutStream *os, + zrle_U32 u); +void zrleOutStreamWriteOpaque24B(zrleOutStream *os, + zrle_U32 u); + +#endif /* __ZRLE_OUT_STREAM_H__ */ diff --git a/server/libvncserver/zrlepalettehelper.c b/server/libvncserver/zrlepalettehelper.c new file mode 100644 index 0000000..d758a26 --- /dev/null +++ b/server/libvncserver/zrlepalettehelper.c @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include "zrlepalettehelper.h" +#include <assert.h> +#include <string.h> + +#define ZRLE_HASH(pix) (((pix) ^ ((pix) >> 17)) & 4095) + +void zrlePaletteHelperInit(zrlePaletteHelper *helper) +{ + memset(helper->palette, 0, sizeof(helper->palette)); + memset(helper->index, 255, sizeof(helper->index)); + memset(helper->key, 0, sizeof(helper->key)); + helper->size = 0; +} + +void zrlePaletteHelperInsert(zrlePaletteHelper *helper, zrle_U32 pix) +{ + if (helper->size < ZRLE_PALETTE_MAX_SIZE) { + int i = ZRLE_HASH(pix); + + while (helper->index[i] != 255 && helper->key[i] != pix) + i++; + if (helper->index[i] != 255) return; + + helper->index[i] = helper->size; + helper->key[i] = pix; + helper->palette[helper->size] = pix; + } + helper->size++; +} + +int zrlePaletteHelperLookup(zrlePaletteHelper *helper, zrle_U32 pix) +{ + int i = ZRLE_HASH(pix); + + assert(helper->size <= ZRLE_PALETTE_MAX_SIZE); + + while (helper->index[i] != 255 && helper->key[i] != pix) + i++; + if (helper->index[i] != 255) return helper->index[i]; + + return -1; +} diff --git a/server/libvncserver/zrlepalettehelper.h b/server/libvncserver/zrlepalettehelper.h new file mode 100644 index 0000000..e1213d1 --- /dev/null +++ b/server/libvncserver/zrlepalettehelper.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +/* + * The PaletteHelper class helps us build up the palette from pixel data by + * storing a reverse index using a simple hash-table + */ + +#ifndef __ZRLE_PALETTE_HELPER_H__ +#define __ZRLE_PALETTE_HELPER_H__ + +#include "zrletypes.h" + +#define ZRLE_PALETTE_MAX_SIZE 127 + +typedef struct { + zrle_U32 palette[ZRLE_PALETTE_MAX_SIZE]; + zrle_U8 index[ZRLE_PALETTE_MAX_SIZE + 4096]; + zrle_U32 key[ZRLE_PALETTE_MAX_SIZE + 4096]; + int size; +} zrlePaletteHelper; + +void zrlePaletteHelperInit (zrlePaletteHelper *helper); +void zrlePaletteHelperInsert(zrlePaletteHelper *helper, + zrle_U32 pix); +int zrlePaletteHelperLookup(zrlePaletteHelper *helper, + zrle_U32 pix); + +#endif /* __ZRLE_PALETTE_HELPER_H__ */ diff --git a/server/libvncserver/zrletypes.h b/server/libvncserver/zrletypes.h new file mode 100644 index 0000000..0df42c9 --- /dev/null +++ b/server/libvncserver/zrletypes.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2002 RealVNC Ltd. All Rights Reserved. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#ifndef __ZRLE_TYPES_H__ +#define __ZRLE_TYPES_H__ + +typedef unsigned char zrle_U8; +typedef unsigned short zrle_U16; +typedef unsigned int zrle_U32; +typedef signed char zrle_S8; +typedef signed short zrle_S16; +typedef signed int zrle_S32; + +#endif /* __ZRLE_TYPES_H__ */ diff --git a/server/miniupnp/LICENCE b/server/miniupnp/LICENCE new file mode 100644 index 0000000..a8cfb5e --- /dev/null +++ b/server/miniupnp/LICENCE @@ -0,0 +1,26 @@ +Copyright (c) 2005-2008, Thomas BERNARD +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/server/miniupnp/README b/server/miniupnp/README new file mode 100644 index 0000000..3aa2a36 --- /dev/null +++ b/server/miniupnp/README @@ -0,0 +1,54 @@ +Project: miniupnp +Project web page: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ +Author: Thomas Bernard +Copyright (c) 2005-2008 Thomas Bernard +This software is subject to the conditions detailed in the +LICENCE file provided within this distribution. + +For the comfort of Win32 users, bsdqueue.h is included in the distribution. +Its licence is included in the header of the file. +bsdqueue.h is a copy of the sys/queue.h of an OpenBSD system. + +* miniupnp Client * + +To compile, simply run 'gmake' (could be 'make'). +Under win32, to compile with MinGW, type "mingw32make.bat". +The compilation is known to work under linux, FreeBSD, +OpenBSD, MacOS X and cygwin. +To install the library and headers on the system use : +> su +> make install +> exit + +alternatively, to install in a specific location, use : +> INSTALLPREFIX=/usr/local make install + +upnpc.c is a sample client using the libminiupnpc. +To use the libminiupnpc in your application, link it with +libminiupnpc.a and use the following functions found in miniupnpc.h, +upnpcommands.h and miniwget.h : +- upnpDiscover() +- miniwget() +- parserootdesc() +- GetUPNPUrls() +- UPNP_* (calling UPNP methods) + +Note : use #include <miniupnpc/miniupnpc.h> etc... for the includes +and -lminiupnpc for the link + +Discovery process is speeded up when MiniSSDPd is running on the machine. + +* Python module * + +you can build a python module with 'make pythonmodule' +and install it with 'make installpythonmodule'. +setup.py (and setupmingw32.py) are included in the distribution. + + +Feel free to contact me if you have any problem : +e-mail : miniupnp@free.fr + +If you are using libminiupnpc in your application, please +send me an email ! + + diff --git a/server/miniupnp/bsdqueue.h b/server/miniupnp/bsdqueue.h new file mode 100644 index 0000000..1fe0599 --- /dev/null +++ b/server/miniupnp/bsdqueue.h @@ -0,0 +1,531 @@ +/* $OpenBSD: queue.h,v 1.31 2005/11/25 08:06:25 otto Exp $ */ +/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ + +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)queue.h 8.5 (Berkeley) 8/20/94 + */ + +#ifndef _SYS_QUEUE_H_ +#define _SYS_QUEUE_H_ + +/* + * This file defines five types of data structures: singly-linked lists, + * lists, simple queues, tail queues, and circular queues. + * + * + * A singly-linked list is headed by a single forward pointer. The elements + * are singly linked for minimum space and pointer manipulation overhead at + * the expense of O(n) removal for arbitrary elements. New elements can be + * added to the list after an existing element or at the head of the list. + * Elements being removed from the head of the list should use the explicit + * macro for this purpose for optimum efficiency. A singly-linked list may + * only be traversed in the forward direction. Singly-linked lists are ideal + * for applications with large datasets and few or no removals or for + * implementing a LIFO queue. + * + * A list is headed by a single forward pointer (or an array of forward + * pointers for a hash table header). The elements are doubly linked + * so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before + * or after an existing element or at the head of the list. A list + * may only be traversed in the forward direction. + * + * A simple queue is headed by a pair of pointers, one the head of the + * list and the other to the tail of the list. The elements are singly + * linked to save space, so elements can only be removed from the + * head of the list. New elements can be added to the list before or after + * an existing element, at the head of the list, or at the end of the + * list. A simple queue may only be traversed in the forward direction. + * + * A tail queue is headed by a pair of pointers, one to the head of the + * list and the other to the tail of the list. The elements are doubly + * linked so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before or + * after an existing element, at the head of the list, or at the end of + * the list. A tail queue may be traversed in either direction. + * + * A circle queue is headed by a pair of pointers, one to the head of the + * list and the other to the tail of the list. The elements are doubly + * linked so that an arbitrary element can be removed without a need to + * traverse the list. New elements can be added to the list before or after + * an existing element, at the head of the list, or at the end of the list. + * A circle queue may be traversed in either direction, but has a more + * complex end of list detection. + * + * For details on the use of these macros, see the queue(3) manual page. + */ + +#ifdef QUEUE_MACRO_DEBUG +#define _Q_INVALIDATE(a) (a) = ((void *)-1) +#else +#define _Q_INVALIDATE(a) +#endif + +/* + * Singly-linked List definitions. + */ +#define SLIST_HEAD(name, type) \ +struct name { \ + struct type *slh_first; /* first element */ \ +} + +#define SLIST_HEAD_INITIALIZER(head) \ + { NULL } + +#ifdef SLIST_ENTRY +#undef SLIST_ENTRY +#endif + +#define SLIST_ENTRY(type) \ +struct { \ + struct type *sle_next; /* next element */ \ +} + +/* + * Singly-linked List access methods. + */ +#define SLIST_FIRST(head) ((head)->slh_first) +#define SLIST_END(head) NULL +#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) +#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) + +#define SLIST_FOREACH(var, head, field) \ + for((var) = SLIST_FIRST(head); \ + (var) != SLIST_END(head); \ + (var) = SLIST_NEXT(var, field)) + +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ + for ((varp) = &SLIST_FIRST((head)); \ + ((var) = *(varp)) != SLIST_END(head); \ + (varp) = &SLIST_NEXT((var), field)) + +/* + * Singly-linked List functions. + */ +#define SLIST_INIT(head) { \ + SLIST_FIRST(head) = SLIST_END(head); \ +} + +#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ + (elm)->field.sle_next = (slistelm)->field.sle_next; \ + (slistelm)->field.sle_next = (elm); \ +} while (0) + +#define SLIST_INSERT_HEAD(head, elm, field) do { \ + (elm)->field.sle_next = (head)->slh_first; \ + (head)->slh_first = (elm); \ +} while (0) + +#define SLIST_REMOVE_NEXT(head, elm, field) do { \ + (elm)->field.sle_next = (elm)->field.sle_next->field.sle_next; \ +} while (0) + +#define SLIST_REMOVE_HEAD(head, field) do { \ + (head)->slh_first = (head)->slh_first->field.sle_next; \ +} while (0) + +#define SLIST_REMOVE(head, elm, type, field) do { \ + if ((head)->slh_first == (elm)) { \ + SLIST_REMOVE_HEAD((head), field); \ + } else { \ + struct type *curelm = (head)->slh_first; \ + \ + while (curelm->field.sle_next != (elm)) \ + curelm = curelm->field.sle_next; \ + curelm->field.sle_next = \ + curelm->field.sle_next->field.sle_next; \ + _Q_INVALIDATE((elm)->field.sle_next); \ + } \ +} while (0) + +/* + * List definitions. + */ +#define LIST_HEAD(name, type) \ +struct name { \ + struct type *lh_first; /* first element */ \ +} + +#define LIST_HEAD_INITIALIZER(head) \ + { NULL } + +#define LIST_ENTRY(type) \ +struct { \ + struct type *le_next; /* next element */ \ + struct type **le_prev; /* address of previous next element */ \ +} + +/* + * List access methods + */ +#define LIST_FIRST(head) ((head)->lh_first) +#define LIST_END(head) NULL +#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) +#define LIST_NEXT(elm, field) ((elm)->field.le_next) + +#define LIST_FOREACH(var, head, field) \ + for((var) = LIST_FIRST(head); \ + (var)!= LIST_END(head); \ + (var) = LIST_NEXT(var, field)) + +/* + * List functions. + */ +#define LIST_INIT(head) do { \ + LIST_FIRST(head) = LIST_END(head); \ +} while (0) + +#define LIST_INSERT_AFTER(listelm, elm, field) do { \ + if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ + (listelm)->field.le_next->field.le_prev = \ + &(elm)->field.le_next; \ + (listelm)->field.le_next = (elm); \ + (elm)->field.le_prev = &(listelm)->field.le_next; \ +} while (0) + +#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ + (elm)->field.le_prev = (listelm)->field.le_prev; \ + (elm)->field.le_next = (listelm); \ + *(listelm)->field.le_prev = (elm); \ + (listelm)->field.le_prev = &(elm)->field.le_next; \ +} while (0) + +#define LIST_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.le_next = (head)->lh_first) != NULL) \ + (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ + (head)->lh_first = (elm); \ + (elm)->field.le_prev = &(head)->lh_first; \ +} while (0) + +#define LIST_REMOVE(elm, field) do { \ + if ((elm)->field.le_next != NULL) \ + (elm)->field.le_next->field.le_prev = \ + (elm)->field.le_prev; \ + *(elm)->field.le_prev = (elm)->field.le_next; \ + _Q_INVALIDATE((elm)->field.le_prev); \ + _Q_INVALIDATE((elm)->field.le_next); \ +} while (0) + +#define LIST_REPLACE(elm, elm2, field) do { \ + if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \ + (elm2)->field.le_next->field.le_prev = \ + &(elm2)->field.le_next; \ + (elm2)->field.le_prev = (elm)->field.le_prev; \ + *(elm2)->field.le_prev = (elm2); \ + _Q_INVALIDATE((elm)->field.le_prev); \ + _Q_INVALIDATE((elm)->field.le_next); \ +} while (0) + +/* + * Simple queue definitions. + */ +#define SIMPLEQ_HEAD(name, type) \ +struct name { \ + struct type *sqh_first; /* first element */ \ + struct type **sqh_last; /* addr of last next element */ \ +} + +#define SIMPLEQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).sqh_first } + +#define SIMPLEQ_ENTRY(type) \ +struct { \ + struct type *sqe_next; /* next element */ \ +} + +/* + * Simple queue access methods. + */ +#define SIMPLEQ_FIRST(head) ((head)->sqh_first) +#define SIMPLEQ_END(head) NULL +#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) +#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) + +#define SIMPLEQ_FOREACH(var, head, field) \ + for((var) = SIMPLEQ_FIRST(head); \ + (var) != SIMPLEQ_END(head); \ + (var) = SIMPLEQ_NEXT(var, field)) + +/* + * Simple queue functions. + */ +#define SIMPLEQ_INIT(head) do { \ + (head)->sqh_first = NULL; \ + (head)->sqh_last = &(head)->sqh_first; \ +} while (0) + +#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ + (head)->sqh_last = &(elm)->field.sqe_next; \ + (head)->sqh_first = (elm); \ +} while (0) + +#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.sqe_next = NULL; \ + *(head)->sqh_last = (elm); \ + (head)->sqh_last = &(elm)->field.sqe_next; \ +} while (0) + +#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ + (head)->sqh_last = &(elm)->field.sqe_next; \ + (listelm)->field.sqe_next = (elm); \ +} while (0) + +#define SIMPLEQ_REMOVE_HEAD(head, field) do { \ + if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ + (head)->sqh_last = &(head)->sqh_first; \ +} while (0) + +/* + * Tail queue definitions. + */ +#define TAILQ_HEAD(name, type) \ +struct name { \ + struct type *tqh_first; /* first element */ \ + struct type **tqh_last; /* addr of last next element */ \ +} + +#define TAILQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).tqh_first } + +#define TAILQ_ENTRY(type) \ +struct { \ + struct type *tqe_next; /* next element */ \ + struct type **tqe_prev; /* address of previous next element */ \ +} + +/* + * tail queue access methods + */ +#define TAILQ_FIRST(head) ((head)->tqh_first) +#define TAILQ_END(head) NULL +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#define TAILQ_LAST(head, headname) \ + (*(((struct headname *)((head)->tqh_last))->tqh_last)) +/* XXX */ +#define TAILQ_PREV(elm, headname, field) \ + (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) +#define TAILQ_EMPTY(head) \ + (TAILQ_FIRST(head) == TAILQ_END(head)) + +#define TAILQ_FOREACH(var, head, field) \ + for((var) = TAILQ_FIRST(head); \ + (var) != TAILQ_END(head); \ + (var) = TAILQ_NEXT(var, field)) + +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ + for((var) = TAILQ_LAST(head, headname); \ + (var) != TAILQ_END(head); \ + (var) = TAILQ_PREV(var, headname, field)) + +/* + * Tail queue functions. + */ +#define TAILQ_INIT(head) do { \ + (head)->tqh_first = NULL; \ + (head)->tqh_last = &(head)->tqh_first; \ +} while (0) + +#define TAILQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ + (head)->tqh_first->field.tqe_prev = \ + &(elm)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm)->field.tqe_next; \ + (head)->tqh_first = (elm); \ + (elm)->field.tqe_prev = &(head)->tqh_first; \ +} while (0) + +#define TAILQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.tqe_next = NULL; \ + (elm)->field.tqe_prev = (head)->tqh_last; \ + *(head)->tqh_last = (elm); \ + (head)->tqh_last = &(elm)->field.tqe_next; \ +} while (0) + +#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ + (elm)->field.tqe_next->field.tqe_prev = \ + &(elm)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm)->field.tqe_next; \ + (listelm)->field.tqe_next = (elm); \ + (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ +} while (0) + +#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ + (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ + (elm)->field.tqe_next = (listelm); \ + *(listelm)->field.tqe_prev = (elm); \ + (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ +} while (0) + +#define TAILQ_REMOVE(head, elm, field) do { \ + if (((elm)->field.tqe_next) != NULL) \ + (elm)->field.tqe_next->field.tqe_prev = \ + (elm)->field.tqe_prev; \ + else \ + (head)->tqh_last = (elm)->field.tqe_prev; \ + *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ + _Q_INVALIDATE((elm)->field.tqe_prev); \ + _Q_INVALIDATE((elm)->field.tqe_next); \ +} while (0) + +#define TAILQ_REPLACE(head, elm, elm2, field) do { \ + if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \ + (elm2)->field.tqe_next->field.tqe_prev = \ + &(elm2)->field.tqe_next; \ + else \ + (head)->tqh_last = &(elm2)->field.tqe_next; \ + (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \ + *(elm2)->field.tqe_prev = (elm2); \ + _Q_INVALIDATE((elm)->field.tqe_prev); \ + _Q_INVALIDATE((elm)->field.tqe_next); \ +} while (0) + +/* + * Circular queue definitions. + */ +#define CIRCLEQ_HEAD(name, type) \ +struct name { \ + struct type *cqh_first; /* first element */ \ + struct type *cqh_last; /* last element */ \ +} + +#define CIRCLEQ_HEAD_INITIALIZER(head) \ + { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } + +#define CIRCLEQ_ENTRY(type) \ +struct { \ + struct type *cqe_next; /* next element */ \ + struct type *cqe_prev; /* previous element */ \ +} + +/* + * Circular queue access methods + */ +#define CIRCLEQ_FIRST(head) ((head)->cqh_first) +#define CIRCLEQ_LAST(head) ((head)->cqh_last) +#define CIRCLEQ_END(head) ((void *)(head)) +#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) +#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) +#define CIRCLEQ_EMPTY(head) \ + (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) + +#define CIRCLEQ_FOREACH(var, head, field) \ + for((var) = CIRCLEQ_FIRST(head); \ + (var) != CIRCLEQ_END(head); \ + (var) = CIRCLEQ_NEXT(var, field)) + +#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ + for((var) = CIRCLEQ_LAST(head); \ + (var) != CIRCLEQ_END(head); \ + (var) = CIRCLEQ_PREV(var, field)) + +/* + * Circular queue functions. + */ +#define CIRCLEQ_INIT(head) do { \ + (head)->cqh_first = CIRCLEQ_END(head); \ + (head)->cqh_last = CIRCLEQ_END(head); \ +} while (0) + +#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ + (elm)->field.cqe_next = (listelm)->field.cqe_next; \ + (elm)->field.cqe_prev = (listelm); \ + if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \ + (head)->cqh_last = (elm); \ + else \ + (listelm)->field.cqe_next->field.cqe_prev = (elm); \ + (listelm)->field.cqe_next = (elm); \ +} while (0) + +#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ + (elm)->field.cqe_next = (listelm); \ + (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ + if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \ + (head)->cqh_first = (elm); \ + else \ + (listelm)->field.cqe_prev->field.cqe_next = (elm); \ + (listelm)->field.cqe_prev = (elm); \ +} while (0) + +#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ + (elm)->field.cqe_next = (head)->cqh_first; \ + (elm)->field.cqe_prev = CIRCLEQ_END(head); \ + if ((head)->cqh_last == CIRCLEQ_END(head)) \ + (head)->cqh_last = (elm); \ + else \ + (head)->cqh_first->field.cqe_prev = (elm); \ + (head)->cqh_first = (elm); \ +} while (0) + +#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.cqe_next = CIRCLEQ_END(head); \ + (elm)->field.cqe_prev = (head)->cqh_last; \ + if ((head)->cqh_first == CIRCLEQ_END(head)) \ + (head)->cqh_first = (elm); \ + else \ + (head)->cqh_last->field.cqe_next = (elm); \ + (head)->cqh_last = (elm); \ +} while (0) + +#define CIRCLEQ_REMOVE(head, elm, field) do { \ + if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \ + (head)->cqh_last = (elm)->field.cqe_prev; \ + else \ + (elm)->field.cqe_next->field.cqe_prev = \ + (elm)->field.cqe_prev; \ + if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \ + (head)->cqh_first = (elm)->field.cqe_next; \ + else \ + (elm)->field.cqe_prev->field.cqe_next = \ + (elm)->field.cqe_next; \ + _Q_INVALIDATE((elm)->field.cqe_prev); \ + _Q_INVALIDATE((elm)->field.cqe_next); \ +} while (0) + +#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ + if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \ + CIRCLEQ_END(head)) \ + (head).cqh_last = (elm2); \ + else \ + (elm2)->field.cqe_next->field.cqe_prev = (elm2); \ + if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \ + CIRCLEQ_END(head)) \ + (head).cqh_first = (elm2); \ + else \ + (elm2)->field.cqe_prev->field.cqe_next = (elm2); \ + _Q_INVALIDATE((elm)->field.cqe_prev); \ + _Q_INVALIDATE((elm)->field.cqe_next); \ +} while (0) + +#endif /* !_SYS_QUEUE_H_ */ diff --git a/server/miniupnp/codelength.h b/server/miniupnp/codelength.h new file mode 100644 index 0000000..f11e5e9 --- /dev/null +++ b/server/miniupnp/codelength.h @@ -0,0 +1,24 @@ +/* $Id: codelength.h,v 1.1 2008/10/06 22:04:06 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas BERNARD + * copyright (c) 2005-2008 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#ifndef __CODELENGTH_H__ +#define __CODELENGTH_H__ + +/* Encode length by using 7bit per Byte : + * Most significant bit of each byte specifies that the + * following byte is part of the code */ +#define DECODELENGTH(n, p) n = 0; \ + do { n = (n << 7) | (*p & 0x7f); } \ + while(*(p++)&0x80); + +#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \ + if(n>=2097152) *(p++) = (n >> 21) | 0x80; \ + if(n>=16384) *(p++) = (n >> 14) | 0x80; \ + if(n>=128) *(p++) = (n >> 7) | 0x80; \ + *(p++) = n & 0x7f; + +#endif + diff --git a/server/miniupnp/declspec.h b/server/miniupnp/declspec.h new file mode 100644 index 0000000..b804247 --- /dev/null +++ b/server/miniupnp/declspec.h @@ -0,0 +1,15 @@ +#ifndef __DECLSPEC_H__ +#define __DECLSPEC_H__ + +#if defined(WIN32) && !defined(STATICLIB) + #ifdef MINIUPNP_EXPORTS + #define LIBSPEC __declspec(dllexport) + #else + #define LIBSPEC __declspec(dllimport) + #endif +#else + #define LIBSPEC +#endif + +#endif + diff --git a/server/miniupnp/igd_desc_parse.c b/server/miniupnp/igd_desc_parse.c new file mode 100644 index 0000000..e839ff4 --- /dev/null +++ b/server/miniupnp/igd_desc_parse.c @@ -0,0 +1,113 @@ +/* $Id: igd_desc_parse.c,v 1.8 2008/04/23 11:51:06 nanard Exp $ */ +/* Project : miniupnp + * http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005-2008 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#include "igd_desc_parse.h" +#include <stdio.h> +#include <string.h> + +/* TODO : rewrite this code so it correctly handle descriptions with + * both WANIPConnection and/or WANPPPConnection */ + +/* Start element handler : + * update nesting level counter and copy element name */ +void IGDstartelt(void * d, const char * name, int l) +{ + struct IGDdatas * datas = (struct IGDdatas *)d; + memcpy( datas->cureltname, name, l); + datas->cureltname[l] = '\0'; + datas->level++; + if( (l==7) && !memcmp(name, "service", l) ) { + datas->controlurl_tmp[0] = '\0'; + datas->eventsuburl_tmp[0] = '\0'; + datas->scpdurl_tmp[0] = '\0'; + datas->servicetype_tmp[0] = '\0'; + } +} + +/* End element handler : + * update nesting level counter and update parser state if + * service element is parsed */ +void IGDendelt(void * d, const char * name, int l) +{ + struct IGDdatas * datas = (struct IGDdatas *)d; + datas->level--; + /*printf("endelt %2d %.*s\n", datas->level, l, name);*/ + if( (l==7) && !memcmp(name, "service", l) ) + { + /* + if( datas->state < 1 + && !strcmp(datas->servicetype, + // "urn:schemas-upnp-org:service:WANIPConnection:1") ) + "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1")) + datas->state ++; + */ + if(0==strcmp(datas->servicetype_tmp, + "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1")) { + memcpy(datas->controlurl_CIF, datas->controlurl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->eventsuburl_CIF, datas->eventsuburl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->scpdurl_CIF, datas->scpdurl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->servicetype_CIF, datas->servicetype_tmp, MINIUPNPC_URL_MAXSIZE); + } else if(0==strcmp(datas->servicetype_tmp, + "urn:schemas-upnp-org:service:WANIPConnection:1") + || 0==strcmp(datas->servicetype_tmp, + "urn:schemas-upnp-org:service:WANPPPConnection:1") ) { + memcpy(datas->controlurl, datas->controlurl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->eventsuburl, datas->eventsuburl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->scpdurl, datas->scpdurl_tmp, MINIUPNPC_URL_MAXSIZE); + memcpy(datas->servicetype, datas->servicetype_tmp, MINIUPNPC_URL_MAXSIZE); + } + } +} + +/* Data handler : + * copy data depending on the current element name and state */ +void IGDdata(void * d, const char * data, int l) +{ + struct IGDdatas * datas = (struct IGDdatas *)d; + char * dstmember = 0; + /*printf("%2d %s : %.*s\n", + datas->level, datas->cureltname, l, data); */ + if( !strcmp(datas->cureltname, "URLBase") ) + dstmember = datas->urlbase; + else if( !strcmp(datas->cureltname, "serviceType") ) + dstmember = datas->servicetype_tmp; + else if( !strcmp(datas->cureltname, "controlURL") ) + dstmember = datas->controlurl_tmp; + else if( !strcmp(datas->cureltname, "eventSubURL") ) + dstmember = datas->eventsuburl_tmp; + else if( !strcmp(datas->cureltname, "SCPDURL") ) + dstmember = datas->scpdurl_tmp; +/* else if( !strcmp(datas->cureltname, "deviceType") ) + dstmember = datas->devicetype_tmp;*/ + if(dstmember) + { + if(l>=MINIUPNPC_URL_MAXSIZE) + l = MINIUPNPC_URL_MAXSIZE-1; + memcpy(dstmember, data, l); + dstmember[l] = '\0'; + } +} + +void printIGD(struct IGDdatas * d) +{ + printf("urlbase = %s\n", d->urlbase); + printf("WAN Device (Common interface config) :\n"); + /*printf(" deviceType = %s\n", d->devicetype_CIF);*/ + printf(" serviceType = %s\n", d->servicetype_CIF); + printf(" controlURL = %s\n", d->controlurl_CIF); + printf(" eventSubURL = %s\n", d->eventsuburl_CIF); + printf(" SCPDURL = %s\n", d->scpdurl_CIF); + printf("WAN Connection Device (IP or PPP Connection):\n"); + /*printf(" deviceType = %s\n", d->devicetype);*/ + printf(" servicetype = %s\n", d->servicetype); + printf(" controlURL = %s\n", d->controlurl); + printf(" eventSubURL = %s\n", d->eventsuburl); + printf(" SCPDURL = %s\n", d->scpdurl); +} + + diff --git a/server/miniupnp/igd_desc_parse.h b/server/miniupnp/igd_desc_parse.h new file mode 100644 index 0000000..aabcb08 --- /dev/null +++ b/server/miniupnp/igd_desc_parse.h @@ -0,0 +1,47 @@ +/* $Id: igd_desc_parse.h,v 1.6 2008/04/23 11:51:07 nanard Exp $ */ +/* Project : miniupnp + * http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005-2008 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef __IGD_DESC_PARSE_H__ +#define __IGD_DESC_PARSE_H__ + +/* Structure to store the result of the parsing of UPnP + * descriptions of Internet Gateway Devices */ +#define MINIUPNPC_URL_MAXSIZE (128) +struct IGDdatas { + char cureltname[MINIUPNPC_URL_MAXSIZE]; + char urlbase[MINIUPNPC_URL_MAXSIZE]; + int level; + /*int state;*/ + /* "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" */ + char controlurl_CIF[MINIUPNPC_URL_MAXSIZE]; + char eventsuburl_CIF[MINIUPNPC_URL_MAXSIZE]; + char scpdurl_CIF[MINIUPNPC_URL_MAXSIZE]; + char servicetype_CIF[MINIUPNPC_URL_MAXSIZE]; + /*char devicetype_CIF[MINIUPNPC_URL_MAXSIZE];*/ + /* "urn:schemas-upnp-org:service:WANIPConnection:1" + * "urn:schemas-upnp-org:service:WANPPPConnection:1" */ + char controlurl[MINIUPNPC_URL_MAXSIZE]; + char eventsuburl[MINIUPNPC_URL_MAXSIZE]; + char scpdurl[MINIUPNPC_URL_MAXSIZE]; + char servicetype[MINIUPNPC_URL_MAXSIZE]; + /*char devicetype[MINIUPNPC_URL_MAXSIZE];*/ + /* tmp */ + char controlurl_tmp[MINIUPNPC_URL_MAXSIZE]; + char eventsuburl_tmp[MINIUPNPC_URL_MAXSIZE]; + char scpdurl_tmp[MINIUPNPC_URL_MAXSIZE]; + char servicetype_tmp[MINIUPNPC_URL_MAXSIZE]; + /*char devicetype_tmp[MINIUPNPC_URL_MAXSIZE];*/ +}; + +void IGDstartelt(void *, const char *, int); +void IGDendelt(void *, const char *, int); +void IGDdata(void *, const char *, int); +void printIGD(struct IGDdatas *); + +#endif + diff --git a/server/miniupnp/minisoap.c b/server/miniupnp/minisoap.c new file mode 100644 index 0000000..502c6c1 --- /dev/null +++ b/server/miniupnp/minisoap.c @@ -0,0 +1,112 @@ +/* $Id: minisoap.c,v 1.15 2008/02/17 17:57:07 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * + * Minimal SOAP implementation for UPnP protocol. + */ +#include <stdio.h> +#include <string.h> +#ifdef WIN32 +#include <io.h> +#include <winsock2.h> +#define snprintf _snprintf +#else +#include <unistd.h> +#include <sys/types.h> +#include <sys/socket.h> +#endif +#include "minisoap.h" + +/* only for malloc */ +#include <stdlib.h> + +#ifdef WIN32 +#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); +#else +#define PRINT_SOCKET_ERROR(x) perror(x) +#endif + +/* httpWrite sends the headers and the body to the socket + * and returns the number of bytes sent */ +static int +httpWrite(int fd, const char * body, int bodysize, + const char * headers, int headerssize) +{ + int n = 0; + /*n = write(fd, headers, headerssize);*/ + /*if(bodysize>0) + n += write(fd, body, bodysize);*/ + /* Note : my old linksys router only took into account + * soap request that are sent into only one packet */ + char * p; + /* TODO: AVOID MALLOC */ + p = malloc(headerssize+bodysize); + if(!p) + return 0; + memcpy(p, headers, headerssize); + memcpy(p+headerssize, body, bodysize); + /*n = write(fd, p, headerssize+bodysize);*/ + n = send(fd, p, headerssize+bodysize, 0); + if(n<0) { + PRINT_SOCKET_ERROR("send"); + } + /* disable send on the socket */ + /* draytek routers dont seems to like that... */ +#if 0 +#ifdef WIN32 + if(shutdown(fd, SD_SEND)<0) { +#else + if(shutdown(fd, SHUT_WR)<0) { /*SD_SEND*/ +#endif + PRINT_SOCKET_ERROR("shutdown"); + } +#endif + free(p); + return n; +} + +/* self explanatory */ +int soapPostSubmit(int fd, + const char * url, + const char * host, + unsigned short port, + const char * action, + const char * body) +{ + int bodysize; + char headerbuf[512]; + int headerssize; + char portstr[8]; + bodysize = (int)strlen(body); + /* We are not using keep-alive HTTP connections. + * HTTP/1.1 needs the header Connection: close to do that. + * This is the default with HTTP/1.0 */ + /* Connection: Close is normally there only in HTTP/1.1 but who knows */ + portstr[0] = '\0'; + if(port != 80) + snprintf(portstr, sizeof(portstr), ":%hu", port); + headerssize = snprintf(headerbuf, sizeof(headerbuf), + "POST %s HTTP/1.1\r\n" +/* "POST %s HTTP/1.0\r\n"*/ + "Host: %s%s\r\n" + "User-Agent: POSIX, UPnP/1.0, miniUPnPc/1.0\r\n" + "Content-Length: %d\r\n" + "Content-Type: text/xml\r\n" + "SOAPAction: \"%s\"\r\n" + "Connection: Close\r\n" + "Cache-Control: no-cache\r\n" /* ??? */ + "Pragma: no-cache\r\n" + "\r\n", + url, host, portstr, bodysize, action); +#ifdef DEBUG + printf("SOAP request : headersize=%d bodysize=%d\n", + headerssize, bodysize); + /*printf("%s", headerbuf);*/ +#endif + return httpWrite(fd, body, bodysize, headerbuf, headerssize); +} + + diff --git a/server/miniupnp/minisoap.h b/server/miniupnp/minisoap.h new file mode 100644 index 0000000..9fa297f --- /dev/null +++ b/server/miniupnp/minisoap.h @@ -0,0 +1,15 @@ +/* $Id: minisoap.h,v 1.3 2006/11/19 22:32:34 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. */ +#ifndef __MINISOAP_H__ +#define __MINISOAP_H__ + +/*int httpWrite(int, const char *, int, const char *);*/ +int soapPostSubmit(int, const char *, const char *, unsigned short, + const char *, const char *); + +#endif + diff --git a/server/miniupnp/minissdpc.c b/server/miniupnp/minissdpc.c new file mode 100644 index 0000000..d37599f --- /dev/null +++ b/server/miniupnp/minissdpc.c @@ -0,0 +1,103 @@ +/* $Id: minissdpc.c,v 1.6 2008/10/06 23:08:39 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas BERNARD + * copyright (c) 2005-2008 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +/*#include <syslog.h>*/ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/un.h> + +#include "minissdpc.h" +#include "miniupnpc.h" + +#include "codelength.h" + +struct UPNPDev * +getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath) +{ + struct UPNPDev * tmp; + struct UPNPDev * devlist = NULL; + unsigned char buffer[2048]; + ssize_t n; + unsigned char * p; + unsigned char * url; + unsigned int i; + unsigned int urlsize, stsize, usnsize, l; + int s; + struct sockaddr_un addr; + + s = socket(AF_UNIX, SOCK_STREAM, 0); + if(s < 0) + { + /*syslog(LOG_ERR, "socket(unix): %m");*/ + perror("socket(unix)"); + return NULL; + } + addr.sun_family = AF_UNIX; + strncpy(addr.sun_path, socketpath, sizeof(addr.sun_path)); + if(connect(s, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0) + { + /*syslog(LOG_WARNING, "connect(\"%s\"): %m", socketpath);*/ + close(s); + return NULL; + } + stsize = strlen(devtype); + buffer[0] = 1; /* request type 1 : request devices/services by type */ + p = buffer + 1; + l = stsize; CODELENGTH(l, p); + memcpy(p, devtype, stsize); + p += stsize; + if(write(s, buffer, p - buffer) < 0) + { + /*syslog(LOG_ERR, "write(): %m");*/ + perror("minissdpc.c: write()"); + close(s); + return NULL; + } + n = read(s, buffer, sizeof(buffer)); + if(n<=0) + { + perror("minissdpc.c: read()"); + close(s); + return NULL; + } + p = buffer + 1; + for(i = 0; i < buffer[0]; i++) + { + if(p+2>=buffer+sizeof(buffer)) + break; + DECODELENGTH(urlsize, p); + if(p+urlsize+2>=buffer+sizeof(buffer)) + break; + url = p; + p += urlsize; + DECODELENGTH(stsize, p); + if(p+stsize+2>=buffer+sizeof(buffer)) + break; + tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize); + tmp->pNext = devlist; + tmp->descURL = tmp->buffer; + tmp->st = tmp->buffer + 1 + urlsize; + memcpy(tmp->buffer, url, urlsize); + tmp->buffer[urlsize] = '\0'; + memcpy(tmp->buffer + urlsize + 1, p, stsize); + p += stsize; + tmp->buffer[urlsize+1+stsize] = '\0'; + devlist = tmp; + /* added for compatibility with recent versions of MiniSSDPd + * >= 2007/12/19 */ + DECODELENGTH(usnsize, p); + p += usnsize; + if(p>buffer + sizeof(buffer)) + break; + } + close(s); + return devlist; +} + diff --git a/server/miniupnp/minissdpc.h b/server/miniupnp/minissdpc.h new file mode 100644 index 0000000..25e91ce --- /dev/null +++ b/server/miniupnp/minissdpc.h @@ -0,0 +1,15 @@ +/* $Id: minissdpc.h,v 1.1 2007/08/31 15:15:33 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author: Thomas Bernard + * Copyright (c) 2005-2007 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef __MINISSDPC_H__ +#define __MINISSDPC_H__ + +struct UPNPDev * +getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath); + +#endif + diff --git a/server/miniupnp/miniupnpc.c b/server/miniupnp/miniupnpc.c new file mode 100644 index 0000000..f9d620e --- /dev/null +++ b/server/miniupnp/miniupnpc.c @@ -0,0 +1,739 @@ +/* $Id: miniupnpc.c,v 1.55 2008/09/25 18:02:50 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas BERNARD + * copyright (c) 2005-2007 Thomas Bernard + * This software is subjet to the conditions detailed in the + * provided LICENCE file. */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#ifdef WIN32 +#include <winsock2.h> +#include <Ws2tcpip.h> +#include <io.h> +#define snprintf _snprintf +#define strncasecmp memicmp +#define MAXHOSTNAMELEN 64 +#else +#include <unistd.h> +#include <sys/socket.h> +#include <sys/types.h> +#include <sys/param.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <poll.h> +#include <netdb.h> +#define closesocket close +#endif +#include "miniupnpc.h" +#include "minissdpc.h" +#include "miniwget.h" +#include "minisoap.h" +#include "minixml.h" +#include "upnpcommands.h" + +#ifdef WIN32 +#define PRINT_SOCKET_ERROR(x) printf("Socket error: %s, %d\n", x, WSAGetLastError()); +#else +#define PRINT_SOCKET_ERROR(x) perror(x) +#endif + +#define SOAPPREFIX "s" + +/* root description parsing */ +void parserootdesc(const char * buffer, int bufsize, struct IGDdatas * data) +{ + struct xmlparser parser; + /* xmlparser object */ + parser.xmlstart = buffer; + parser.xmlsize = bufsize; + parser.data = data; + parser.starteltfunc = IGDstartelt; + parser.endeltfunc = IGDendelt; + parser.datafunc = IGDdata; + parser.attfunc = 0; + parsexml(&parser); +#ifndef NDEBUG + printIGD(data); +#endif +} + +/* Content-length: nnn */ +static int getcontentlenfromline(const char * p, int n) +{ + static const char contlenstr[] = "content-length"; + const char * p2 = contlenstr; + int a = 0; + while(*p2) + { + if(n==0) + return -1; + if(*p2 != *p && *p2 != (*p + 32)) + return -1; + p++; p2++; n--; + } + if(n==0) + return -1; + if(*p != ':') + return -1; + p++; n--; + while(*p == ' ') + { + if(n==0) + return -1; + p++; n--; + } + while(*p >= '0' && *p <= '9') + { + if(n==0) + return -1; + a = (a * 10) + (*p - '0'); + p++; n--; + } + return a; +} + +static void +getContentLengthAndHeaderLength(char * p, int n, + int * contentlen, int * headerlen) +{ + char * line; + int linelen; + int r; + line = p; + while(line < p + n) + { + linelen = 0; + while(line[linelen] != '\r' && line[linelen] != '\r') + { + if(line+linelen >= p+n) + return; + linelen++; + } + r = getcontentlenfromline(line, linelen); + if(r>0) + *contentlen = r; + line = line + linelen + 2; + if(line[0] == '\r' && line[1] == '\n') + { + *headerlen = (line - p) + 2; + return; + } + } +} + +/* simpleUPnPcommand : + * not so simple ! + * return values : + * 0 - OK + * -1 - error */ +int simpleUPnPcommand(int s, const char * url, const char * service, + const char * action, struct UPNParg * args, + char * buffer, int * bufsize) +{ + struct sockaddr_in dest; + char hostname[MAXHOSTNAMELEN+1]; + unsigned short port = 0; + char * path; + char soapact[128]; + char soapbody[2048]; + char * buf; + int buffree; + int n; + int contentlen, headerlen; /* for the response */ + snprintf(soapact, sizeof(soapact), "%s#%s", service, action); + if(args==NULL) + { + /*soapbodylen = */snprintf(soapbody, sizeof(soapbody), + "<?xml version=\"1.0\"?>\r\n" + "<" SOAPPREFIX ":Envelope " + "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " + SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "<" SOAPPREFIX ":Body>" + "<m:%s xmlns:m=\"%s\">" + "</m:%s>" + "</" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>" + "\r\n", action, service, action); + } + else + { + char * p; + const char * pe, * pv; + int soapbodylen; + soapbodylen = snprintf(soapbody, sizeof(soapbody), + "<?xml version=\"1.0\"?>\r\n" + "<" SOAPPREFIX ":Envelope " + "xmlns:" SOAPPREFIX "=\"http://schemas.xmlsoap.org/soap/envelope/\" " + SOAPPREFIX ":encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "<" SOAPPREFIX ":Body>" + "<m:%s xmlns:m=\"%s\">", + action, service); + p = soapbody + soapbodylen; + while(args->elt) + { + /* check that we are never overflowing the string... */ + if(soapbody + sizeof(soapbody) <= p + 100) + { + /* we keep a margin of at least 100 bytes */ + *bufsize = 0; + return -1; + } + *(p++) = '<'; + pe = args->elt; + while(*pe) + *(p++) = *(pe++); + *(p++) = '>'; + if((pv = args->val)) + { + while(*pv) + *(p++) = *(pv++); + } + *(p++) = '<'; + *(p++) = '/'; + pe = args->elt; + while(*pe) + *(p++) = *(pe++); + *(p++) = '>'; + args++; + } + *(p++) = '<'; + *(p++) = '/'; + *(p++) = 'm'; + *(p++) = ':'; + pe = action; + while(*pe) + *(p++) = *(pe++); + strncpy(p, "></" SOAPPREFIX ":Body></" SOAPPREFIX ":Envelope>\r\n", + soapbody + sizeof(soapbody) - p); + } + if(!parseURL(url, hostname, &port, &path)) return -1; + if(s<0) + { + s = socket(PF_INET, SOCK_STREAM, 0); + if(s<0) + { + PRINT_SOCKET_ERROR("socket"); + *bufsize = 0; + return -1; + } + dest.sin_family = AF_INET; + dest.sin_port = htons(port); + dest.sin_addr.s_addr = inet_addr(hostname); + if(connect(s, (struct sockaddr *)&dest, sizeof(struct sockaddr))<0) + { + PRINT_SOCKET_ERROR("connect"); + closesocket(s); + *bufsize = 0; + return -1; + } + } + + n = soapPostSubmit(s, path, hostname, port, soapact, soapbody); + if(n<=0) { +#ifdef DEBUG + printf("Error sending SOAP request\n"); +#endif + closesocket(s); + return -1; + } + + contentlen = -1; + headerlen = -1; + buf = buffer; + buffree = *bufsize; + *bufsize = 0; + while ((n = ReceiveData(s, buf, buffree, 5000)) > 0) { + buffree -= n; + buf += n; + *bufsize += n; + getContentLengthAndHeaderLength(buffer, *bufsize, + &contentlen, &headerlen); +#ifdef DEBUG + printf("received n=%dbytes bufsize=%d ContLen=%d HeadLen=%d\n", + n, *bufsize, contentlen, headerlen); +#endif + /* break if we received everything */ + if(contentlen > 0 && headerlen > 0 && *bufsize >= contentlen+headerlen) + break; + } + + closesocket(s); + return 0; +} + +/* parseMSEARCHReply() + * the last 4 arguments are filled during the parsing : + * - location/locationsize : "location:" field of the SSDP reply packet + * - st/stsize : "st:" field of the SSDP reply packet. + * The strings are NOT null terminated */ +static void +parseMSEARCHReply(const char * reply, int size, + const char * * location, int * locationsize, + const char * * st, int * stsize) +{ + int a, b, i; + i = 0; + a = i; /* start of the line */ + b = 0; + while(i<size) + { + switch(reply[i]) + { + case ':': + if(b==0) + { + b = i; /* end of the "header" */ + /*for(j=a; j<b; j++) + { + putchar(reply[j]); + } + */ + } + break; + case '\x0a': + case '\x0d': + if(b!=0) + { + /*for(j=b+1; j<i; j++) + { + putchar(reply[j]); + } + putchar('\n');*/ + do { b++; } while(reply[b]==' '); + if(0==strncasecmp(reply+a, "location", 8)) + { + *location = reply+b; + *locationsize = i-b; + } + else if(0==strncasecmp(reply+a, "st", 2)) + { + *st = reply+b; + *stsize = i-b; + } + b = 0; + } + a = i+1; + break; + default: + break; + } + i++; + } +} + +/* port upnp discover : SSDP protocol */ +#define PORT 1900 +#define XSTR(s) STR(s) +#define STR(s) #s +#define UPNP_MCAST_ADDR "239.255.255.250" + +/* upnpDiscover() : + * return a chained list of all devices found or NULL if + * no devices was found. + * It is up to the caller to free the chained list + * delay is in millisecond (poll) */ +struct UPNPDev * upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int sameport) +{ + struct UPNPDev * tmp; + struct UPNPDev * devlist = 0; + int opt = 1; + static const char MSearchMsgFmt[] = + "M-SEARCH * HTTP/1.1\r\n" + "HOST: " UPNP_MCAST_ADDR ":" XSTR(PORT) "\r\n" + "ST: %s\r\n" + "MAN: \"ssdp:discover\"\r\n" + "MX: 3\r\n" + "\r\n"; + static const char * const deviceList[] = { + "urn:schemas-upnp-org:device:InternetGatewayDevice:1", + "urn:schemas-upnp-org:service:WANIPConnection:1", + "urn:schemas-upnp-org:service:WANPPPConnection:1", + "upnp:rootdevice", + 0 + }; + int deviceIndex = 0; + char bufr[1536]; /* reception and emission buffer */ + int sudp; + int n; + struct sockaddr_in sockudp_r, sockudp_w; + +#ifndef WIN32 + /* first try to get infos from minissdpd ! */ + if(!minissdpdsock) + minissdpdsock = "/var/run/minissdpd.sock"; + while(!devlist && deviceList[deviceIndex]) { + devlist = getDevicesFromMiniSSDPD(deviceList[deviceIndex], + minissdpdsock); + /* We return what we have found if it was not only a rootdevice */ + if(devlist && !strstr(deviceList[deviceIndex], "rootdevice")) + return devlist; + deviceIndex++; + } + deviceIndex = 0; +#endif + /* fallback to direct discovery */ +#ifdef WIN32 + sudp = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); +#else + sudp = socket(PF_INET, SOCK_DGRAM, 0); +#endif + if(sudp < 0) + { + PRINT_SOCKET_ERROR("socket"); + return NULL; + } + /* reception */ + memset(&sockudp_r, 0, sizeof(struct sockaddr_in)); + sockudp_r.sin_family = AF_INET; + if(sameport) + sockudp_r.sin_port = htons(PORT); + sockudp_r.sin_addr.s_addr = INADDR_ANY; + /* emission */ + memset(&sockudp_w, 0, sizeof(struct sockaddr_in)); + sockudp_w.sin_family = AF_INET; + sockudp_w.sin_port = htons(PORT); + sockudp_w.sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR); + +#ifdef WIN32 + if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, (const char *)&opt, sizeof (opt)) < 0) +#else + if (setsockopt(sudp, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof (opt)) < 0) +#endif + { + PRINT_SOCKET_ERROR("setsockopt"); + return NULL; + } + + if(multicastif) + { + struct in_addr mc_if; + mc_if.s_addr = inet_addr(multicastif); + sockudp_r.sin_addr.s_addr = mc_if.s_addr; + if(setsockopt(sudp, IPPROTO_IP, IP_MULTICAST_IF, (const char *)&mc_if, sizeof(mc_if)) < 0) + { + PRINT_SOCKET_ERROR("setsockopt"); + } + } + + /* Avant d'envoyer le paquet on bind pour recevoir la reponse */ + if (bind(sudp, (struct sockaddr *)&sockudp_r, sizeof(struct sockaddr_in)) != 0) + { + PRINT_SOCKET_ERROR("bind"); + closesocket(sudp); + return NULL; + } + + /* receiving SSDP response packet */ + for(n = 0;;) + { + if(n == 0) + { + /* sending the SSDP M-SEARCH packet */ + n = snprintf(bufr, sizeof(bufr), + MSearchMsgFmt, deviceList[deviceIndex++]); + /*printf("Sending %s", bufr);*/ + n = sendto(sudp, bufr, n, 0, + (struct sockaddr *)&sockudp_w, sizeof(struct sockaddr_in)); + if (n < 0) { + PRINT_SOCKET_ERROR("sendto"); + closesocket(sudp); + return devlist; + } + } + /* Waiting for SSDP REPLY packet to M-SEARCH */ + n = ReceiveData(sudp, bufr, sizeof(bufr), delay); + if (n < 0) { + /* error */ + closesocket(sudp); + return devlist; + } else if (n == 0) { + /* no data or Time Out */ + if (devlist || (deviceList[deviceIndex] == 0)) { + /* no more device type to look for... */ + closesocket(sudp); + return devlist; + } + } else { + const char * descURL=NULL; + int urlsize=0; + const char * st=NULL; + int stsize=0; + /*printf("%d byte(s) :\n%s\n", n, bufr);*/ /* affichage du message */ + parseMSEARCHReply(bufr, n, &descURL, &urlsize, &st, &stsize); + if(st&&descURL) + { + /*printf("M-SEARCH Reply:\nST: %.*s\nLocation: %.*s\n", + stsize, st, urlsize, descURL); */ + tmp = (struct UPNPDev *)malloc(sizeof(struct UPNPDev)+urlsize+stsize); + tmp->pNext = devlist; + tmp->descURL = tmp->buffer; + tmp->st = tmp->buffer + 1 + urlsize; + memcpy(tmp->buffer, descURL, urlsize); + tmp->buffer[urlsize] = '\0'; + memcpy(tmp->buffer + urlsize + 1, st, stsize); + tmp->buffer[urlsize+1+stsize] = '\0'; + devlist = tmp; + } + } + } +} + +/* freeUPNPDevlist() should be used to + * free the chained list returned by upnpDiscover() */ +void freeUPNPDevlist(struct UPNPDev * devlist) +{ + struct UPNPDev * next; + while(devlist) + { + next = devlist->pNext; + free(devlist); + devlist = next; + } +} + +static void +url_cpy_or_cat(char * dst, const char * src, int n) +{ + if( (src[0] == 'h') + &&(src[1] == 't') + &&(src[2] == 't') + &&(src[3] == 'p') + &&(src[4] == ':') + &&(src[5] == '/') + &&(src[6] == '/')) + { + strncpy(dst, src, n); + } + else + { + int l = strlen(dst); + if(src[0] != '/') + dst[l++] = '/'; + if(l<=n) + strncpy(dst + l, src, n - l); + } +} + +/* Prepare the Urls for usage... + */ +void GetUPNPUrls(struct UPNPUrls * urls, struct IGDdatas * data, + const char * descURL) +{ + char * p; + int n1, n2, n3; + n1 = strlen(data->urlbase); + if(n1==0) + n1 = strlen(descURL); + n1 += 2; /* 1 byte more for Null terminator, 1 byte for '/' if needed */ + n2 = n1; n3 = n1; + n1 += strlen(data->scpdurl); + n2 += strlen(data->controlurl); + n3 += strlen(data->controlurl_CIF); + + urls->ipcondescURL = (char *)malloc(n1); + urls->controlURL = (char *)malloc(n2); + urls->controlURL_CIF = (char *)malloc(n3); + /* maintenant on chope la desc du WANIPConnection */ + if(data->urlbase[0] != '\0') + strncpy(urls->ipcondescURL, data->urlbase, n1); + else + strncpy(urls->ipcondescURL, descURL, n1); + p = strchr(urls->ipcondescURL+7, '/'); + if(p) p[0] = '\0'; + strncpy(urls->controlURL, urls->ipcondescURL, n2); + strncpy(urls->controlURL_CIF, urls->ipcondescURL, n3); + + url_cpy_or_cat(urls->ipcondescURL, data->scpdurl, n1); + + url_cpy_or_cat(urls->controlURL, data->controlurl, n2); + + url_cpy_or_cat(urls->controlURL_CIF, data->controlurl_CIF, n3); + +#ifdef DEBUG + printf("urls->ipcondescURL='%s' %d n1=%d\n", urls->ipcondescURL, + strlen(urls->ipcondescURL), n1); + printf("urls->controlURL='%s' %d n2=%d\n", urls->controlURL, + strlen(urls->controlURL), n2); + printf("urls->controlURL_CIF='%s' %d n3=%d\n", urls->controlURL_CIF, + strlen(urls->controlURL_CIF), n3); +#endif +} + +void +FreeUPNPUrls(struct UPNPUrls * urls) +{ + if(!urls) + return; + free(urls->controlURL); + urls->controlURL = 0; + free(urls->ipcondescURL); + urls->ipcondescURL = 0; + free(urls->controlURL_CIF); + urls->controlURL_CIF = 0; +} + + +int ReceiveData(int socket, char * data, int length, int timeout) +{ + int n; +#ifndef WIN32 + struct pollfd fds[1]; /* for the poll */ + fds[0].fd = socket; + fds[0].events = POLLIN; + n = poll(fds, 1, timeout); + if(n < 0) + { + PRINT_SOCKET_ERROR("poll"); + return -1; + } + else if(n == 0) + { + return 0; + } +#else + fd_set socketSet; + TIMEVAL timeval; + FD_ZERO(&socketSet); + FD_SET(socket, &socketSet); + timeval.tv_sec = timeout / 1000; + timeval.tv_usec = (timeout % 1000) * 1000; + /*n = select(0, &socketSet, NULL, NULL, &timeval);*/ + n = select(FD_SETSIZE, &socketSet, NULL, NULL, &timeval); + if(n < 0) + { + PRINT_SOCKET_ERROR("select"); + return -1; + } + else if(n == 0) + { + return 0; + } +#endif + n = recv(socket, data, length, 0); + if(n<0) + { + PRINT_SOCKET_ERROR("recv"); + } + return n; +} + +static int +UPNPIGD_IsConnected(struct UPNPUrls * urls, struct IGDdatas * data) +{ + char status[64]; + unsigned int uptime; + status[0] = '\0'; + UPNP_GetStatusInfo(urls->controlURL, data->servicetype, + status, &uptime, NULL); + if(0 == strcmp("Connected", status)) + { + return 1; + } + else + return 0; +} + + +/* UPNP_GetValidIGD() : + * return values : + * 0 = NO IGD found + * 1 = A valid connected IGD has been found + * 2 = A valid IGD has been found but it reported as + * not connected + * 3 = an UPnP device has been found but was not recognized as an IGD + * + * In any non zero return case, the urls and data structures + * passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to + * free allocated memory. + */ +int +UPNP_GetValidIGD(struct UPNPDev * devlist, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen) +{ + char * descXML; + int descXMLsize = 0; + struct UPNPDev * dev; + int ndev = 0; + int state; /* state 1 : IGD connected. State 2 : IGD. State 3 : anything */ + if(!devlist) + { +#ifdef DEBUG + printf("Empty devlist\n"); +#endif + return 0; + } + for(state = 1; state <= 3; state++) + { + for(dev = devlist; dev; dev = dev->pNext) + { + /* we should choose an internet gateway device. + * with st == urn:schemas-upnp-org:device:InternetGatewayDevice:1 */ + descXML = miniwget_getaddr(dev->descURL, &descXMLsize, + lanaddr, lanaddrlen); + if(descXML) + { + ndev++; + memset(data, 0, sizeof(struct IGDdatas)); + memset(urls, 0, sizeof(struct UPNPUrls)); + parserootdesc(descXML, descXMLsize, data); + free(descXML); + descXML = NULL; + if(0==strcmp(data->servicetype_CIF, + "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1") + || state >= 3 ) + { + GetUPNPUrls(urls, data, dev->descURL); + +#ifdef DEBUG + printf("UPNPIGD_IsConnected(%s) = %d\n", + urls->controlURL, + UPNPIGD_IsConnected(urls, data)); +#endif + if((state >= 2) || UPNPIGD_IsConnected(urls, data)) + return state; + FreeUPNPUrls(urls); + } + memset(data, 0, sizeof(struct IGDdatas)); + } +#ifdef DEBUG + else + { + printf("error getting XML description %s\n", dev->descURL); + } +#endif + } + } + return 0; +} + +/* UPNP_GetIGDFromUrl() + * Used when skipping the discovery process. + * return value : + * 0 - Not ok + * 1 - OK */ +int +UPNP_GetIGDFromUrl(const char * rootdescurl, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen) +{ + char * descXML; + int descXMLsize = 0; + descXML = miniwget_getaddr(rootdescurl, &descXMLsize, + lanaddr, lanaddrlen); + if(descXML) { + memset(data, 0, sizeof(struct IGDdatas)); + memset(urls, 0, sizeof(struct UPNPUrls)); + parserootdesc(descXML, descXMLsize, data); + free(descXML); + descXML = NULL; + GetUPNPUrls(urls, data, rootdescurl); + return 1; + } else { + return 0; + } +} + diff --git a/server/miniupnp/miniupnpc.h b/server/miniupnp/miniupnpc.h new file mode 100644 index 0000000..bce314e --- /dev/null +++ b/server/miniupnp/miniupnpc.h @@ -0,0 +1,110 @@ +/* $Id: miniupnpc.h,v 1.18 2008/09/25 18:02:50 nanard Exp $ */ +/* Project: miniupnp + * http://miniupnp.free.fr/ + * Author: Thomas Bernard + * Copyright (c) 2005-2006 Thomas Bernard + * This software is subjects to the conditions detailed + * in the LICENCE file provided within this distribution */ +#ifndef __MINIUPNPC_H__ +#define __MINIUPNPC_H__ + +#include "declspec.h" +#include "igd_desc_parse.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Structures definitions : */ +struct UPNParg { const char * elt; const char * val; }; + +int simpleUPnPcommand(int, const char *, const char *, + const char *, struct UPNParg *, + char *, int *); + +struct UPNPDev { + struct UPNPDev * pNext; + char * descURL; + char * st; + char buffer[2]; +}; + +/* upnpDiscover() + * discover UPnP devices on the network. + * The discovered devices are returned as a chained list. + * It is up to the caller to free the list with freeUPNPDevlist(). + * delay (in millisecond) is the maximum time for waiting any device + * response. + * If available, device list will be obtained from MiniSSDPd. + * Default path for minissdpd socket will be used if minissdpdsock argument + * is NULL. + * If multicastif is not NULL, it will be used instead of the default + * multicast interface for sending SSDP discover packets. + * If sameport is not null, SSDP packets will be sent from the source port + * 1900 (same as destination port) otherwise system assign a source port. */ +LIBSPEC struct UPNPDev * upnpDiscover(int delay, const char * multicastif, + const char * minissdpdsock, int sameport); +/* freeUPNPDevlist() + * free list returned by upnpDiscover() */ +LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist); + +/* parserootdesc() : + * parse root XML description of a UPnP device and fill the IGDdatas + * structure. */ +LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); + +/* structure used to get fast access to urls + * controlURL: controlURL of the WANIPConnection + * ipcondescURL: url of the description of the WANIPConnection + * controlURL_CIF: controlURL of the WANCommonInterfaceConfig + */ +struct UPNPUrls { + char * controlURL; + char * ipcondescURL; + char * controlURL_CIF; +}; + +/* UPNP_GetValidIGD() : + * return values : + * 0 = NO IGD found + * 1 = A valid connected IGD has been found + * 2 = A valid IGD has been found but it reported as + * not connected + * 3 = an UPnP device has been found but was not recognized as an IGD + * + * In any non zero return case, the urls and data structures + * passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to + * free allocated memory. + */ +LIBSPEC int +UPNP_GetValidIGD(struct UPNPDev * devlist, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen); + +/* UPNP_GetIGDFromUrl() + * Used when skipping the discovery process. + * return value : + * 0 - Not ok + * 1 - OK */ +LIBSPEC int +UPNP_GetIGDFromUrl(const char * rootdescurl, + struct UPNPUrls * urls, + struct IGDdatas * data, + char * lanaddr, int lanaddrlen); + +LIBSPEC void GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, const char *); + +LIBSPEC void FreeUPNPUrls(struct UPNPUrls *); + +/* Reads data from the specified socket. + * Returns the number of bytes read if successful, zero if no bytes were + * read or if we timed out. Returns negative if there was an error. */ +int ReceiveData(int socket, char * data, int length, int timeout); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/server/miniupnp/miniwget.c b/server/miniupnp/miniwget.c new file mode 100644 index 0000000..f978816 --- /dev/null +++ b/server/miniupnp/miniwget.c @@ -0,0 +1,222 @@ +/* $Id: miniwget.c,v 1.19 2007/11/02 14:16:19 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ + +#include "miniwget.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "miniupnpc.h" +#ifdef WIN32 +#include <winsock2.h> +#include <io.h> +#define MAXHOSTNAMELEN 64 +#define MIN(x,y) (((x)<(y))?(x):(y)) +#define snprintf _snprintf +#define herror +#define socklen_t int +#else +#include <unistd.h> +#include <sys/param.h> +#include <sys/socket.h> +#include <netdb.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#define closesocket close +#endif +/* for MIN() macro : */ +#if defined(__sun) || defined(sun) +#include <utility.h> +#endif + +/* miniwget2() : + * */ +static void * +miniwget2(const char * url, const char * host, + unsigned short port, const char * path, + int * size, char * addr_str, int addr_str_len) +{ + char buf[2048]; + int s; + struct sockaddr_in dest; + struct hostent *hp; + *size = 0; + hp = gethostbyname(host); + if(hp==NULL) + { + herror(host); + return NULL; + } + /* memcpy((char *)&dest.sin_addr, hp->h_addr, hp->h_length); */ + memcpy(&dest.sin_addr, hp->h_addr, sizeof(dest.sin_addr)); + memset(dest.sin_zero, 0, sizeof(dest.sin_zero)); + s = socket(PF_INET, SOCK_STREAM, 0); + if(s < 0) + { + perror("socket"); + return NULL; + } + dest.sin_family = AF_INET; + dest.sin_port = htons(port); + if(connect(s, (struct sockaddr *)&dest, sizeof(struct sockaddr_in))<0) + { + perror("connect"); + closesocket(s); + return NULL; + } + + /* get address for caller ! */ + if(addr_str) + { + struct sockaddr_in saddr; + socklen_t len; + + len = sizeof(saddr); + getsockname(s, (struct sockaddr *)&saddr, &len); +#ifndef WIN32 + inet_ntop(AF_INET, &saddr.sin_addr, addr_str, addr_str_len); +#else + /* using INT WINAPI WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); + * But his function make a string with the port : nn.nn.nn.nn:port */ +/* if(WSAAddressToStringA((SOCKADDR *)&saddr, sizeof(saddr), + NULL, addr_str, (DWORD *)&addr_str_len)) + { + printf("WSAAddressToStringA() failed : %d\n", WSAGetLastError()); + }*/ + strncpy(addr_str, inet_ntoa(saddr.sin_addr), addr_str_len); +#endif +#ifdef DEBUG + printf("address miniwget : %s\n", addr_str); +#endif + } + + snprintf(buf, sizeof(buf), + "GET %s HTTP/1.1\r\n" + "Host: %s:%d\r\n" + "Connection: Close\r\n" + "\r\n", + path, host, port); + /*write(s, buf, strlen(buf));*/ + send(s, buf, strlen(buf), 0); + { + int n, headers=1; + char * respbuffer = NULL; + int allreadyread = 0; + /*while((n = recv(s, buf, 2048, 0)) > 0)*/ + while((n = ReceiveData(s, buf, 2048, 5000)) > 0) + { + if(headers) + { + int i=0; + while(i<n-3) + { + if(buf[i]=='\r' && buf[i+1]=='\n' + && buf[i+2]=='\r' && buf[i+3]=='\n') + { + headers = 0; /* end */ + if(i<n-4) + { + respbuffer = (char *)realloc((void *)respbuffer, + allreadyread+(n-i-4)); + memcpy(respbuffer+allreadyread, buf + i + 4, n-i-4); + allreadyread += (n-i-4); + } + break; + } + i++; + } + } + else + { + respbuffer = (char *)realloc((void *)respbuffer, + allreadyread+n); + memcpy(respbuffer+allreadyread, buf, n); + allreadyread += n; + } + } + *size = allreadyread; +#ifndef NDEBUG + printf("%d bytes read\n", *size); +#endif + closesocket(s); + return respbuffer; + } +} + +/* parseURL() + * arguments : + * url : source string not modified + * hostname : hostname destination string (size of MAXHOSTNAMELEN+1) + * port : port (destination) + * path : pointer to the path part of the URL + * + * Return values : + * 0 - Failure + * 1 - Success */ +int parseURL(const char * url, char * hostname, unsigned short * port, char * * path) +{ + char * p1, *p2, *p3; + p1 = strstr(url, "://"); + if(!p1) + return 0; + p1 += 3; + if( (url[0]!='h') || (url[1]!='t') + ||(url[2]!='t') || (url[3]!='p')) + return 0; + p2 = strchr(p1, ':'); + p3 = strchr(p1, '/'); + if(!p3) + return 0; + memset(hostname, 0, MAXHOSTNAMELEN + 1); + if(!p2 || (p2>p3)) + { + strncpy(hostname, p1, MIN(MAXHOSTNAMELEN, (int)(p3-p1))); + *port = 80; + } + else + { + strncpy(hostname, p1, MIN(MAXHOSTNAMELEN, (int)(p2-p1))); + *port = 0; + p2++; + while( (*p2 >= '0') && (*p2 <= '9')) + { + *port *= 10; + *port += (unsigned short)(*p2 - '0'); + p2++; + } + } + *path = p3; + return 1; +} + +void * miniwget(const char * url, int * size) +{ + unsigned short port; + char * path; + /* protocol://host:port/chemin */ + char hostname[MAXHOSTNAMELEN+1]; + *size = 0; + if(!parseURL(url, hostname, &port, &path)) + return NULL; + return miniwget2(url, hostname, port, path, size, 0, 0); +} + +void * miniwget_getaddr(const char * url, int * size, char * addr, int addrlen) +{ + unsigned short port; + char * path; + /* protocol://host:port/chemin */ + char hostname[MAXHOSTNAMELEN+1]; + *size = 0; + if(addr) + addr[0] = '\0'; + if(!parseURL(url, hostname, &port, &path)) + return NULL; + return miniwget2(url, hostname, port, path, size, addr, addrlen); +} + diff --git a/server/miniupnp/miniwget.h b/server/miniupnp/miniwget.h new file mode 100644 index 0000000..12c062c --- /dev/null +++ b/server/miniupnp/miniwget.h @@ -0,0 +1,28 @@ +/* $Id: miniwget.h,v 1.5 2007/01/29 20:27:23 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef __MINIWGET_H__ +#define __MINIWGET_H__ + +#include "declspec.h" + +#ifdef __cplusplus +extern "C" { +#endif + +LIBSPEC void * miniwget(const char *, int *); + +LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int); + +int parseURL(const char *, char *, unsigned short *, char * *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/server/miniupnp/minixml.c b/server/miniupnp/minixml.c new file mode 100644 index 0000000..c2310b2 --- /dev/null +++ b/server/miniupnp/minixml.c @@ -0,0 +1,191 @@ +/* $Id: minixml.c,v 1.6 2007/05/15 18:14:08 nanard Exp $ */ +/* minixml.c : the minimum size a xml parser can be ! */ +/* Project : miniupnp + * webpage: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * Author : Thomas Bernard + +Copyright (c) 2005-2007, Thomas BERNARD +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +*/ +#include "minixml.h" + +/* parseatt : used to parse the argument list + * return 0 (false) in case of success and -1 (true) if the end + * of the xmlbuffer is reached. */ +static int parseatt(struct xmlparser * p) +{ + const char * attname; + int attnamelen; + const char * attvalue; + int attvaluelen; + while(p->xml < p->xmlend) + { + if(*p->xml=='/' || *p->xml=='>') + return 0; + if( !IS_WHITE_SPACE(*p->xml) ) + { + char sep; + attname = p->xml; + attnamelen = 0; + while(*p->xml!='=' && !IS_WHITE_SPACE(*p->xml) ) + { + attnamelen++; p->xml++; + if(p->xml >= p->xmlend) + return -1; + } + while(*(p->xml++) != '=') + { + if(p->xml >= p->xmlend) + return -1; + } + while(IS_WHITE_SPACE(*p->xml)) + { + p->xml++; + if(p->xml >= p->xmlend) + return -1; + } + sep = *p->xml; + if(sep=='\'' || sep=='\"') + { + p->xml++; + if(p->xml >= p->xmlend) + return -1; + attvalue = p->xml; + attvaluelen = 0; + while(*p->xml != sep) + { + attvaluelen++; p->xml++; + if(p->xml >= p->xmlend) + return -1; + } + } + else + { + attvalue = p->xml; + attvaluelen = 0; + while( !IS_WHITE_SPACE(*p->xml) + && *p->xml != '>' && *p->xml != '/') + { + attvaluelen++; p->xml++; + if(p->xml >= p->xmlend) + return -1; + } + } + /*printf("%.*s='%.*s'\n", + attnamelen, attname, attvaluelen, attvalue);*/ + if(p->attfunc) + p->attfunc(p->data, attname, attnamelen, attvalue, attvaluelen); + } + p->xml++; + } + return -1; +} + +/* parseelt parse the xml stream and + * call the callback functions when needed... */ +static void parseelt(struct xmlparser * p) +{ + int i; + const char * elementname; + while(p->xml < (p->xmlend - 1)) + { + if((p->xml)[0]=='<' && (p->xml)[1]!='?') + { + i = 0; elementname = ++p->xml; + while( !IS_WHITE_SPACE(*p->xml) + && (*p->xml!='>') && (*p->xml!='/') + ) + { + i++; p->xml++; + if (p->xml >= p->xmlend) + return; + /* to ignore namespace : */ + if(*p->xml==':') + { + i = 0; + elementname = ++p->xml; + } + } + if(i>0) + { + if(p->starteltfunc) + p->starteltfunc(p->data, elementname, i); + if(parseatt(p)) + return; + if(*p->xml!='/') + { + const char * data; + i = 0; data = ++p->xml; + if (p->xml >= p->xmlend) + return; + while( IS_WHITE_SPACE(*p->xml) ) + { + p->xml++; + if (p->xml >= p->xmlend) + return; + } + while(*p->xml!='<') + { + i++; p->xml++; + if (p->xml >= p->xmlend) + return; + } + if(i>0 && p->datafunc) + p->datafunc(p->data, data, i); + } + } + else if(*p->xml == '/') + { + i = 0; elementname = ++p->xml; + if (p->xml >= p->xmlend) + return; + while((*p->xml != '>')) + { + i++; p->xml++; + if (p->xml >= p->xmlend) + return; + } + if(p->endeltfunc) + p->endeltfunc(p->data, elementname, i); + p->xml++; + } + } + else + { + p->xml++; + } + } +} + +/* the parser must be initialized before calling this function */ +void parsexml(struct xmlparser * parser) +{ + parser->xml = parser->xmlstart; + parser->xmlend = parser->xmlstart + parser->xmlsize; + parseelt(parser); +} + + diff --git a/server/miniupnp/minixml.h b/server/miniupnp/minixml.h new file mode 100644 index 0000000..857c70e --- /dev/null +++ b/server/miniupnp/minixml.h @@ -0,0 +1,37 @@ +/* $Id: minixml.h,v 1.6 2006/11/30 11:47:21 nanard Exp $ */ +/* minimal xml parser + * + * Project : miniupnp + * Website : http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#ifndef __MINIXML_H__ +#define __MINIXML_H__ +#define IS_WHITE_SPACE(c) ((c==' ') || (c=='\t') || (c=='\r') || (c=='\n')) + +/* if a callback function pointer is set to NULL, + * the function is not called */ +struct xmlparser { + const char *xmlstart; + const char *xmlend; + const char *xml; /* pointer to current character */ + int xmlsize; + void * data; + void (*starteltfunc) (void *, const char *, int); + void (*endeltfunc) (void *, const char *, int); + void (*datafunc) (void *, const char *, int); + void (*attfunc) (void *, const char *, int, const char *, int); +}; + +/* parsexml() + * the xmlparser structure must be initialized before the call + * the following structure members have to be initialized : + * xmlstart, xmlsize, data, *func + * xml is for internal usage, xmlend is computed automatically */ +void parsexml(struct xmlparser *); + +#endif + diff --git a/server/miniupnp/upnpcommands.c b/server/miniupnp/upnpcommands.c new file mode 100644 index 0000000..87e5722 --- /dev/null +++ b/server/miniupnp/upnpcommands.c @@ -0,0 +1,569 @@ +/* $Id: upnpcommands.c,v 1.19 2008/02/18 13:27:23 nanard Exp $ */ +/* Project : miniupnp + * Author : Thomas Bernard + * Copyright (c) 2005 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided in this distribution. + * */ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include "upnpcommands.h" +#include "miniupnpc.h" + +static unsigned int +my_atoui(const char * s) +{ + return s ? ((unsigned int)strtoul(s, NULL, 0)) : 0; +} + +/* + * */ +unsigned int +UPNP_GetTotalBytesSent(const char * controlURL, + const char * servicetype) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + unsigned int r = 0; + char * p; + simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalBytesSent", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + /*DisplayNameValueList(buffer, bufsize);*/ + p = GetValueFromNameValueList(&pdata, "NewTotalBytesSent"); + r = my_atoui(p); + ClearNameValueList(&pdata); + return r; +} + +/* + * */ +unsigned int +UPNP_GetTotalBytesReceived(const char * controlURL, + const char * servicetype) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + unsigned int r = 0; + char * p; + simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalBytesReceived", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + /*DisplayNameValueList(buffer, bufsize);*/ + p = GetValueFromNameValueList(&pdata, "NewTotalBytesReceived"); + r = my_atoui(p); + ClearNameValueList(&pdata); + return r; +} + +/* + * */ +unsigned int +UPNP_GetTotalPacketsSent(const char * controlURL, + const char * servicetype) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + unsigned int r = 0; + char * p; + simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalPacketsSent", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + /*DisplayNameValueList(buffer, bufsize);*/ + p = GetValueFromNameValueList(&pdata, "NewTotalPacketsSent"); + r = my_atoui(p); + ClearNameValueList(&pdata); + return r; +} + +/* + * */ +unsigned int +UPNP_GetTotalPacketsReceived(const char * controlURL, + const char * servicetype) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + unsigned int r = 0; + char * p; + simpleUPnPcommand(-1, controlURL, servicetype, "GetTotalPacketsReceived", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + /*DisplayNameValueList(buffer, bufsize);*/ + p = GetValueFromNameValueList(&pdata, "NewTotalPacketsReceived"); + r = my_atoui(p); + ClearNameValueList(&pdata); + return r; +} + +/* UPNP_GetStatusInfo() call the corresponding UPNP method + * returns the current status and uptime */ +int UPNP_GetStatusInfo(const char * controlURL, + const char * servicetype, + char * status, + unsigned int * uptime, + char * lastconnerror) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + char * p; + char * up; + char * err; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + + if(!status && !uptime) + return UPNPCOMMAND_INVALID_ARGS; + + simpleUPnPcommand(-1, controlURL, servicetype, "GetStatusInfo", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + /*DisplayNameValueList(buffer, bufsize);*/ + up = GetValueFromNameValueList(&pdata, "NewUptime"); + p = GetValueFromNameValueList(&pdata, "NewConnectionStatus"); + err = GetValueFromNameValueList(&pdata, "NewLastConnectionError"); + if(p && up) + ret = UPNPCOMMAND_SUCCESS; + + if(status) { + if(p){ + strncpy(status, p, 64 ); + status[63] = '\0'; + }else + status[0]= '\0'; + } + + if(uptime) { + if(up) + sscanf(up,"%u",uptime); + else + uptime = 0; + } + + if(lastconnerror) { + if(err) { + strncpy(lastconnerror, err, 64 ); + lastconnerror[63] = '\0'; + } else + lastconnerror[0] = '\0'; + } + + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + ClearNameValueList(&pdata); + return ret; +} + +/* UPNP_GetConnectionTypeInfo() call the corresponding UPNP method + * returns the connection type */ +int UPNP_GetConnectionTypeInfo(const char * controlURL, + const char * servicetype, + char * connectionType) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + char * p; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + + if(!connectionType) + return UPNPCOMMAND_INVALID_ARGS; + + simpleUPnPcommand(-1, controlURL, servicetype, + "GetConnectionTypeInfo", 0, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + p = GetValueFromNameValueList(&pdata, "NewConnectionType"); + /*p = GetValueFromNameValueList(&pdata, "NewPossibleConnectionTypes");*/ + /* PossibleConnectionTypes will have several values.... */ + if(p) { + strncpy(connectionType, p, 64 ); + connectionType[63] = '\0'; + ret = UPNPCOMMAND_SUCCESS; + } else + connectionType[0] = '\0'; + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + ClearNameValueList(&pdata); + return ret; +} + +/* UPNP_GetLinkLayerMaxBitRate() call the corresponding UPNP method. + * Returns 2 values: Downloadlink bandwidth and Uplink bandwidth. + * One of the values can be null + * Note : GetLinkLayerMaxBitRates belongs to WANPPPConnection:1 only + * We can use the GetCommonLinkProperties from WANCommonInterfaceConfig:1 */ +int UPNP_GetLinkLayerMaxBitRates(const char * controlURL, const char * servicetype, unsigned int * bitrateDown, unsigned int* bitrateUp) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + char * down; + char * up; + char * p; + + if(!bitrateDown && !bitrateUp) + return UPNPCOMMAND_INVALID_ARGS; + + /* shouldn't we use GetCommonLinkProperties ? */ + simpleUPnPcommand(-1, controlURL, servicetype, + "GetCommonLinkProperties", 0, buffer, &bufsize); + /*"GetLinkLayerMaxBitRates", 0, buffer, &bufsize);*/ + /*DisplayNameValueList(buffer, bufsize);*/ + ParseNameValue(buffer, bufsize, &pdata); + /*down = GetValueFromNameValueList(&pdata, "NewDownstreamMaxBitRate");*/ + /*up = GetValueFromNameValueList(&pdata, "NewUpstreamMaxBitRate");*/ + down = GetValueFromNameValueList(&pdata, "NewLayer1DownstreamMaxBitRate"); + up = GetValueFromNameValueList(&pdata, "NewLayer1UpstreamMaxBitRate"); + /*GetValueFromNameValueList(&pdata, "NewWANAccessType");*/ + /*GetValueFromNameValueList(&pdata, "NewPhysicalLinkSatus");*/ + if(down && up) + ret = UPNPCOMMAND_SUCCESS; + + if(bitrateDown) + { + if(down) + sscanf(down,"%u",bitrateDown); + else + *bitrateDown = 0; + } + + if(bitrateUp) + { + if(up) + sscanf(up,"%u",bitrateUp); + else + *bitrateUp = 0; + } + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + ClearNameValueList(&pdata); + return ret; +} + + +/* UPNP_GetExternalIPAddress() call the corresponding UPNP method. + * if the third arg is not null the value is copied to it. + * at least 16 bytes must be available + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR Either an UPnP error code or an unknown error. + * + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + */ +int UPNP_GetExternalIPAddress(const char * controlURL, + const char * servicetype, + char * extIpAdd) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + char * p; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + + if(!extIpAdd || !controlURL || !servicetype) + return UPNPCOMMAND_INVALID_ARGS; + + simpleUPnPcommand(-1, controlURL, servicetype, "GetExternalIPAddress", 0, buffer, &bufsize); + /*DisplayNameValueList(buffer, bufsize);*/ + ParseNameValue(buffer, bufsize, &pdata); + /*printf("external ip = %s\n", GetValueFromNameValueList(&pdata, "NewExternalIPAddress") );*/ + p = GetValueFromNameValueList(&pdata, "NewExternalIPAddress"); + if(p) { + strncpy(extIpAdd, p, 16 ); + extIpAdd[15] = '\0'; + ret = UPNPCOMMAND_SUCCESS; + } else + extIpAdd[0] = '\0'; + + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + + ClearNameValueList(&pdata); + return ret; +} + +int +UPNP_AddPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto) +{ + struct UPNParg * AddPortMappingArgs; + char buffer[4096]; + int bufsize = 4096; + struct NameValueParserData pdata; + const char * resVal; + int ret; + + if(!inPort || !inClient || !proto || !extPort) + return UPNPCOMMAND_INVALID_ARGS; + + AddPortMappingArgs = calloc(9, sizeof(struct UPNParg)); + AddPortMappingArgs[0].elt = "NewRemoteHost"; + AddPortMappingArgs[1].elt = "NewExternalPort"; + AddPortMappingArgs[1].val = extPort; + AddPortMappingArgs[2].elt = "NewProtocol"; + AddPortMappingArgs[2].val = proto; + AddPortMappingArgs[3].elt = "NewInternalPort"; + AddPortMappingArgs[3].val = inPort; + AddPortMappingArgs[4].elt = "NewInternalClient"; + AddPortMappingArgs[4].val = inClient; + AddPortMappingArgs[5].elt = "NewEnabled"; + AddPortMappingArgs[5].val = "1"; + AddPortMappingArgs[6].elt = "NewPortMappingDescription"; + AddPortMappingArgs[6].val = desc?desc:"libminiupnpc"; + AddPortMappingArgs[7].elt = "NewLeaseDuration"; + AddPortMappingArgs[7].val = "0"; + simpleUPnPcommand(-1, controlURL, servicetype, "AddPortMapping", AddPortMappingArgs, buffer, &bufsize); + /*DisplayNameValueList(buffer, bufsize);*/ + /*buffer[bufsize] = '\0';*/ + /*puts(buffer);*/ + ParseNameValue(buffer, bufsize, &pdata); + resVal = GetValueFromNameValueList(&pdata, "errorCode"); + if(resVal) { + /*printf("AddPortMapping errorCode = '%s'\n", resVal); */ + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(resVal, "%d", &ret); + } else { + ret = UPNPCOMMAND_SUCCESS; + } + ClearNameValueList(&pdata); + free(AddPortMappingArgs); + return ret; +} + +int +UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, + const char * extPort, const char * proto) +{ + /*struct NameValueParserData pdata;*/ + struct UPNParg * DeletePortMappingArgs; + char buffer[4096]; + int bufsize = 4096; + struct NameValueParserData pdata; + const char * resVal; + int ret; + + if(!extPort || !proto) + return UPNPCOMMAND_INVALID_ARGS; + + DeletePortMappingArgs = calloc(4, sizeof(struct UPNParg)); + DeletePortMappingArgs[0].elt = "NewRemoteHost"; + DeletePortMappingArgs[1].elt = "NewExternalPort"; + DeletePortMappingArgs[1].val = extPort; + DeletePortMappingArgs[2].elt = "NewProtocol"; + DeletePortMappingArgs[2].val = proto; + simpleUPnPcommand(-1, controlURL, servicetype, + "DeletePortMapping", + DeletePortMappingArgs, buffer, &bufsize); + /*DisplayNameValueList(buffer, bufsize);*/ + ParseNameValue(buffer, bufsize, &pdata); + resVal = GetValueFromNameValueList(&pdata, "errorCode"); + if(resVal) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(resVal, "%d", &ret); + } else { + ret = UPNPCOMMAND_SUCCESS; + } + ClearNameValueList(&pdata); + free(DeletePortMappingArgs); + return ret; +} + +int UPNP_GetGenericPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * index, + char * extPort, + char * intClient, + char * intPort, + char * protocol, + char * desc, + char * enabled, + char * rHost, + char * duration) +{ + struct NameValueParserData pdata; + struct UPNParg * GetPortMappingArgs; + char buffer[4096]; + int bufsize = 4096; + char * p; + int r = UPNPCOMMAND_UNKNOWN_ERROR; + if(!index) + return UPNPCOMMAND_INVALID_ARGS; + intClient[0] = '\0'; + intPort[0] = '\0'; + GetPortMappingArgs = calloc(2, sizeof(struct UPNParg)); + GetPortMappingArgs[0].elt = "NewPortMappingIndex"; + GetPortMappingArgs[0].val = index; + simpleUPnPcommand(-1, controlURL, servicetype, + "GetGenericPortMappingEntry", + GetPortMappingArgs, buffer, &bufsize); + ParseNameValue(buffer, bufsize, &pdata); + p = GetValueFromNameValueList(&pdata, "NewRemoteHost"); + if(p && rHost) + { + strncpy(rHost, p, 64); + rHost[63] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "NewExternalPort"); + if(p && extPort) + { + strncpy(extPort, p, 6); + extPort[5] = '\0'; + r = UPNPCOMMAND_SUCCESS; + } + p = GetValueFromNameValueList(&pdata, "NewProtocol"); + if(p && protocol) + { + strncpy(protocol, p, 4); + protocol[3] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "NewInternalClient"); + if(p && intClient) + { + strncpy(intClient, p, 16); + intClient[15] = '\0'; + r = 0; + } + p = GetValueFromNameValueList(&pdata, "NewInternalPort"); + if(p && intPort) + { + strncpy(intPort, p, 6); + intPort[5] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "NewEnabled"); + if(p && enabled) + { + strncpy(enabled, p, 4); + enabled[3] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "NewPortMappingDescription"); + if(p && desc) + { + strncpy(desc, p, 80); + desc[79] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "NewLeaseDuration"); + if(p && duration) + { + strncpy(duration, p, 16); + duration[15] = '\0'; + } + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + r = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &r); + } + ClearNameValueList(&pdata); + free(GetPortMappingArgs); + return r; +} + +int UPNP_GetPortMappingNumberOfEntries(const char * controlURL, const char * servicetype, unsigned int * numEntries) +{ + struct NameValueParserData pdata; + char buffer[4096]; + int bufsize = 4096; + char* p; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + simpleUPnPcommand(-1, controlURL, servicetype, "GetPortMappingNumberOfEntries", 0, buffer, &bufsize); +#ifndef NDEBUG + DisplayNameValueList(buffer, bufsize); +#endif + ParseNameValue(buffer, bufsize, &pdata); + + p = GetValueFromNameValueList(&pdata, "NewPortMappingNumberOfEntries"); + if(numEntries && p) { + *numEntries = 0; + sscanf(p, "%u", numEntries); + ret = UPNPCOMMAND_SUCCESS; + } + + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + + ClearNameValueList(&pdata); + return ret; +} + +/* UPNP_GetSpecificPortMappingEntry retrieves an existing port mapping + * the result is returned in the intClient and intPort strings + * please provide 16 and 6 bytes of data */ +int +UPNP_GetSpecificPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * extPort, + const char * proto, + char * intClient, + char * intPort) +{ + struct NameValueParserData pdata; + struct UPNParg * GetPortMappingArgs; + char buffer[4096]; + int bufsize = 4096; + char * p; + int ret = UPNPCOMMAND_UNKNOWN_ERROR; + + if(!intPort || !intClient || !extPort || !proto) + return UPNPCOMMAND_INVALID_ARGS; + + GetPortMappingArgs = calloc(4, sizeof(struct UPNParg)); + GetPortMappingArgs[0].elt = "NewRemoteHost"; + GetPortMappingArgs[1].elt = "NewExternalPort"; + GetPortMappingArgs[1].val = extPort; + GetPortMappingArgs[2].elt = "NewProtocol"; + GetPortMappingArgs[2].val = proto; + simpleUPnPcommand(-1, controlURL, servicetype, + "GetSpecificPortMappingEntry", + GetPortMappingArgs, buffer, &bufsize); + /*fd = simpleUPnPcommand(fd, controlURL, data.servicetype, "GetSpecificPortMappingEntry", AddPortMappingArgs, buffer, &bufsize); */ + /*DisplayNameValueList(buffer, bufsize);*/ + ParseNameValue(buffer, bufsize, &pdata); + + p = GetValueFromNameValueList(&pdata, "NewInternalClient"); + if(p) { + strncpy(intClient, p, 16); + intClient[15] = '\0'; + ret = UPNPCOMMAND_SUCCESS; + } else + intClient[0] = '\0'; + + p = GetValueFromNameValueList(&pdata, "NewInternalPort"); + if(p) { + strncpy(intPort, p, 6); + intPort[5] = '\0'; + } else + intPort[0] = '\0'; + + p = GetValueFromNameValueList(&pdata, "errorCode"); + if(p) { + ret = UPNPCOMMAND_UNKNOWN_ERROR; + sscanf(p, "%d", &ret); + } + + ClearNameValueList(&pdata); + free(GetPortMappingArgs); + return ret; +} + + diff --git a/server/miniupnp/upnpcommands.h b/server/miniupnp/upnpcommands.h new file mode 100644 index 0000000..96ca6b6 --- /dev/null +++ b/server/miniupnp/upnpcommands.h @@ -0,0 +1,179 @@ +/* $Id: upnpcommands.h,v 1.14 2008/09/25 18:02:50 nanard Exp $ */ +/* Miniupnp project : http://miniupnp.free.fr/ + * Author : Thomas Bernard + * Copyright (c) 2005-2008 Thomas Bernard + * This software is subject to the conditions detailed in the + * LICENCE file provided within this distribution */ +#ifndef __UPNPCOMMANDS_H__ +#define __UPNPCOMMANDS_H__ + +#include "upnpreplyparse.h" +#include "declspec.h" + +/* MiniUPnPc return codes : */ +#define UPNPCOMMAND_SUCCESS (0) +#define UPNPCOMMAND_UNKNOWN_ERROR (-1) +#define UPNPCOMMAND_INVALID_ARGS (-2) + +#ifdef __cplusplus +extern "C" { +#endif + +LIBSPEC unsigned int +UPNP_GetTotalBytesSent(const char * controlURL, + const char * servicetype); + +LIBSPEC unsigned int +UPNP_GetTotalBytesReceived(const char * controlURL, + const char * servicetype); + +LIBSPEC unsigned int +UPNP_GetTotalPacketsSent(const char * controlURL, + const char * servicetype); + +LIBSPEC unsigned int +UPNP_GetTotalPacketsReceived(const char * controlURL, + const char * servicetype); + +/* UPNP_GetStatusInfo() + * status and lastconnerror are 64 byte buffers + * Return values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error code */ +LIBSPEC int +UPNP_GetStatusInfo(const char * controlURL, + const char * servicetype, + char * status, + unsigned int * uptime, + char * lastconnerror); + +/* UPNP_GetConnectionTypeInfo() + * argument connectionType is a 64 character buffer + * Return Values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error code */ +LIBSPEC int +UPNP_GetConnectionTypeInfo(const char * controlURL, + const char * servicetype, + char * connectionType); + +/* UPNP_GetExternalIPAddress() call the corresponding UPNP method. + * if the third arg is not null the value is copied to it. + * at least 16 bytes must be available + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR Either an UPnP error code or an unknown error. + * + * possible UPnP Errors : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. */ +LIBSPEC int +UPNP_GetExternalIPAddress(const char * controlURL, + const char * servicetype, + char * extIpAdd); + +/* UPNP_GetLinkLayerMaxBitRates() + * call WANCommonInterfaceConfig:1#GetCommonLinkProperties + * + * return values : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. */ +LIBSPEC int +UPNP_GetLinkLayerMaxBitRates(const char* controlURL, + const char* servicetype, + unsigned int * bitrateDown, + unsigned int * bitrateUp); + +/* UPNP_AddPortMapping() + * + * Return values : + * 0 : SUCCESS + * NON ZERO : ERROR. Either an UPnP error code or an unknown error. + * + * List of possible UPnP errors for AddPortMapping : + * errorCode errorDescription (short) - Description (long) + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 501 Action Failed - See UPnP Device Architecture section on Control. + * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be + * wild-carded + * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded + * 718 ConflictInMappingEntry - The port mapping entry specified conflicts + * with a mapping assigned previously to another client + * 724 SamePortValuesRequired - Internal and External port values + * must be the same + * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports + * permanent lease times on port mappings + * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard + * and cannot be a specific IP address or DNS name + * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and + * cannot be a specific port value */ +LIBSPEC int +UPNP_AddPortMapping(const char * controlURL, const char * servicetype, + const char * extPort, + const char * inPort, + const char * inClient, + const char * desc, + const char * proto); + +/* UPNP_DeletePortMapping() + * Return Values : + * 0 : SUCCESS + * NON ZERO : error. Either an UPnP error code or an undefined error. + * + * List of possible UPnP errors for DeletePortMapping : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 714 NoSuchEntryInArray - The specified value does not exist in the array */ +LIBSPEC int +UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, + const char * extPort, const char * proto); + +/* UPNP_GetPortMappingNumberOfEntries() + * not supported by all routers */ +LIBSPEC int +UPNP_GetPortMappingNumberOfEntries(const char* controlURL, const char* servicetype, unsigned int * num); + +/* UPNP_GetSpecificPortMappingEntry retrieves an existing port mapping + * the result is returned in the intClient and intPort strings + * please provide 16 and 6 bytes of data + * + * return value : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. */ +LIBSPEC int +UPNP_GetSpecificPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * extPort, + const char * proto, + char * intClient, + char * intPort); + +/* UPNP_GetGenericPortMappingEntry() + * + * return value : + * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR + * or a UPnP Error Code. + * + * Possible UPNP Error codes : + * 402 Invalid Args - See UPnP Device Architecture section on Control. + * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds + */ +LIBSPEC int +UPNP_GetGenericPortMappingEntry(const char * controlURL, + const char * servicetype, + const char * index, + char * extPort, + char * intClient, + char * intPort, + char * protocol, + char * desc, + char * enabled, + char * rHost, + char * duration); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/server/miniupnp/upnpreplyparse.c b/server/miniupnp/upnpreplyparse.c new file mode 100644 index 0000000..c72b4c8 --- /dev/null +++ b/server/miniupnp/upnpreplyparse.c @@ -0,0 +1,127 @@ +/* $Id: upnpreplyparse.c,v 1.10 2008/02/21 13:05:27 nanard Exp $ */ +/* MiniUPnP project + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * (c) 2006 Thomas Bernard + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "upnpreplyparse.h" +#include "minixml.h" + +static void +NameValueParserStartElt(void * d, const char * name, int l) +{ + struct NameValueParserData * data = (struct NameValueParserData *)d; + if(l>63) + l = 63; + memcpy(data->curelt, name, l); + data->curelt[l] = '\0'; +} + +static void +NameValueParserGetData(void * d, const char * datas, int l) +{ + struct NameValueParserData * data = (struct NameValueParserData *)d; + struct NameValue * nv; + nv = malloc(sizeof(struct NameValue)); + if(l>63) + l = 63; + strncpy(nv->name, data->curelt, 64); + nv->name[63] = '\0'; + memcpy(nv->value, datas, l); + nv->value[l] = '\0'; + LIST_INSERT_HEAD( &(data->head), nv, entries); +} + +void +ParseNameValue(const char * buffer, int bufsize, + struct NameValueParserData * data) +{ + struct xmlparser parser; + LIST_INIT(&(data->head)); + /* init xmlparser object */ + parser.xmlstart = buffer; + parser.xmlsize = bufsize; + parser.data = data; + parser.starteltfunc = NameValueParserStartElt; + parser.endeltfunc = 0; + parser.datafunc = NameValueParserGetData; + parser.attfunc = 0; + parsexml(&parser); +} + +void +ClearNameValueList(struct NameValueParserData * pdata) +{ + struct NameValue * nv; + while((nv = pdata->head.lh_first) != NULL) + { + LIST_REMOVE(nv, entries); + free(nv); + } +} + +char * +GetValueFromNameValueList(struct NameValueParserData * pdata, + const char * Name) +{ + struct NameValue * nv; + char * p = NULL; + for(nv = pdata->head.lh_first; + (nv != NULL) && (p == NULL); + nv = nv->entries.le_next) + { + if(strcmp(nv->name, Name) == 0) + p = nv->value; + } + return p; +} + +#if 0 +/* useless now that minixml ignores namespaces by itself */ +char * +GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, + const char * Name) +{ + struct NameValue * nv; + char * p = NULL; + char * pname; + for(nv = pdata->head.lh_first; + (nv != NULL) && (p == NULL); + nv = nv->entries.le_next) + { + pname = strrchr(nv->name, ':'); + if(pname) + pname++; + else + pname = nv->name; + if(strcmp(pname, Name)==0) + p = nv->value; + } + return p; +} +#endif + +/* debug all-in-one function + * do parsing then display to stdout */ +#ifdef DEBUG +void +DisplayNameValueList(char * buffer, int bufsize) +{ + struct NameValueParserData pdata; + struct NameValue * nv; + ParseNameValue(buffer, bufsize, &pdata); + for(nv = pdata.head.lh_first; + nv != NULL; + nv = nv->entries.le_next) + { + printf("%s = %s\n", nv->name, nv->value); + } + ClearNameValueList(&pdata); +} +#endif + diff --git a/server/miniupnp/upnpreplyparse.h b/server/miniupnp/upnpreplyparse.h new file mode 100644 index 0000000..a927634 --- /dev/null +++ b/server/miniupnp/upnpreplyparse.h @@ -0,0 +1,62 @@ +/* $Id: upnpreplyparse.h,v 1.8 2008/02/21 13:05:27 nanard Exp $ */ +/* MiniUPnP project + * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ + * (c) 2006 Thomas Bernard + * This software is subject to the conditions detailed + * in the LICENCE file provided within the distribution */ + +#ifndef __UPNPREPLYPARSE_H__ +#define __UPNPREPLYPARSE_H__ + +#if defined(NO_SYS_QUEUE_H) || defined(WIN32) +#include "bsdqueue.h" +#else +#include <sys/queue.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct NameValue { + LIST_ENTRY(NameValue) entries; + char name[64]; + char value[64]; +}; + +struct NameValueParserData { + LIST_HEAD(listhead, NameValue) head; + char curelt[64]; +}; + +/* ParseNameValue() */ +void +ParseNameValue(const char * buffer, int bufsize, + struct NameValueParserData * data); + +/* ClearNameValueList() */ +void +ClearNameValueList(struct NameValueParserData * pdata); + +/* GetValueFromNameValueList() */ +char * +GetValueFromNameValueList(struct NameValueParserData * pdata, + const char * Name); + +/* GetValueFromNameValueListIgnoreNS() */ +char * +GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, + const char * Name); + +/* DisplayNameValueList() */ +#ifdef DEBUG +void +DisplayNameValueList(char * buffer, int bufsize); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/server/org.freedesktop.Telepathy.Client.Vino.service.in b/server/org.freedesktop.Telepathy.Client.Vino.service.in new file mode 100644 index 0000000..9720906 --- /dev/null +++ b/server/org.freedesktop.Telepathy.Client.Vino.service.in @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.freedesktop.Telepathy.Client.Vino +Exec=@libexecdir@/vino-server --tube diff --git a/server/smclient/eggdesktopfile.c b/server/smclient/eggdesktopfile.c new file mode 100644 index 0000000..443d5ec --- /dev/null +++ b/server/smclient/eggdesktopfile.c @@ -0,0 +1,1528 @@ +/* eggdesktopfile.c - Freedesktop.Org Desktop Files + * Copyright (C) 2007 Novell, Inc. + * + * Based on gnome-desktop-item.c + * Copyright (C) 1999, 2000 Red Hat Inc. + * Copyright (C) 2001 George Lebl + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - + * Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "eggdesktopfile.h" + +#include <string.h> +#include <unistd.h> + +#include <glib/gi18n.h> +#include <gdk/gdkx.h> +#include <gtk/gtk.h> + +struct EggDesktopFile { + GKeyFile *key_file; + char *source; + + char *name, *icon; + EggDesktopFileType type; + char document_code; +}; + +/** + * egg_desktop_file_new: + * @desktop_file_path: path to a Freedesktop-style Desktop file + * @error: error pointer + * + * Creates a new #EggDesktopFile for @desktop_file. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new (const char *desktop_file_path, GError **error) +{ + GKeyFile *key_file; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_file (key_file, desktop_file_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + return egg_desktop_file_new_from_key_file (key_file, desktop_file_path, + error); +} + +/** + * egg_desktop_file_new_from_data_dirs: + * @desktop_file_path: relative path to a Freedesktop-style Desktop file + * @error: error pointer + * + * Looks for @desktop_file_path in the paths returned from + * g_get_user_data_dir() and g_get_system_data_dirs(), and creates + * a new #EggDesktopFile from it. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_data_dirs (const char *desktop_file_path, + GError **error) +{ + EggDesktopFile *desktop_file; + GKeyFile *key_file; + char *full_path; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_data_dirs (key_file, desktop_file_path, + &full_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + desktop_file = egg_desktop_file_new_from_key_file (key_file, + full_path, + error); + g_free (full_path); + return desktop_file; +} + +/** + * egg_desktop_file_new_from_dirs: + * @desktop_file_path: relative path to a Freedesktop-style Desktop file + * @search_dirs: NULL-terminated array of directories to search + * @error: error pointer + * + * Looks for @desktop_file_path in the paths returned from + * g_get_user_data_dir() and g_get_system_data_dirs(), and creates + * a new #EggDesktopFile from it. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_dirs (const char *desktop_file_path, + const char **search_dirs, + GError **error) +{ + EggDesktopFile *desktop_file; + GKeyFile *key_file; + char *full_path; + + key_file = g_key_file_new (); + if (!g_key_file_load_from_dirs (key_file, desktop_file_path, search_dirs, + &full_path, 0, error)) + { + g_key_file_free (key_file); + return NULL; + } + + desktop_file = egg_desktop_file_new_from_key_file (key_file, + full_path, + error); + g_free (full_path); + return desktop_file; +} + +/** + * egg_desktop_file_new_from_key_file: + * @key_file: a #GKeyFile representing a desktop file + * @source: the path or URI that @key_file was loaded from, or %NULL + * @error: error pointer + * + * Creates a new #EggDesktopFile for @key_file. Assumes ownership of + * @key_file (on success or failure); you should consider @key_file to + * be freed after calling this function. + * + * Return value: the new #EggDesktopFile, or %NULL on error. + **/ +EggDesktopFile * +egg_desktop_file_new_from_key_file (GKeyFile *key_file, + const char *source, + GError **error) +{ + EggDesktopFile *desktop_file; + char *version, *type; + + if (!g_key_file_has_group (key_file, EGG_DESKTOP_FILE_GROUP)) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_INVALID, + _("File is not a valid .desktop file")); + g_key_file_free (key_file); + return NULL; + } + + version = g_key_file_get_value (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_VERSION, + NULL); + if (version) + { + double version_num; + char *end; + + version_num = g_ascii_strtod (version, &end); + if (*end) + { + g_warning ("Invalid Version string '%s' in %s", + version, source ? source : "(unknown)"); + } + else if (version_num > 1.0) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_INVALID, + /* translators: 'Version' is from a desktop file, and + * should not be translated. '%s' would probably be a + * version number. */ + _("Unrecognized desktop file Version '%s'"), version); + g_free (version); + g_key_file_free (key_file); + return NULL; + } + g_free (version); + } + + desktop_file = g_new0 (EggDesktopFile, 1); + desktop_file->key_file = key_file; + + if (g_path_is_absolute (source)) + desktop_file->source = g_filename_to_uri (source, NULL, NULL); + else + desktop_file->source = g_strdup (source); + + desktop_file->name = g_key_file_get_locale_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NAME, + NULL, + error); + if (!desktop_file->name) + { + egg_desktop_file_free (desktop_file); + return NULL; + } + + type = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TYPE, error); + if (!type) + { + egg_desktop_file_free (desktop_file); + return NULL; + } + + if (!strcmp (type, "Application")) + { + char *exec, *p; + + desktop_file->type = EGG_DESKTOP_FILE_TYPE_APPLICATION; + + exec = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + error); + if (!exec) + { + egg_desktop_file_free (desktop_file); + g_free (type); + return NULL; + } + + /* See if it takes paths or URIs or neither */ + for (p = exec; *p; p++) + { + if (*p == '%') + { + if (p[1] == '\0' || strchr ("FfUu", p[1])) + { + desktop_file->document_code = p[1]; + break; + } + p++; + } + } + + g_free (exec); + } + else if (!strcmp (type, "Link")) + { + char *url; + + desktop_file->type = EGG_DESKTOP_FILE_TYPE_LINK; + + url = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_URL, + error); + if (!url) + { + egg_desktop_file_free (desktop_file); + g_free (type); + return NULL; + } + g_free (url); + } + else if (!strcmp (type, "Directory")) + desktop_file->type = EGG_DESKTOP_FILE_TYPE_DIRECTORY; + else + desktop_file->type = EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED; + + g_free (type); + + /* Check the Icon key */ + desktop_file->icon = g_key_file_get_string (key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_ICON, + NULL); + if (desktop_file->icon && !g_path_is_absolute (desktop_file->icon)) + { + char *ext; + + /* Lots of .desktop files still get this wrong */ + ext = strrchr (desktop_file->icon, '.'); + if (ext && (!strcmp (ext, ".png") || + !strcmp (ext, ".xpm") || + !strcmp (ext, ".svg"))) + { + g_warning ("Desktop file '%s' has malformed Icon key '%s'" + "(should not include extension)", + source ? source : "(unknown)", + desktop_file->icon); + *ext = '\0'; + } + } + + return desktop_file; +} + +/** + * egg_desktop_file_free: + * @desktop_file: an #EggDesktopFile + * + * Frees @desktop_file. + **/ +void +egg_desktop_file_free (EggDesktopFile *desktop_file) +{ + g_key_file_free (desktop_file->key_file); + g_free (desktop_file->source); + g_free (desktop_file->name); + g_free (desktop_file->icon); + g_free (desktop_file); +} + +/** + * egg_desktop_file_get_source: + * @desktop_file: an #EggDesktopFile + * + * Gets the URI that @desktop_file was loaded from. + * + * Return value: @desktop_file's source URI + **/ +const char * +egg_desktop_file_get_source (EggDesktopFile *desktop_file) +{ + return desktop_file->source; +} + +/** + * egg_desktop_file_get_desktop_file_type: + * @desktop_file: an #EggDesktopFile + * + * Gets the desktop file type of @desktop_file. + * + * Return value: @desktop_file's type + **/ +EggDesktopFileType +egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file) +{ + return desktop_file->type; +} + +/** + * egg_desktop_file_get_name: + * @desktop_file: an #EggDesktopFile + * + * Gets the (localized) value of @desktop_file's "Name" key. + * + * Return value: the application/link name + **/ +const char * +egg_desktop_file_get_name (EggDesktopFile *desktop_file) +{ + return desktop_file->name; +} + +/** + * egg_desktop_file_get_icon: + * @desktop_file: an #EggDesktopFile + * + * Gets the value of @desktop_file's "Icon" key. + * + * If the icon string is a full path (that is, if g_path_is_absolute() + * returns %TRUE when called on it), it points to a file containing an + * unthemed icon. If the icon string is not a full path, it is the + * name of a themed icon, which can be looked up with %GtkIconTheme, + * or passed directly to a theme-aware widget like %GtkImage or + * %GtkCellRendererPixbuf. + * + * Return value: the icon path or name + **/ +const char * +egg_desktop_file_get_icon (EggDesktopFile *desktop_file) +{ + return desktop_file->icon; +} + +gboolean +egg_desktop_file_has_key (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char * +egg_desktop_file_get_string (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char * +egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + GError **error) +{ + return g_key_file_get_locale_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, locale, + error); +} + +gboolean +egg_desktop_file_get_boolean (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +double +egg_desktop_file_get_numeric (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_double (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +int +egg_desktop_file_get_integer (EggDesktopFile *desktop_file, + const char *key, + GError **error) +{ + return g_key_file_get_integer (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + error); +} + +char ** +egg_desktop_file_get_string_list (EggDesktopFile *desktop_file, + const char *key, + gsize *length, + GError **error) +{ + return g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, length, + error); +} + +char ** +egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + gsize *length, + GError **error) +{ + return g_key_file_get_locale_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, key, + locale, length, + error); +} + +/** + * egg_desktop_file_can_launch: + * @desktop_file: an #EggDesktopFile + * @desktop_environment: the name of the running desktop environment, + * or %NULL + * + * Tests if @desktop_file can/should be launched in the current + * environment. If @desktop_environment is non-%NULL, @desktop_file's + * "OnlyShowIn" and "NotShowIn" keys are checked to make sure that + * this desktop_file is appropriate for the named environment. + * + * Furthermore, if @desktop_file has type + * %EGG_DESKTOP_FILE_TYPE_APPLICATION, its "TryExec" key (if any) is + * also checked, to make sure the binary it points to exists. + * + * egg_desktop_file_can_launch() does NOT check the value of the + * "Hidden" key. + * + * Return value: %TRUE if @desktop_file can be launched + **/ +gboolean +egg_desktop_file_can_launch (EggDesktopFile *desktop_file, + const char *desktop_environment) +{ + char *try_exec, *found_program; + char **only_show_in, **not_show_in; + gboolean found; + int i; + + if (desktop_file->type != EGG_DESKTOP_FILE_TYPE_APPLICATION && + desktop_file->type != EGG_DESKTOP_FILE_TYPE_LINK) + return FALSE; + + if (desktop_environment) + { + only_show_in = g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN, + NULL, NULL); + if (only_show_in) + { + for (i = 0, found = FALSE; only_show_in[i] && !found; i++) + { + if (!strcmp (only_show_in[i], desktop_environment)) + found = TRUE; + } + + g_strfreev (only_show_in); + + if (!found) + return FALSE; + } + + not_show_in = g_key_file_get_string_list (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN, + NULL, NULL); + if (not_show_in) + { + for (i = 0, found = FALSE; not_show_in[i] && !found; i++) + { + if (!strcmp (not_show_in[i], desktop_environment)) + found = TRUE; + } + + g_strfreev (not_show_in); + + if (found) + return FALSE; + } + } + + if (desktop_file->type == EGG_DESKTOP_FILE_TYPE_APPLICATION) + { + try_exec = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TRY_EXEC, + NULL); + if (try_exec) + { + found_program = g_find_program_in_path (try_exec); + g_free (try_exec); + + if (!found_program) + return FALSE; + g_free (found_program); + } + } + + return TRUE; +} + +/** + * egg_desktop_file_accepts_documents: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file represents an application that can accept + * documents on the command line. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file) +{ + return desktop_file->document_code != 0; +} + +/** + * egg_desktop_file_accepts_multiple: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file can accept multiple documents at once. + * + * If this returns %FALSE, you can still pass multiple documents to + * egg_desktop_file_launch(), but that will result in multiple copies + * of the application being launched. See egg_desktop_file_launch() + * for more details. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file) +{ + return (desktop_file->document_code == 'F' || + desktop_file->document_code == 'U'); +} + +/** + * egg_desktop_file_accepts_uris: + * @desktop_file: an #EggDesktopFile + * + * Tests if @desktop_file can accept (non-"file:") URIs as documents to + * open. + * + * Return value: %TRUE or %FALSE + **/ +gboolean +egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file) +{ + return (desktop_file->document_code == 'U' || + desktop_file->document_code == 'u'); +} + +static void +append_quoted_word (GString *str, + const char *s, + gboolean in_single_quotes, + gboolean in_double_quotes) +{ + const char *p; + + if (!in_single_quotes && !in_double_quotes) + g_string_append_c (str, '\''); + else if (!in_single_quotes && in_double_quotes) + g_string_append (str, "\"'"); + + if (!strchr (s, '\'')) + g_string_append (str, s); + else + { + for (p = s; *p != '\0'; p++) + { + if (*p == '\'') + g_string_append (str, "'\\''"); + else + g_string_append_c (str, *p); + } + } + + if (!in_single_quotes && !in_double_quotes) + g_string_append_c (str, '\''); + else if (!in_single_quotes && in_double_quotes) + g_string_append (str, "'\""); +} + +static void +do_percent_subst (EggDesktopFile *desktop_file, + char code, + GString *str, + GSList **documents, + gboolean in_single_quotes, + gboolean in_double_quotes) +{ + GSList *d; + char *doc; + + switch (code) + { + case '%': + g_string_append_c (str, '%'); + break; + + case 'F': + case 'U': + for (d = *documents; d; d = d->next) + { + doc = d->data; + g_string_append (str, " "); + append_quoted_word (str, doc, in_single_quotes, in_double_quotes); + } + *documents = NULL; + break; + + case 'f': + case 'u': + if (*documents) + { + doc = (*documents)->data; + g_string_append (str, " "); + append_quoted_word (str, doc, in_single_quotes, in_double_quotes); + *documents = (*documents)->next; + } + break; + + case 'i': + if (desktop_file->icon) + { + g_string_append (str, "--icon "); + append_quoted_word (str, desktop_file->icon, + in_single_quotes, in_double_quotes); + } + break; + + case 'c': + if (desktop_file->name) + { + append_quoted_word (str, desktop_file->name, + in_single_quotes, in_double_quotes); + } + break; + + case 'k': + if (desktop_file->source) + { + append_quoted_word (str, desktop_file->source, + in_single_quotes, in_double_quotes); + } + break; + + case 'D': + case 'N': + case 'd': + case 'n': + case 'v': + case 'm': + /* Deprecated; skip */ + break; + + default: + g_warning ("Unrecognized %%-code '%%%c' in Exec", code); + break; + } +} + +static char * +parse_exec (EggDesktopFile *desktop_file, + GSList **documents, + GError **error) +{ + char *exec, *p, *command; + gboolean escape, single_quot, double_quot; + GString *gs; + + exec = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + error); + if (!exec) + return NULL; + + /* Build the command */ + gs = g_string_new (NULL); + escape = single_quot = double_quot = FALSE; + + for (p = exec; *p != '\0'; p++) + { + if (escape) + { + escape = FALSE; + g_string_append_c (gs, *p); + } + else if (*p == '\\') + { + if (!single_quot) + escape = TRUE; + g_string_append_c (gs, *p); + } + else if (*p == '\'') + { + g_string_append_c (gs, *p); + if (!single_quot && !double_quot) + single_quot = TRUE; + else if (single_quot) + single_quot = FALSE; + } + else if (*p == '"') + { + g_string_append_c (gs, *p); + if (!single_quot && !double_quot) + double_quot = TRUE; + else if (double_quot) + double_quot = FALSE; + } + else if (*p == '%' && p[1]) + { + do_percent_subst (desktop_file, p[1], gs, documents, + single_quot, double_quot); + p++; + } + else + g_string_append_c (gs, *p); + } + + g_free (exec); + command = g_string_free (gs, FALSE); + + /* Prepend "xdg-terminal " if needed (FIXME: use gvfs) */ + if (g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TERMINAL, + NULL)) + { + GError *terminal_error = NULL; + gboolean use_terminal = + g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TERMINAL, + &terminal_error); + if (terminal_error) + { + g_free (command); + g_propagate_error (error, terminal_error); + return NULL; + } + + if (use_terminal) + { + gs = g_string_new ("xdg-terminal "); + append_quoted_word (gs, command, FALSE, FALSE); + g_free (command); + command = g_string_free (gs, FALSE); + } + } + + return command; +} + +static GSList * +translate_document_list (EggDesktopFile *desktop_file, GSList *documents) +{ + gboolean accepts_uris = egg_desktop_file_accepts_uris (desktop_file); + GSList *ret, *d; + + for (d = documents, ret = NULL; d; d = d->next) + { + const char *document = d->data; + gboolean is_uri = !g_path_is_absolute (document); + char *translated; + + if (accepts_uris) + { + if (is_uri) + translated = g_strdup (document); + else + translated = g_filename_to_uri (document, NULL, NULL); + } + else + { + if (is_uri) + translated = g_filename_from_uri (document, NULL, NULL); + else + translated = g_strdup (document); + } + + if (translated) + ret = g_slist_prepend (ret, translated); + } + + return g_slist_reverse (ret); +} + +static void +free_document_list (GSList *documents) +{ + GSList *d; + + for (d = documents; d; d = d->next) + g_free (d->data); + g_slist_free (documents); +} + +/** + * egg_desktop_file_parse_exec: + * @desktop_file: a #EggDesktopFile + * @documents: a list of document paths or URIs + * @error: error pointer + * + * Parses @desktop_file's Exec key, inserting @documents into it, and + * returns the result. + * + * If @documents contains non-file: URIs and @desktop_file does not + * accept URIs, those URIs will be ignored. Likewise, if @documents + * contains more elements than @desktop_file accepts, the extra + * documents will be ignored. + * + * Return value: the parsed Exec string + **/ +char * +egg_desktop_file_parse_exec (EggDesktopFile *desktop_file, + GSList *documents, + GError **error) +{ + GSList *translated, *docs; + char *command; + + docs = translated = translate_document_list (desktop_file, documents); + command = parse_exec (desktop_file, &docs, error); + free_document_list (translated); + + return command; +} + +static gboolean +parse_link (EggDesktopFile *desktop_file, + EggDesktopFile **app_desktop_file, + GSList **documents, + GError **error) +{ + char *url; + GKeyFile *key_file; + + url = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_URL, + error); + if (!url) + return FALSE; + *documents = g_slist_prepend (NULL, url); + + /* FIXME: use gvfs */ + key_file = g_key_file_new (); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_NAME, + "xdg-open"); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_TYPE, + "Application"); + g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + "xdg-open %u"); + *app_desktop_file = egg_desktop_file_new_from_key_file (key_file, NULL, NULL); + return TRUE; +} + +#if GTK_CHECK_VERSION (2, 12, 0) +static char * +start_startup_notification (GdkDisplay *display, + EggDesktopFile *desktop_file, + const char *argv0, + int screen, + int workspace, + guint32 launch_time) +{ + static int sequence = 0; + char *startup_id; + char *description, *wmclass; + char *screen_str, *workspace_str; + + if (g_key_file_has_key (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY, + NULL)) + { + if (!g_key_file_get_boolean (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY, + NULL)) + return NULL; + wmclass = NULL; + } + else + { + wmclass = g_key_file_get_string (desktop_file->key_file, + EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS, + NULL); + if (!wmclass) + return NULL; + } + + if (launch_time == (guint32)-1) + launch_time = gdk_x11_display_get_user_time (display); + startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu", + g_get_prgname (), + (unsigned long)getpid (), + g_get_host_name (), + argv0, + sequence++, + (unsigned long)launch_time); + + description = g_strdup_printf (_("Starting %s"), desktop_file->name); + screen_str = g_strdup_printf ("%d", screen); + workspace_str = workspace == -1 ? NULL : g_strdup_printf ("%d", workspace); + + gdk_x11_display_broadcast_startup_message (display, "new", + "ID", startup_id, + "NAME", desktop_file->name, + "SCREEN", screen_str, + "BIN", argv0, + "ICON", desktop_file->icon, + "DESKTOP", workspace_str, + "DESCRIPTION", description, + "WMCLASS", wmclass, + NULL); + + g_free (description); + g_free (wmclass); + g_free (screen_str); + g_free (workspace_str); + + return startup_id; +} + +static void +end_startup_notification (GdkDisplay *display, + const char *startup_id) +{ + gdk_x11_display_broadcast_startup_message (display, "remove", + "ID", startup_id, + NULL); +} + +#define EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH (30 /* seconds */) + +typedef struct { + GdkDisplay *display; + char *startup_id; +} StartupNotificationData; + +static gboolean +startup_notification_timeout (gpointer data) +{ + StartupNotificationData *sn_data = data; + + end_startup_notification (sn_data->display, sn_data->startup_id); + g_object_unref (sn_data->display); + g_free (sn_data->startup_id); + g_free (sn_data); + + return FALSE; +} + +static void +set_startup_notification_timeout (GdkDisplay *display, + const char *startup_id) +{ + StartupNotificationData *sn_data; + + sn_data = g_new (StartupNotificationData, 1); + sn_data->display = g_object_ref (display); + sn_data->startup_id = g_strdup (startup_id); + + g_timeout_add_seconds (EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH, + startup_notification_timeout, sn_data); +} +#endif /* GTK 2.12 */ + +static GPtrArray * +array_putenv (GPtrArray *env, char *variable) +{ + guint i, keylen; + + if (!env) + { + char **envp; + + env = g_ptr_array_new (); + + envp = g_listenv (); + for (i = 0; envp[i]; i++) + { + const char *value; + + value = g_getenv (envp[i]); + g_ptr_array_add (env, g_strdup_printf ("%s=%s", envp[i], + value ? value : "")); + } + g_strfreev (envp); + } + + keylen = strcspn (variable, "="); + + /* Remove old value of key */ + for (i = 0; i < env->len; i++) + { + char *envvar = env->pdata[i]; + + if (!strncmp (envvar, variable, keylen) && envvar[keylen] == '=') + { + g_free (envvar); + g_ptr_array_remove_index_fast (env, i); + break; + } + } + + /* Add new value */ + g_ptr_array_add (env, g_strdup (variable)); + + return env; +} + +static gboolean +egg_desktop_file_launchv (EggDesktopFile *desktop_file, + GSList *documents, va_list args, + GError **error) +{ + EggDesktopFileLaunchOption option; + GSList *translated_documents = NULL, *docs = NULL; + char *command, **argv; + int argc, i, screen_num; + gboolean success, current_success; + GdkDisplay *display; + char *startup_id; + + GPtrArray *env = NULL; + char **variables = NULL; + GdkScreen *screen = NULL; + int workspace = -1; + const char *directory = NULL; + guint32 launch_time = (guint32)-1; + GSpawnFlags flags = G_SPAWN_SEARCH_PATH; + GSpawnChildSetupFunc setup_func = NULL; + gpointer setup_data = NULL; + + GPid *ret_pid = NULL; + int *ret_stdin = NULL, *ret_stdout = NULL, *ret_stderr = NULL; + char **ret_startup_id = NULL; + + if (documents && desktop_file->document_code == 0) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + _("Application does not accept documents on command line")); + return FALSE; + } + + /* Read the options: technically it's incorrect for the caller to + * NULL-terminate the list of options (rather than 0-terminating + * it), but NULL-terminating lets us use G_GNUC_NULL_TERMINATED, + * it's more consistent with other glib/gtk methods, and it will + * work as long as sizeof (int) <= sizeof (NULL), and NULL is + * represented as 0. (Which is true everywhere we care about.) + */ + while ((option = va_arg (args, EggDesktopFileLaunchOption))) + { + switch (option) + { + case EGG_DESKTOP_FILE_LAUNCH_CLEARENV: + if (env) + g_ptr_array_free (env, TRUE); + env = g_ptr_array_new (); + break; + case EGG_DESKTOP_FILE_LAUNCH_PUTENV: + variables = va_arg (args, char **); + for (i = 0; variables[i]; i++) + env = array_putenv (env, variables[i]); + break; + + case EGG_DESKTOP_FILE_LAUNCH_SCREEN: + screen = va_arg (args, GdkScreen *); + break; + case EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: + workspace = va_arg (args, int); + break; + + case EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: + directory = va_arg (args, const char *); + break; + case EGG_DESKTOP_FILE_LAUNCH_TIME: + launch_time = va_arg (args, guint32); + break; + case EGG_DESKTOP_FILE_LAUNCH_FLAGS: + flags |= va_arg (args, GSpawnFlags); + /* Make sure they didn't set any flags that don't make sense. */ + flags &= ~G_SPAWN_FILE_AND_ARGV_ZERO; + break; + case EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC: + setup_func = va_arg (args, GSpawnChildSetupFunc); + setup_data = va_arg (args, gpointer); + break; + + case EGG_DESKTOP_FILE_LAUNCH_RETURN_PID: + ret_pid = va_arg (args, GPid *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE: + ret_stdin = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE: + ret_stdout = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE: + ret_stderr = va_arg (args, int *); + break; + case EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID: + ret_startup_id = va_arg (args, char **); + break; + + default: + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION, + _("Unrecognized launch option: %d"), + GPOINTER_TO_INT (option)); + success = FALSE; + goto out; + } + } + + if (screen) + { + char *display_name = gdk_screen_make_display_name (screen); + char *display_env = g_strdup_printf ("DISPLAY=%s", display_name); + env = array_putenv (env, display_env); + g_free (display_name); + g_free (display_env); + + display = gdk_screen_get_display (screen); + } + else + { + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (display); + } + screen_num = gdk_screen_get_number (screen); + + translated_documents = translate_document_list (desktop_file, documents); + docs = translated_documents; + + success = FALSE; + + do + { + command = parse_exec (desktop_file, &docs, error); + if (!command) + goto out; + + if (!g_shell_parse_argv (command, &argc, &argv, error)) + { + g_free (command); + goto out; + } + g_free (command); + +#if GTK_CHECK_VERSION (2, 12, 0) + startup_id = start_startup_notification (display, desktop_file, + argv[0], screen_num, + workspace, launch_time); + if (startup_id) + { + char *startup_id_env = g_strdup_printf ("DESKTOP_STARTUP_ID=%s", + startup_id); + env = array_putenv (env, startup_id_env); + g_free (startup_id_env); + } +#else + startup_id = NULL; +#endif /* GTK 2.12 */ + + if (env != NULL) + g_ptr_array_add (env, NULL); + + current_success = + g_spawn_async_with_pipes (directory, + argv, + env ? (char **)(env->pdata) : NULL, + flags, + setup_func, setup_data, + ret_pid, + ret_stdin, ret_stdout, ret_stderr, + error); + g_strfreev (argv); + + if (startup_id) + { +#if GTK_CHECK_VERSION (2, 12, 0) + if (current_success) + { + set_startup_notification_timeout (display, startup_id); + + if (ret_startup_id) + *ret_startup_id = startup_id; + else + g_free (startup_id); + } + else +#endif /* GTK 2.12 */ + g_free (startup_id); + } + else if (ret_startup_id) + *ret_startup_id = NULL; + + if (current_success) + { + /* If we successfully launch any instances of the app, make + * sure we return TRUE and don't set @error. + */ + success = TRUE; + error = NULL; + + /* Also, only set the output params on the first one */ + ret_pid = NULL; + ret_stdin = ret_stdout = ret_stderr = NULL; + ret_startup_id = NULL; + } + } + while (docs && current_success); + + out: + if (env) + { + g_ptr_array_foreach (env, (GFunc)g_free, NULL); + g_ptr_array_free (env, TRUE); + } + free_document_list (translated_documents); + + return success; +} + +/** + * egg_desktop_file_launch: + * @desktop_file: an #EggDesktopFile + * @documents: a list of URIs or paths to documents to open + * @error: error pointer + * @...: additional options + * + * Launches @desktop_file with the given arguments. Additional options + * can be specified as follows: + * + * %EGG_DESKTOP_FILE_LAUNCH_CLEARENV: (no arguments) + * clears the environment in the child process + * %EGG_DESKTOP_FILE_LAUNCH_PUTENV: (char **variables) + * adds the NAME=VALUE strings in the given %NULL-terminated + * array to the child process's environment + * %EGG_DESKTOP_FILE_LAUNCH_SCREEN: (GdkScreen *screen) + * causes the application to be launched on the given screen + * %EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: (int workspace) + * causes the application to be launched on the given workspace + * %EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: (char *dir) + * causes the application to be launched in the given directory + * %EGG_DESKTOP_FILE_LAUNCH_TIME: (guint32 launch_time) + * sets the "launch time" for the application. If the user + * interacts with another window after @launch_time but before + * the launched application creates its first window, the window + * manager may choose to not give focus to the new application. + * Passing 0 for @launch_time will explicitly request that the + * application not receive focus. + * %EGG_DESKTOP_FILE_LAUNCH_FLAGS (GSpawnFlags flags) + * Sets additional #GSpawnFlags to use. See g_spawn_async() for + * more details. + * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC (GSpawnChildSetupFunc, gpointer) + * Sets the child setup callback and the data to pass to it. + * (See g_spawn_async() for more details.) + * + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID (GPid **pid) + * On a successful launch, sets *@pid to the PID of the launched + * application. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID (char **startup_id) + * On a successful launch, sets *@startup_id to the Startup + * Notification "startup id" of the launched application. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stdin. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stdout. + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE (int *fd) + * On a successful launch, sets *@fd to the file descriptor of + * a pipe connected to the application's stderr. + * + * The options should be terminated with a single %NULL. + * + * If @documents contains multiple documents, but + * egg_desktop_file_accepts_multiple() returns %FALSE for + * @desktop_file, then egg_desktop_file_launch() will actually launch + * multiple instances of the application. In that case, the return + * value (as well as any values passed via + * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, etc) will only reflect the + * first instance of the application that was launched (but the + * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC will be called for each + * instance). + * + * Return value: %TRUE if the application was successfully launched. + **/ +gboolean +egg_desktop_file_launch (EggDesktopFile *desktop_file, + GSList *documents, GError **error, + ...) +{ + va_list args; + gboolean success; + EggDesktopFile *app_desktop_file; + + switch (desktop_file->type) + { + case EGG_DESKTOP_FILE_TYPE_APPLICATION: + va_start (args, error); + success = egg_desktop_file_launchv (desktop_file, documents, + args, error); + va_end (args); + break; + + case EGG_DESKTOP_FILE_TYPE_LINK: + if (documents) + { + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + /* translators: The 'Type=Link' string is found in a + * desktop file, and should not be translated. */ + _("Can't pass document URIs to a 'Type=Link' desktop entry")); + return FALSE; + } + + if (!parse_link (desktop_file, &app_desktop_file, &documents, error)) + return FALSE; + + va_start (args, error); + success = egg_desktop_file_launchv (app_desktop_file, documents, + args, error); + va_end (args); + + egg_desktop_file_free (app_desktop_file); + free_document_list (documents); + break; + + case EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED: + case EGG_DESKTOP_FILE_TYPE_DIRECTORY: + default: + g_set_error (error, EGG_DESKTOP_FILE_ERROR, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + _("Not a launchable item")); + success = FALSE; + break; + } + + return success; +} + + +GQuark +egg_desktop_file_error_quark (void) +{ + return g_quark_from_static_string ("egg-desktop_file-error-quark"); +} + + +G_LOCK_DEFINE_STATIC (egg_desktop_file); +static EggDesktopFile *egg_desktop_file; + +static void +egg_set_desktop_file_internal (const char *desktop_file_path, + gboolean set_defaults) +{ + GError *error = NULL; + + G_LOCK (egg_desktop_file); + if (egg_desktop_file) + egg_desktop_file_free (egg_desktop_file); + + egg_desktop_file = egg_desktop_file_new (desktop_file_path, &error); + if (error) + { + g_warning ("Could not load desktop file '%s': %s", + desktop_file_path, error->message); + g_error_free (error); + } + + if (set_defaults && egg_desktop_file != NULL) { + /* Set localized application name and default window icon */ + if (egg_desktop_file->name) + g_set_application_name (egg_desktop_file->name); + if (egg_desktop_file->icon) + { + if (g_path_is_absolute (egg_desktop_file->icon)) + gtk_window_set_default_icon_from_file (egg_desktop_file->icon, NULL); + else + gtk_window_set_default_icon_name (egg_desktop_file->icon); + } + } + + G_UNLOCK (egg_desktop_file); +} + +/** + * egg_set_desktop_file: + * @desktop_file_path: path to the application's desktop file + * + * Creates an #EggDesktopFile for the application from the data at + * @desktop_file_path. This will also call g_set_application_name() + * with the localized application name from the desktop file, and + * gtk_window_set_default_icon_name() or + * gtk_window_set_default_icon_from_file() with the application's + * icon. Other code may use additional information from the desktop + * file. + * See egg_set_desktop_file_without_defaults() for a variant of this + * function that does not set the application name and default window + * icon. + * + * Note that for thread safety reasons, this function can only + * be called once, and is mutually exclusive with calling + * egg_set_desktop_file_without_defaults(). + **/ +void +egg_set_desktop_file (const char *desktop_file_path) +{ + egg_set_desktop_file_internal (desktop_file_path, TRUE); +} + +/** + * egg_set_desktop_file_without_defaults: + * @desktop_file_path: path to the application's desktop file + * + * Creates an #EggDesktopFile for the application from the data at + * @desktop_file_path. + * See egg_set_desktop_file() for a variant of this function that + * sets the application name and default window icon from the information + * in the desktop file. + * + * Note that for thread safety reasons, this function can only + * be called once, and is mutually exclusive with calling + * egg_set_desktop_file(). + **/ +void +egg_set_desktop_file_without_defaults (const char *desktop_file_path) +{ + egg_set_desktop_file_internal (desktop_file_path, FALSE); +} + +/** + * egg_get_desktop_file: + * + * Gets the application's #EggDesktopFile, as set by + * egg_set_desktop_file(). + * + * Return value: the #EggDesktopFile, or %NULL if it hasn't been set. + **/ +EggDesktopFile * +egg_get_desktop_file (void) +{ + EggDesktopFile *retval; + + G_LOCK (egg_desktop_file); + retval = egg_desktop_file; + G_UNLOCK (egg_desktop_file); + + return retval; +} diff --git a/server/smclient/eggdesktopfile.h b/server/smclient/eggdesktopfile.h new file mode 100644 index 0000000..16c5426 --- /dev/null +++ b/server/smclient/eggdesktopfile.h @@ -0,0 +1,163 @@ +/* eggdesktopfile.h - Freedesktop.Org Desktop Files + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; see the file COPYING.LIB. If not, + * write to the Free Software Foundation, Inc., 59 Temple Place - + * Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __EGG_DESKTOP_FILE_H__ +#define __EGG_DESKTOP_FILE_H__ + +#include <glib.h> + +G_BEGIN_DECLS + +typedef struct EggDesktopFile EggDesktopFile; + +typedef enum { + EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED, + + EGG_DESKTOP_FILE_TYPE_APPLICATION, + EGG_DESKTOP_FILE_TYPE_LINK, + EGG_DESKTOP_FILE_TYPE_DIRECTORY +} EggDesktopFileType; + +EggDesktopFile *egg_desktop_file_new (const char *desktop_file_path, + GError **error); + +EggDesktopFile *egg_desktop_file_new_from_data_dirs (const char *desktop_file_path, + GError **error); +EggDesktopFile *egg_desktop_file_new_from_dirs (const char *desktop_file_path, + const char **search_dirs, + GError **error); +EggDesktopFile *egg_desktop_file_new_from_key_file (GKeyFile *key_file, + const char *source, + GError **error); + +void egg_desktop_file_free (EggDesktopFile *desktop_file); + +const char *egg_desktop_file_get_source (EggDesktopFile *desktop_file); + +EggDesktopFileType egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file); + +const char *egg_desktop_file_get_name (EggDesktopFile *desktop_file); +const char *egg_desktop_file_get_icon (EggDesktopFile *desktop_file); + +gboolean egg_desktop_file_can_launch (EggDesktopFile *desktop_file, + const char *desktop_environment); + +gboolean egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file); +gboolean egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file); +gboolean egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file); + +char *egg_desktop_file_parse_exec (EggDesktopFile *desktop_file, + GSList *documents, + GError **error); + +gboolean egg_desktop_file_launch (EggDesktopFile *desktop_file, + GSList *documents, + GError **error, + ...) G_GNUC_NULL_TERMINATED; + +typedef enum { + EGG_DESKTOP_FILE_LAUNCH_CLEARENV = 1, + EGG_DESKTOP_FILE_LAUNCH_PUTENV, + EGG_DESKTOP_FILE_LAUNCH_SCREEN, + EGG_DESKTOP_FILE_LAUNCH_WORKSPACE, + EGG_DESKTOP_FILE_LAUNCH_DIRECTORY, + EGG_DESKTOP_FILE_LAUNCH_TIME, + EGG_DESKTOP_FILE_LAUNCH_FLAGS, + EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC, + EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID +} EggDesktopFileLaunchOption; + +/* Standard Keys */ +#define EGG_DESKTOP_FILE_GROUP "Desktop Entry" + +#define EGG_DESKTOP_FILE_KEY_TYPE "Type" +#define EGG_DESKTOP_FILE_KEY_VERSION "Version" +#define EGG_DESKTOP_FILE_KEY_NAME "Name" +#define EGG_DESKTOP_FILE_KEY_GENERIC_NAME "GenericName" +#define EGG_DESKTOP_FILE_KEY_NO_DISPLAY "NoDisplay" +#define EGG_DESKTOP_FILE_KEY_COMMENT "Comment" +#define EGG_DESKTOP_FILE_KEY_ICON "Icon" +#define EGG_DESKTOP_FILE_KEY_HIDDEN "Hidden" +#define EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN "OnlyShowIn" +#define EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN "NotShowIn" +#define EGG_DESKTOP_FILE_KEY_TRY_EXEC "TryExec" +#define EGG_DESKTOP_FILE_KEY_EXEC "Exec" +#define EGG_DESKTOP_FILE_KEY_PATH "Path" +#define EGG_DESKTOP_FILE_KEY_TERMINAL "Terminal" +#define EGG_DESKTOP_FILE_KEY_MIME_TYPE "MimeType" +#define EGG_DESKTOP_FILE_KEY_CATEGORIES "Categories" +#define EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY "StartupNotify" +#define EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS "StartupWMClass" +#define EGG_DESKTOP_FILE_KEY_URL "URL" + +/* Accessors */ +gboolean egg_desktop_file_has_key (EggDesktopFile *desktop_file, + const char *key, + GError **error); +char *egg_desktop_file_get_string (EggDesktopFile *desktop_file, + const char *key, + GError **error) G_GNUC_MALLOC; +char *egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + GError **error) G_GNUC_MALLOC; +gboolean egg_desktop_file_get_boolean (EggDesktopFile *desktop_file, + const char *key, + GError **error); +double egg_desktop_file_get_numeric (EggDesktopFile *desktop_file, + const char *key, + GError **error); +int egg_desktop_file_get_integer (EggDesktopFile *desktop_file, + const char *key, + GError **error); +char **egg_desktop_file_get_string_list (EggDesktopFile *desktop_file, + const char *key, + gsize *length, + GError **error) G_GNUC_MALLOC; +char **egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file, + const char *key, + const char *locale, + gsize *length, + GError **error) G_GNUC_MALLOC; + + +/* Errors */ +#define EGG_DESKTOP_FILE_ERROR egg_desktop_file_error_quark() + +GQuark egg_desktop_file_error_quark (void); + +typedef enum { + EGG_DESKTOP_FILE_ERROR_INVALID, + EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE, + EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION +} EggDesktopFileError; + +/* Global application desktop file */ +void egg_set_desktop_file (const char *desktop_file_path); +void egg_set_desktop_file_without_defaults (const char *desktop_file_path); +EggDesktopFile *egg_get_desktop_file (void); + + +G_END_DECLS + +#endif /* __EGG_DESKTOP_FILE_H__ */ diff --git a/server/smclient/eggsmclient-private.h b/server/smclient/eggsmclient-private.h new file mode 100644 index 0000000..0c98eee --- /dev/null +++ b/server/smclient/eggsmclient-private.h @@ -0,0 +1,59 @@ +/* eggsmclient-private.h + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __EGG_SM_CLIENT_PRIVATE_H__ +#define __EGG_SM_CLIENT_PRIVATE_H__ + +#include <gtk/gtk.h> + +#if !GTK_CHECK_VERSION(2,91,7) && !GTK_CHECK_VERSION(3,0,0) +/* GTK+ 3 includes this automatically */ +#include <gdkconfig.h> +#endif + +#include "eggsmclient.h" + +G_BEGIN_DECLS + +GKeyFile *egg_sm_client_save_state (EggSMClient *client); +void egg_sm_client_quit_requested (EggSMClient *client); +void egg_sm_client_quit_cancelled (EggSMClient *client); +void egg_sm_client_quit (EggSMClient *client); + +#if defined (GDK_WINDOWING_X11) +# ifdef EGG_SM_CLIENT_BACKEND_XSMP +GType egg_sm_client_xsmp_get_type (void); +EggSMClient *egg_sm_client_xsmp_new (void); +# endif +# ifdef EGG_SM_CLIENT_BACKEND_DBUS +GType egg_sm_client_dbus_get_type (void); +EggSMClient *egg_sm_client_dbus_new (void); +# endif +#elif defined (GDK_WINDOWING_WIN32) +GType egg_sm_client_win32_get_type (void); +EggSMClient *egg_sm_client_win32_new (void); +#elif defined (GDK_WINDOWING_QUARTZ) +GType egg_sm_client_osx_get_type (void); +EggSMClient *egg_sm_client_osx_new (void); +#endif + +G_END_DECLS + + +#endif /* __EGG_SM_CLIENT_PRIVATE_H__ */ diff --git a/server/smclient/eggsmclient-xsmp.c b/server/smclient/eggsmclient-xsmp.c new file mode 100644 index 0000000..d5cf3b5 --- /dev/null +++ b/server/smclient/eggsmclient-xsmp.c @@ -0,0 +1,1380 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * + * Inspired by various other pieces of code including GsmClient (C) + * 2001 Havoc Pennington, GnomeClient (C) 1998 Carsten Schaar, and twm + * session code (C) 1998 The Open Group. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "config.h" + +#include "eggsmclient.h" +#include "eggsmclient-private.h" + +#include "eggdesktopfile.h" + +#include <errno.h> +#include <fcntl.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <X11/SM/SMlib.h> + +#include <gdk/gdk.h> +#include <gdk/gdkx.h> + +#define EGG_TYPE_SM_CLIENT_XSMP (egg_sm_client_xsmp_get_type ()) +#define EGG_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP)) +#define EGG_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)) +#define EGG_IS_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP)) +#define EGG_IS_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP)) +#define EGG_SM_CLIENT_XSMP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass)) + +typedef struct _EggSMClientXSMP EggSMClientXSMP; +typedef struct _EggSMClientXSMPClass EggSMClientXSMPClass; + +/* These mostly correspond to the similarly-named states in section + * 9.1 of the XSMP spec. Some of the states there aren't represented + * here, because we don't need them. SHUTDOWN_CANCELLED is slightly + * different from the spec; we use it when the client is IDLE after a + * ShutdownCancelled message, but the application is still interacting + * and doesn't know the shutdown has been cancelled yet. + */ +typedef enum +{ + XSMP_STATE_IDLE, + XSMP_STATE_SAVE_YOURSELF, + XSMP_STATE_INTERACT_REQUEST, + XSMP_STATE_INTERACT, + XSMP_STATE_SAVE_YOURSELF_DONE, + XSMP_STATE_SHUTDOWN_CANCELLED, + XSMP_STATE_CONNECTION_CLOSED +} EggSMClientXSMPState; + +static const char *state_names[] = { + "idle", + "save-yourself", + "interact-request", + "interact", + "save-yourself-done", + "shutdown-cancelled", + "connection-closed" +}; + +#define EGG_SM_CLIENT_XSMP_STATE(xsmp) (state_names[(xsmp)->state]) + +struct _EggSMClientXSMP +{ + EggSMClient parent; + + SmcConn connection; + char *client_id; + + EggSMClientXSMPState state; + char **restart_command; + gboolean set_restart_command; + int restart_style; + + guint idle; + + /* Current SaveYourself state */ + guint expecting_initial_save_yourself : 1; + guint need_save_state : 1; + guint need_quit_requested : 1; + guint interact_errors : 1; + guint shutting_down : 1; + + /* Todo list */ + guint waiting_to_set_initial_properties : 1; + guint waiting_to_emit_quit : 1; + guint waiting_to_emit_quit_cancelled : 1; + guint waiting_to_save_myself : 1; + +}; + +struct _EggSMClientXSMPClass +{ + EggSMClientClass parent_class; + +}; + +static void sm_client_xsmp_startup (EggSMClient *client, + const char *client_id); +static void sm_client_xsmp_set_restart_command (EggSMClient *client, + int argc, + const char **argv); +static void sm_client_xsmp_will_quit (EggSMClient *client, + gboolean will_quit); +static gboolean sm_client_xsmp_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + +static void xsmp_save_yourself (SmcConn smc_conn, + SmPointer client_data, + int save_style, + Bool shutdown, + int interact_style, + Bool fast); +static void xsmp_die (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_save_complete (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_shutdown_cancelled (SmcConn smc_conn, + SmPointer client_data); +static void xsmp_interact (SmcConn smc_conn, + SmPointer client_data); + +static SmProp *array_prop (const char *name, + ...); +static SmProp *ptrarray_prop (const char *name, + GPtrArray *values); +static SmProp *string_prop (const char *name, + const char *value); +static SmProp *card8_prop (const char *name, + unsigned char value); + +static void set_properties (EggSMClientXSMP *xsmp, ...); +static void delete_properties (EggSMClientXSMP *xsmp, ...); + +static GPtrArray *generate_command (char **restart_command, + const char *client_id, + const char *state_file); + +static void save_state (EggSMClientXSMP *xsmp); +static void do_save_yourself (EggSMClientXSMP *xsmp); +static void update_pending_events (EggSMClientXSMP *xsmp); + +static void ice_init (void); +static gboolean process_ice_messages (IceConn ice_conn); +static void smc_error_handler (SmcConn smc_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + SmPointer values); + +G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT) + +static void +egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp) +{ + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + xsmp->connection = NULL; + xsmp->restart_style = SmRestartIfRunning; +} + +static void +egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass) +{ + EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass); + + sm_client_class->startup = sm_client_xsmp_startup; + sm_client_class->set_restart_command = sm_client_xsmp_set_restart_command; + sm_client_class->will_quit = sm_client_xsmp_will_quit; + sm_client_class->end_session = sm_client_xsmp_end_session; +} + +EggSMClient * +egg_sm_client_xsmp_new (void) +{ +#if GTK_CHECK_VERSION(3,0,0) + if (!GDK_IS_X11_DISPLAY_MANAGER (gdk_display_manager_get ())) + return NULL; +#endif + + if (!g_getenv ("SESSION_MANAGER")) + return NULL; + + return g_object_new (EGG_TYPE_SM_CLIENT_XSMP, NULL); +} + +static gboolean +sm_client_xsmp_set_initial_properties (gpointer user_data) +{ + EggSMClientXSMP *xsmp = user_data; + EggDesktopFile *desktop_file; + GPtrArray *clone, *restart; + char pid_str[64]; + + if (xsmp->idle) + { + g_source_remove (xsmp->idle); + xsmp->idle = 0; + } + xsmp->waiting_to_set_initial_properties = FALSE; + + if (egg_sm_client_get_mode () == EGG_SM_CLIENT_MODE_NO_RESTART) + xsmp->restart_style = SmRestartNever; + + /* Parse info out of desktop file */ + desktop_file = egg_get_desktop_file (); + if (desktop_file) + { + GError *err = NULL; + char *cmdline, **argv; + int argc; + + if (xsmp->restart_style == SmRestartIfRunning) + { + if (egg_desktop_file_get_boolean (desktop_file, + "X-GNOME-AutoRestart", NULL)) + xsmp->restart_style = SmRestartImmediately; + } + + if (!xsmp->set_restart_command) + { + cmdline = egg_desktop_file_parse_exec (desktop_file, NULL, &err); + if (cmdline && g_shell_parse_argv (cmdline, &argc, &argv, &err)) + { + egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp), + argc, (const char **)argv); + g_strfreev (argv); + } + else + { + g_warning ("Could not parse Exec line in desktop file: %s", + err->message); + g_error_free (err); + } + g_free (cmdline); + } + } + + if (!xsmp->set_restart_command) + xsmp->restart_command = g_strsplit (g_get_prgname (), " ", -1); + + clone = generate_command (xsmp->restart_command, NULL, NULL); + restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL); + + g_debug ("Setting initial properties"); + + /* Program, CloneCommand, RestartCommand, and UserID are required. + * ProcessID isn't required, but the SM may be able to do something + * useful with it. + */ + g_snprintf (pid_str, sizeof (pid_str), "%lu", (gulong) getpid ()); + set_properties (xsmp, + string_prop (SmProgram, g_get_prgname ()), + ptrarray_prop (SmCloneCommand, clone), + ptrarray_prop (SmRestartCommand, restart), + string_prop (SmUserID, g_get_user_name ()), + string_prop (SmProcessID, pid_str), + card8_prop (SmRestartStyleHint, xsmp->restart_style), + NULL); + g_ptr_array_free (clone, TRUE); + g_ptr_array_free (restart, TRUE); + + if (desktop_file) + { + set_properties (xsmp, + string_prop ("_GSM_DesktopFile", egg_desktop_file_get_source (desktop_file)), + NULL); + } + + update_pending_events (xsmp); + return FALSE; +} + +/* This gets called from two different places: xsmp_die() (when the + * server asks us to disconnect) and process_ice_messages() (when the + * server disconnects unexpectedly). + */ +static void +sm_client_xsmp_disconnect (EggSMClientXSMP *xsmp) +{ + SmcConn connection; + + if (!xsmp->connection) + return; + + g_debug ("Disconnecting"); + + connection = xsmp->connection; + xsmp->connection = NULL; + SmcCloseConnection (connection, 0, NULL); + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); +} + +static void +sm_client_xsmp_startup (EggSMClient *client, + const char *client_id) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + SmcCallbacks callbacks; + char *ret_client_id; + char error_string_ret[256]; + + xsmp->client_id = g_strdup (client_id); + + ice_init (); + SmcSetErrorHandler (smc_error_handler); + + callbacks.save_yourself.callback = xsmp_save_yourself; + callbacks.die.callback = xsmp_die; + callbacks.save_complete.callback = xsmp_save_complete; + callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled; + + callbacks.save_yourself.client_data = xsmp; + callbacks.die.client_data = xsmp; + callbacks.save_complete.client_data = xsmp; + callbacks.shutdown_cancelled.client_data = xsmp; + + client_id = NULL; + error_string_ret[0] = '\0'; + xsmp->connection = + SmcOpenConnection (NULL, xsmp, SmProtoMajor, SmProtoMinor, + SmcSaveYourselfProcMask | SmcDieProcMask | + SmcSaveCompleteProcMask | + SmcShutdownCancelledProcMask, + &callbacks, + xsmp->client_id, &ret_client_id, + sizeof (error_string_ret), error_string_ret); + + if (!xsmp->connection) + { + g_warning ("Failed to connect to the session manager: %s\n", + error_string_ret[0] ? + error_string_ret : "no error message given"); + xsmp->state = XSMP_STATE_CONNECTION_CLOSED; + return; + } + + /* We expect a pointless initial SaveYourself if either (a) we + * didn't have an initial client ID, or (b) we DID have an initial + * client ID, but the server rejected it and gave us a new one. + */ + if (!xsmp->client_id || + (ret_client_id && strcmp (xsmp->client_id, ret_client_id) != 0)) + xsmp->expecting_initial_save_yourself = TRUE; + + if (ret_client_id) + { + g_free (xsmp->client_id); + xsmp->client_id = g_strdup (ret_client_id); + free (ret_client_id); + + gdk_threads_enter (); +#if !GTK_CHECK_VERSION(2,23,3) && !GTK_CHECK_VERSION(3,0,0) + gdk_set_sm_client_id (xsmp->client_id); +#else + gdk_x11_set_sm_client_id (xsmp->client_id); +#endif + gdk_threads_leave (); + + g_debug ("Got client ID \"%s\"", xsmp->client_id); + } + + xsmp->state = XSMP_STATE_IDLE; + + /* Do not set the initial properties until we reach the main loop, + * so that the application has a chance to call + * egg_set_desktop_file(). (This may also help the session manager + * have a better idea of when the application is fully up and + * running.) + */ + xsmp->waiting_to_set_initial_properties = TRUE; + xsmp->idle = g_idle_add (sm_client_xsmp_set_initial_properties, client); +} + +static void +sm_client_xsmp_set_restart_command (EggSMClient *client, + int argc, + const char **argv) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + int i; + + g_strfreev (xsmp->restart_command); + + xsmp->restart_command = g_new (char *, argc + 1); + for (i = 0; i < argc; i++) + xsmp->restart_command[i] = g_strdup (argv[i]); + xsmp->restart_command[i] = NULL; + + xsmp->set_restart_command = TRUE; +} + +static void +sm_client_xsmp_will_quit (EggSMClient *client, + gboolean will_quit) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + + if (xsmp->state == XSMP_STATE_CONNECTION_CLOSED) + { + /* The session manager has already exited! Schedule a quit + * signal. + */ + xsmp->waiting_to_emit_quit = TRUE; + update_pending_events (xsmp); + return; + } + else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* We received a ShutdownCancelled message while the application + * was interacting; Schedule a quit_cancelled signal. + */ + xsmp->waiting_to_emit_quit_cancelled = TRUE; + update_pending_events (xsmp); + return; + } + + g_return_if_fail (xsmp->state == XSMP_STATE_INTERACT); + + g_debug ("Sending InteractDone(%s)", will_quit ? "False" : "True"); + SmcInteractDone (xsmp->connection, !will_quit); + + if (will_quit && xsmp->need_save_state) + save_state (xsmp); + + g_debug ("Sending SaveYourselfDone(%s)", will_quit ? "True" : "False"); + SmcSaveYourselfDone (xsmp->connection, will_quit); + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; +} + +static gboolean +sm_client_xsmp_end_session (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation) +{ + EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; + int save_type; + + /* To end the session via XSMP, we have to send a + * SaveYourselfRequest. We aren't allowed to do that if anything + * else is going on, but we don't want to expose this fact to the + * application. So we do our best to patch things up here... + * + * In the worst case, this method might block for some length of + * time in process_ice_messages, but the only time that code path is + * honestly likely to get hit is if the application tries to end the + * session as the very first thing it does, in which case it + * probably won't actually block anyway. It's not worth gunking up + * the API to try to deal nicely with the other 0.01% of cases where + * this happens. + */ + + while (xsmp->state != XSMP_STATE_IDLE || + xsmp->expecting_initial_save_yourself) + { + /* If we're already shutting down, we don't need to do anything. */ + if (xsmp->shutting_down) + return TRUE; + + switch (xsmp->state) + { + case XSMP_STATE_CONNECTION_CLOSED: + return FALSE; + + case XSMP_STATE_SAVE_YOURSELF: + /* Trying to log out from the save_state callback? Whatever. + * Abort the save_state. + */ + SmcSaveYourselfDone (xsmp->connection, FALSE); + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; + break; + + case XSMP_STATE_INTERACT_REQUEST: + case XSMP_STATE_INTERACT: + case XSMP_STATE_SHUTDOWN_CANCELLED: + /* Already in a shutdown-related state, just ignore + * the new shutdown request... + */ + return TRUE; + + case XSMP_STATE_IDLE: + if (xsmp->waiting_to_set_initial_properties) + sm_client_xsmp_set_initial_properties (xsmp); + + if (!xsmp->expecting_initial_save_yourself) + break; + /* else fall through */ + + case XSMP_STATE_SAVE_YOURSELF_DONE: + /* We need to wait for some response from the server.*/ + process_ice_messages (SmcGetIceConnection (xsmp->connection)); + break; + + default: + /* Hm... shouldn't happen */ + return FALSE; + } + } + + /* xfce4-session will do the wrong thing if we pass SmSaveGlobal and + * the user chooses to save the session. But gnome-session will do + * the wrong thing if we pass SmSaveBoth and the user chooses NOT to + * save the session... Sigh. + */ + if (!strcmp (SmcVendor (xsmp->connection), "xfce4-session")) + save_type = SmSaveBoth; + else + save_type = SmSaveGlobal; + + g_debug ("Sending SaveYourselfRequest(SmSaveGlobal, Shutdown, SmInteractStyleAny, %sFast)", request_confirmation ? "!" : ""); + SmcRequestSaveYourself (xsmp->connection, + save_type, + True, /* shutdown */ + SmInteractStyleAny, + !request_confirmation, /* fast */ + True /* global */); + return TRUE; +} + +static gboolean +idle_do_pending_events (gpointer data) +{ + EggSMClientXSMP *xsmp = data; + EggSMClient *client = data; + + gdk_threads_enter (); + + xsmp->idle = 0; + + if (xsmp->waiting_to_emit_quit) + { + xsmp->waiting_to_emit_quit = FALSE; + egg_sm_client_quit (client); + goto out; + } + + if (xsmp->waiting_to_emit_quit_cancelled) + { + xsmp->waiting_to_emit_quit_cancelled = FALSE; + egg_sm_client_quit_cancelled (client); + xsmp->state = XSMP_STATE_IDLE; + } + + if (xsmp->waiting_to_save_myself) + { + xsmp->waiting_to_save_myself = FALSE; + do_save_yourself (xsmp); + } + + out: + gdk_threads_leave (); + return FALSE; +} + +static void +update_pending_events (EggSMClientXSMP *xsmp) +{ + gboolean want_idle = + xsmp->waiting_to_emit_quit || + xsmp->waiting_to_emit_quit_cancelled || + xsmp->waiting_to_save_myself; + + if (want_idle) + { + if (xsmp->idle == 0) + xsmp->idle = g_idle_add (idle_do_pending_events, xsmp); + } + else + { + if (xsmp->idle != 0) + g_source_remove (xsmp->idle); + xsmp->idle = 0; + } +} + +static void +fix_broken_state (EggSMClientXSMP *xsmp, const char *message, + gboolean send_interact_done, + gboolean send_save_yourself_done) +{ + g_warning ("Received XSMP %s message in state %s: client or server error", + message, EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + /* Forget any pending SaveYourself plans we had */ + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); + + if (send_interact_done) + SmcInteractDone (xsmp->connection, False); + if (send_save_yourself_done) + SmcSaveYourselfDone (xsmp->connection, True); + + xsmp->state = send_save_yourself_done ? XSMP_STATE_SAVE_YOURSELF_DONE : XSMP_STATE_IDLE; +} + +/* SM callbacks */ + +static void +xsmp_save_yourself (SmcConn smc_conn, + SmPointer client_data, + int save_type, + Bool shutdown, + int interact_style, + Bool fast) +{ + EggSMClientXSMP *xsmp = client_data; + gboolean wants_quit_requested; + + g_debug ("Received SaveYourself(%s, %s, %s, %s) in state %s", + save_type == SmSaveLocal ? "SmSaveLocal" : + save_type == SmSaveGlobal ? "SmSaveGlobal" : "SmSaveBoth", + shutdown ? "Shutdown" : "!Shutdown", + interact_style == SmInteractStyleAny ? "SmInteractStyleAny" : + interact_style == SmInteractStyleErrors ? "SmInteractStyleErrors" : + "SmInteractStyleNone", fast ? "Fast" : "!Fast", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state != XSMP_STATE_IDLE && + xsmp->state != XSMP_STATE_SHUTDOWN_CANCELLED) + { + fix_broken_state (xsmp, "SaveYourself", FALSE, TRUE); + return; + } + + if (xsmp->waiting_to_set_initial_properties) + sm_client_xsmp_set_initial_properties (xsmp); + + /* If this is the initial SaveYourself, ignore it; we've already set + * properties and there's no reason to actually save state too. + */ + if (xsmp->expecting_initial_save_yourself) + { + xsmp->expecting_initial_save_yourself = FALSE; + + if (save_type == SmSaveLocal && + interact_style == SmInteractStyleNone && + !shutdown && !fast) + { + g_debug ("Sending SaveYourselfDone(True) for initial SaveYourself"); + SmcSaveYourselfDone (xsmp->connection, True); + /* As explained in the comment at the end of + * do_save_yourself(), SAVE_YOURSELF_DONE is the correct + * state here, not IDLE. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; + return; + } + else + g_warning ("First SaveYourself was not the expected one!"); + } + + /* Even ignoring the "fast" flag completely, there are still 18 + * different combinations of save_type, shutdown and interact_style. + * We interpret them as follows: + * + * Type Shutdown Interact Interpretation + * G F A/E/N do nothing (1) + * G T N do nothing (1)* + * G T A/E quit_requested (2) + * L/B F A/E/N save_state (3) + * L/B T N save_state (3)* + * L/B T A/E quit_requested, then save_state (4) + * + * 1. Do nothing, because the SM asked us to do something + * uninteresting (save open files, but then don't quit + * afterward) or rude (save open files without asking the user + * for confirmation). + * + * 2. Request interaction and then emit ::quit_requested. This + * perhaps isn't quite correct for the SmInteractStyleErrors + * case, but we don't care. + * + * 3. Emit ::save_state. The SmSaveBoth SaveYourselfs in these + * rows essentially get demoted to SmSaveLocal, because their + * Global halves correspond to "do nothing". + * + * 4. Request interaction, emit ::quit_requested, and then emit + * ::save_state after interacting. This is the SmSaveBoth + * equivalent of #2, but we also promote SmSaveLocal shutdown + * SaveYourselfs to SmSaveBoth here, because we want to give + * the user a chance to save open files before quitting. + * + * (* It would be nice if we could do something useful when the + * session manager sends a SaveYourself with shutdown True and + * SmInteractStyleNone. But we can't, so we just pretend it didn't + * even tell us it was shutting down. The docs for ::quit mention + * that it might not always be preceded by ::quit_requested.) + */ + + /* As an optimization, we don't actually request interaction and + * emit ::quit_requested if the application isn't listening to the + * signal. + */ + wants_quit_requested = g_signal_has_handler_pending (xsmp, g_signal_lookup ("quit_requested", EGG_TYPE_SM_CLIENT), 0, FALSE); + + xsmp->need_save_state = (save_type != SmSaveGlobal); + xsmp->need_quit_requested = (shutdown && wants_quit_requested && + interact_style != SmInteractStyleNone); + xsmp->interact_errors = (interact_style == SmInteractStyleErrors); + + xsmp->shutting_down = shutdown; + + do_save_yourself (xsmp); +} + +static void +do_save_yourself (EggSMClientXSMP *xsmp) +{ + if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* The SM cancelled a previous SaveYourself, but we haven't yet + * had a chance to tell the application, so we can't start + * processing this SaveYourself yet. + */ + xsmp->waiting_to_save_myself = TRUE; + update_pending_events (xsmp); + return; + } + + if (xsmp->need_quit_requested) + { + xsmp->state = XSMP_STATE_INTERACT_REQUEST; + + g_debug ("Sending InteractRequest(%s)", + xsmp->interact_errors ? "Error" : "Normal"); + SmcInteractRequest (xsmp->connection, + xsmp->interact_errors ? SmDialogError : SmDialogNormal, + xsmp_interact, + xsmp); + return; + } + + if (xsmp->need_save_state) + { + save_state (xsmp); + + /* Though unlikely, the client could have been disconnected + * while the application was saving its state. + */ + if (!xsmp->connection) + return; + } + + g_debug ("Sending SaveYourselfDone(True)"); + SmcSaveYourselfDone (xsmp->connection, True); + + /* The client state diagram in the XSMP spec says that after a + * non-shutdown SaveYourself, we go directly back to "idle". But + * everything else in both the XSMP spec and the libSM docs + * disagrees. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF_DONE; +} + +static void +save_state (EggSMClientXSMP *xsmp) +{ + GKeyFile *state_file; + char *state_file_path, *data; + EggDesktopFile *desktop_file; + GPtrArray *restart; + int offset, fd; + + /* We set xsmp->state before emitting save_state, but our caller is + * responsible for setting it back afterward. + */ + xsmp->state = XSMP_STATE_SAVE_YOURSELF; + + state_file = egg_sm_client_save_state ((EggSMClient *)xsmp); + if (!state_file) + { + restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL); + set_properties (xsmp, + ptrarray_prop (SmRestartCommand, restart), + NULL); + g_ptr_array_free (restart, TRUE); + delete_properties (xsmp, SmDiscardCommand, NULL); + return; + } + + desktop_file = egg_get_desktop_file (); + if (desktop_file) + { + GKeyFile *merged_file; + char *desktop_file_path; + + merged_file = g_key_file_new (); + desktop_file_path = + g_filename_from_uri (egg_desktop_file_get_source (desktop_file), + NULL, NULL); + if (desktop_file_path && + g_key_file_load_from_file (merged_file, desktop_file_path, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, NULL)) + { + guint g, k, i; + char **groups, **keys, *value, *exec; + + groups = g_key_file_get_groups (state_file, NULL); + for (g = 0; groups[g]; g++) + { + keys = g_key_file_get_keys (state_file, groups[g], NULL, NULL); + for (k = 0; keys[k]; k++) + { + value = g_key_file_get_value (state_file, groups[g], + keys[k], NULL); + if (value) + { + g_key_file_set_value (merged_file, groups[g], + keys[k], value); + g_free (value); + } + } + g_strfreev (keys); + } + g_strfreev (groups); + + g_key_file_free (state_file); + state_file = merged_file; + + /* Update Exec key using "--sm-client-state-file %k" */ + restart = generate_command (xsmp->restart_command, + NULL, "%k"); + for (i = 0; i < restart->len; i++) + restart->pdata[i] = g_shell_quote (restart->pdata[i]); + g_ptr_array_add (restart, NULL); + exec = g_strjoinv (" ", (char **)restart->pdata); + g_strfreev ((char **)restart->pdata); + g_ptr_array_free (restart, FALSE); + + g_key_file_set_string (state_file, EGG_DESKTOP_FILE_GROUP, + EGG_DESKTOP_FILE_KEY_EXEC, + exec); + g_free (exec); + } + else + desktop_file = NULL; + + g_free (desktop_file_path); + } + + /* Now write state_file to disk. (We can't use mktemp(), because + * that requires the filename to end with "XXXXXX", and we want + * it to end with ".desktop".) + */ + + data = g_key_file_to_data (state_file, NULL, NULL); + g_key_file_free (state_file); + + offset = 0; + while (1) + { + state_file_path = g_strdup_printf ("%s%csession-state%c%s-%ld.%s", + g_get_user_config_dir (), + G_DIR_SEPARATOR, G_DIR_SEPARATOR, + g_get_prgname (), + (long)time (NULL) + offset, + desktop_file ? "desktop" : "state"); + + fd = open (state_file_path, O_WRONLY | O_CREAT | O_EXCL, 0644); + if (fd == -1) + { + if (errno == EEXIST) + { + offset++; + g_free (state_file_path); + continue; + } + else if (errno == ENOTDIR || errno == ENOENT) + { + char *sep = strrchr (state_file_path, G_DIR_SEPARATOR); + + *sep = '\0'; + if (g_mkdir_with_parents (state_file_path, 0755) != 0) + { + g_warning ("Could not create directory '%s'", + state_file_path); + g_free (state_file_path); + state_file_path = NULL; + break; + } + + continue; + } + + g_warning ("Could not create file '%s': %s", + state_file_path, g_strerror (errno)); + g_free (state_file_path); + state_file_path = NULL; + break; + } + + close (fd); + g_file_set_contents (state_file_path, data, -1, NULL); + break; + } + g_free (data); + + restart = generate_command (xsmp->restart_command, xsmp->client_id, + state_file_path); + set_properties (xsmp, + ptrarray_prop (SmRestartCommand, restart), + NULL); + g_ptr_array_free (restart, TRUE); + + if (state_file_path) + { + set_properties (xsmp, + array_prop (SmDiscardCommand, + "/bin/rm", "-rf", state_file_path, + NULL), + NULL); + g_free (state_file_path); + } +} + +static void +xsmp_interact (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received Interact message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state != XSMP_STATE_INTERACT_REQUEST) + { + fix_broken_state (xsmp, "Interact", TRUE, TRUE); + return; + } + + xsmp->state = XSMP_STATE_INTERACT; + egg_sm_client_quit_requested (client); +} + +static void +xsmp_die (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received Die message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + sm_client_xsmp_disconnect (xsmp); + egg_sm_client_quit (client); +} + +static void +xsmp_save_complete (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + + g_debug ("Received SaveComplete message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE) + xsmp->state = XSMP_STATE_IDLE; + else + fix_broken_state (xsmp, "SaveComplete", FALSE, FALSE); +} + +static void +xsmp_shutdown_cancelled (SmcConn smc_conn, + SmPointer client_data) +{ + EggSMClientXSMP *xsmp = client_data; + EggSMClient *client = client_data; + + g_debug ("Received ShutdownCancelled message in state %s", + EGG_SM_CLIENT_XSMP_STATE (xsmp)); + + xsmp->shutting_down = FALSE; + + if (xsmp->state == XSMP_STATE_SAVE_YOURSELF_DONE) + { + /* We've finished interacting and now the SM has agreed to + * cancel the shutdown. + */ + xsmp->state = XSMP_STATE_IDLE; + egg_sm_client_quit_cancelled (client); + } + else if (xsmp->state == XSMP_STATE_SHUTDOWN_CANCELLED) + { + /* Hm... ok, so we got a shutdown SaveYourself, which got + * cancelled, but the application was still interacting, so we + * didn't tell it yet, and then *another* SaveYourself arrived, + * which we must still be waiting to tell the app about, except + * that now that SaveYourself has been cancelled too! Dizzy yet? + */ + xsmp->waiting_to_save_myself = FALSE; + update_pending_events (xsmp); + } + else + { + g_debug ("Sending SaveYourselfDone(False)"); + SmcSaveYourselfDone (xsmp->connection, False); + + if (xsmp->state == XSMP_STATE_INTERACT) + { + /* The application is currently interacting, so we can't + * tell it about the cancellation yet; we will wait until + * after it calls egg_sm_client_will_quit(). + */ + xsmp->state = XSMP_STATE_SHUTDOWN_CANCELLED; + } + else + { + /* The shutdown was cancelled before the application got a + * chance to interact. + */ + xsmp->state = XSMP_STATE_IDLE; + } + } +} + +/* Utilities */ + +/* Create a restart/clone/Exec command based on @restart_command. + * If @client_id is non-%NULL, add "--sm-client-id @client_id". + * If @state_file is non-%NULL, add "--sm-client-state-file @state_file". + * + * None of the input strings are g_strdup()ed; the caller must keep + * them around until it is done with the returned GPtrArray, and must + * then free the array, but not its contents. + */ +static GPtrArray * +generate_command (char **restart_command, const char *client_id, + const char *state_file) +{ + GPtrArray *cmd; + int i; + + cmd = g_ptr_array_new (); + g_ptr_array_add (cmd, restart_command[0]); + + if (client_id) + { + g_ptr_array_add (cmd, (char *)"--sm-client-id"); + g_ptr_array_add (cmd, (char *)client_id); + } + + if (state_file) + { + g_ptr_array_add (cmd, (char *)"--sm-client-state-file"); + g_ptr_array_add (cmd, (char *)state_file); + } + + for (i = 1; restart_command[i]; i++) + g_ptr_array_add (cmd, restart_command[i]); + + return cmd; +} + +/* Takes a NULL-terminated list of SmProp * values, created by + * array_prop, ptrarray_prop, string_prop, card8_prop, sets them, and + * frees them. + */ +static void +set_properties (EggSMClientXSMP *xsmp, ...) +{ + GPtrArray *props; + SmProp *prop; + va_list ap; + guint i; + + props = g_ptr_array_new (); + + va_start (ap, xsmp); + while ((prop = va_arg (ap, SmProp *))) + g_ptr_array_add (props, prop); + va_end (ap); + + if (xsmp->connection) + { + SmcSetProperties (xsmp->connection, props->len, + (SmProp **)props->pdata); + } + + for (i = 0; i < props->len; i++) + { + prop = props->pdata[i]; + g_free (prop->vals); + g_free (prop); + } + g_ptr_array_free (props, TRUE); +} + +/* Takes a NULL-terminated list of property names and deletes them. */ +static void +delete_properties (EggSMClientXSMP *xsmp, ...) +{ + GPtrArray *props; + char *prop; + va_list ap; + + if (!xsmp->connection) + return; + + props = g_ptr_array_new (); + + va_start (ap, xsmp); + while ((prop = va_arg (ap, char *))) + g_ptr_array_add (props, prop); + va_end (ap); + + SmcDeleteProperties (xsmp->connection, props->len, + (char **)props->pdata); + + g_ptr_array_free (props, TRUE); +} + +/* Takes an array of strings and creates a LISTofARRAY8 property. The + * strings are neither dupped nor freed; they need to remain valid + * until you're done with the SmProp. + */ +static SmProp * +array_prop (const char *name, ...) +{ + SmProp *prop; + SmPropValue pv; + GArray *vals; + char *value; + va_list ap; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = (char *)SmLISTofARRAY8; + + vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue)); + + va_start (ap, name); + while ((value = va_arg (ap, char *))) + { + pv.length = strlen (value); + pv.value = value; + g_array_append_val (vals, pv); + } + + prop->num_vals = vals->len; + prop->vals = (SmPropValue *)vals->data; + + g_array_free (vals, FALSE); + + return prop; +} + +/* Takes a GPtrArray of strings and creates a LISTofARRAY8 property. + * The array contents are neither dupped nor freed; they need to + * remain valid until you're done with the SmProp. + */ +static SmProp * +ptrarray_prop (const char *name, GPtrArray *values) +{ + SmProp *prop; + SmPropValue pv; + GArray *vals; + guint i; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = (char *)SmLISTofARRAY8; + + vals = g_array_new (FALSE, FALSE, sizeof (SmPropValue)); + + for (i = 0; i < values->len; i++) + { + pv.length = strlen (values->pdata[i]); + pv.value = values->pdata[i]; + g_array_append_val (vals, pv); + } + + prop->num_vals = vals->len; + prop->vals = (SmPropValue *)vals->data; + + g_array_free (vals, FALSE); + + return prop; +} + +/* Takes a string and creates an ARRAY8 property. The string is + * neither dupped nor freed; it needs to remain valid until you're + * done with the SmProp. + */ +static SmProp * +string_prop (const char *name, const char *value) +{ + SmProp *prop; + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = (char *)SmARRAY8; + + prop->num_vals = 1; + prop->vals = g_new (SmPropValue, 1); + + prop->vals[0].length = strlen (value); + prop->vals[0].value = (char *)value; + + return prop; +} + +/* Takes a char and creates a CARD8 property. */ +static SmProp * +card8_prop (const char *name, unsigned char value) +{ + SmProp *prop; + char *card8val; + + /* To avoid having to allocate and free prop->vals[0], we cheat and + * make vals a 2-element-long array and then use the second element + * to store value. + */ + + prop = g_new (SmProp, 1); + prop->name = (char *)name; + prop->type = (char *)SmCARD8; + + prop->num_vals = 1; + prop->vals = g_new (SmPropValue, 2); + card8val = (char *)(&prop->vals[1]); + card8val[0] = value; + + prop->vals[0].length = 1; + prop->vals[0].value = card8val; + + return prop; +} + +/* ICE code. This makes no effort to play nice with anyone else trying + * to use libICE. Fortunately, no one uses libICE for anything other + * than SM. (DCOP uses ICE, but it has its own private copy of + * libICE.) + * + * When this moves to gtk, it will need to be cleverer, to avoid + * tripping over old apps that use GnomeClient or that use libSM + * directly. + */ + +#include <X11/ICE/ICElib.h> +#include <fcntl.h> + +static void ice_error_handler (IceConn ice_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + IcePointer values); +static void ice_io_error_handler (IceConn ice_conn); +static void ice_connection_watch (IceConn ice_conn, + IcePointer client_data, + Bool opening, + IcePointer *watch_data); + +static void +ice_init (void) +{ + IceSetIOErrorHandler (ice_io_error_handler); + IceSetErrorHandler (ice_error_handler); + IceAddConnectionWatch (ice_connection_watch, NULL); +} + +static gboolean +process_ice_messages (IceConn ice_conn) +{ + IceProcessMessagesStatus status; + + gdk_threads_enter (); + status = IceProcessMessages (ice_conn, NULL, NULL); + gdk_threads_leave (); + + switch (status) + { + case IceProcessMessagesSuccess: + return TRUE; + + case IceProcessMessagesIOError: + sm_client_xsmp_disconnect (IceGetConnectionContext (ice_conn)); + return FALSE; + + case IceProcessMessagesConnectionClosed: + return FALSE; + + default: + g_assert_not_reached (); + } +} + +static gboolean +ice_iochannel_watch (GIOChannel *channel, + GIOCondition condition, + gpointer client_data) +{ + return process_ice_messages (client_data); +} + +static void +ice_connection_watch (IceConn ice_conn, + IcePointer client_data, + Bool opening, + IcePointer *watch_data) +{ + guint watch_id; + + if (opening) + { + GIOChannel *channel; + int fd = IceConnectionNumber (ice_conn); + + fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC); + channel = g_io_channel_unix_new (fd); + watch_id = g_io_add_watch (channel, G_IO_IN | G_IO_ERR, + ice_iochannel_watch, ice_conn); + g_io_channel_unref (channel); + + *watch_data = GUINT_TO_POINTER (watch_id); + } + else + { + watch_id = GPOINTER_TO_UINT (*watch_data); + g_source_remove (watch_id); + } +} + +static void +ice_error_handler (IceConn ice_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + IcePointer values) +{ + /* Do nothing */ +} + +static void +ice_io_error_handler (IceConn ice_conn) +{ + /* Do nothing */ +} + +static void +smc_error_handler (SmcConn smc_conn, + Bool swap, + int offending_minor_opcode, + unsigned long offending_sequence, + int error_class, + int severity, + SmPointer values) +{ + /* Do nothing */ +} diff --git a/server/smclient/eggsmclient.c b/server/smclient/eggsmclient.c new file mode 100644 index 0000000..92be8a7 --- /dev/null +++ b/server/smclient/eggsmclient.c @@ -0,0 +1,604 @@ +/* + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include "config.h" + +#include <string.h> +#include <glib/gi18n.h> + +#include "eggsmclient.h" +#include "eggsmclient-private.h" + +static void egg_sm_client_debug_handler (const char *log_domain, + GLogLevelFlags log_level, + const char *message, + gpointer user_data); + +enum { + SAVE_STATE, + QUIT_REQUESTED, + QUIT_CANCELLED, + QUIT, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +struct _EggSMClientPrivate { + GKeyFile *state_file; +}; + +#define EGG_SM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_SM_CLIENT, EggSMClientPrivate)) + +G_DEFINE_TYPE (EggSMClient, egg_sm_client, G_TYPE_OBJECT) + +static EggSMClient *global_client; +static EggSMClientMode global_client_mode = EGG_SM_CLIENT_MODE_NORMAL; + +static void +egg_sm_client_init (EggSMClient *client) +{ + ; +} + +static void +egg_sm_client_class_init (EggSMClientClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (EggSMClientPrivate)); + + /** + * EggSMClient::save_state: + * @client: the client + * @state_file: a #GKeyFile to save state information into + * + * Emitted when the session manager has requested that the + * application save information about its current state. The + * application should save its state into @state_file, and then the + * session manager may then restart the application in a future + * session and tell it to initialize itself from that state. + * + * You should not save any data into @state_file's "start group" + * (ie, the %NULL group). Instead, applications should save their + * data into groups with names that start with the application name, + * and libraries that connect to this signal should save their data + * into groups with names that start with the library name. + * + * Alternatively, rather than (or in addition to) using @state_file, + * the application can save its state by calling + * egg_sm_client_set_restart_command() during the processing of this + * signal (eg, to include a list of files to open). + **/ + signals[SAVE_STATE] = + g_signal_new ("save_state", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, save_state), + NULL, NULL, + g_cclosure_marshal_VOID__POINTER, + G_TYPE_NONE, + 1, G_TYPE_POINTER); + + /** + * EggSMClient::quit_requested: + * @client: the client + * + * Emitted when the session manager requests that the application + * exit (generally because the user is logging out). The application + * should decide whether or not it is willing to quit (perhaps after + * asking the user what to do with documents that have unsaved + * changes) and then call egg_sm_client_will_quit(), passing %TRUE + * or %FALSE to give its answer to the session manager. (It does not + * need to give an answer before returning from the signal handler; + * it can interact with the user asynchronously and then give its + * answer later on.) If the application does not connect to this + * signal, then #EggSMClient will automatically return %TRUE on its + * behalf. + * + * The application should not save its session state as part of + * handling this signal; if the user has requested that the session + * be saved when logging out, then ::save_state will be emitted + * separately. + * + * If the application agrees to quit, it should then wait for either + * the ::quit_cancelled or ::quit signals to be emitted. + **/ + signals[QUIT_REQUESTED] = + g_signal_new ("quit_requested", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit_requested), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /** + * EggSMClient::quit_cancelled: + * @client: the client + * + * Emitted when the session manager decides to cancel a logout after + * the application has already agreed to quit. After receiving this + * signal, the application can go back to what it was doing before + * receiving the ::quit_requested signal. + **/ + signals[QUIT_CANCELLED] = + g_signal_new ("quit_cancelled", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit_cancelled), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /** + * EggSMClient::quit: + * @client: the client + * + * Emitted when the session manager wants the application to quit + * (generally because the user is logging out). The application + * should exit as soon as possible after receiving this signal; if + * it does not, the session manager may choose to forcibly kill it. + * + * Normally a GUI application would only be sent a ::quit if it + * agreed to quit in response to a ::quit_requested signal. However, + * this is not guaranteed; in some situations the session manager + * may decide to end the session without giving applications a + * chance to object. + **/ + signals[QUIT] = + g_signal_new ("quit", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EggSMClientClass, quit), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); +} + +static gboolean sm_client_disable = FALSE; +static char *sm_client_state_file = NULL; +static char *sm_client_id = NULL; +static char *sm_config_prefix = NULL; + +static gboolean +sm_client_post_parse_func (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error) +{ + EggSMClient *client = egg_sm_client_get (); + + if (sm_client_id == NULL) + { + const gchar *desktop_autostart_id; + + desktop_autostart_id = g_getenv ("DESKTOP_AUTOSTART_ID"); + + if (desktop_autostart_id != NULL) + sm_client_id = g_strdup (desktop_autostart_id); + } + + /* Unset DESKTOP_AUTOSTART_ID in order to avoid child processes to + * use the same client id. */ + g_unsetenv ("DESKTOP_AUTOSTART_ID"); + + if (global_client_mode != EGG_SM_CLIENT_MODE_DISABLED && + EGG_SM_CLIENT_GET_CLASS (client)->startup) + EGG_SM_CLIENT_GET_CLASS (client)->startup (client, sm_client_id); + return TRUE; +} + +/** + * egg_sm_client_get_option_group: + * + * Creates a %GOptionGroup containing the session-management-related + * options. You should add this group to the application's + * %GOptionContext if you want to use #EggSMClient. + * + * Return value: the %GOptionGroup + **/ +GOptionGroup * +egg_sm_client_get_option_group (void) +{ + const GOptionEntry entries[] = { + { "sm-client-disable", 0, 0, + G_OPTION_ARG_NONE, &sm_client_disable, + N_("Disable connection to session manager"), NULL }, + { "sm-client-state-file", 0, 0, + G_OPTION_ARG_FILENAME, &sm_client_state_file, + N_("Specify file containing saved configuration"), N_("FILE") }, + { "sm-client-id", 0, 0, + G_OPTION_ARG_STRING, &sm_client_id, + N_("Specify session management ID"), N_("ID") }, + /* GnomeClient compatibility option */ + { "sm-disable", 0, G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_NONE, &sm_client_disable, + NULL, NULL }, + /* GnomeClient compatibility option. This is a dummy option that only + * exists so that sessions saved by apps with GnomeClient can be restored + * later when they've switched to EggSMClient. See bug #575308. + */ + { "sm-config-prefix", 0, G_OPTION_FLAG_HIDDEN, + G_OPTION_ARG_STRING, &sm_config_prefix, + NULL, NULL }, + { NULL } + }; + GOptionGroup *group; + + /* Use our own debug handler for the "EggSMClient" domain. */ + g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, + egg_sm_client_debug_handler, NULL); + + group = g_option_group_new ("sm-client", + _("Session management options:"), + _("Show session management options"), + NULL, NULL); + g_option_group_add_entries (group, entries); + g_option_group_set_parse_hooks (group, NULL, sm_client_post_parse_func); + + return group; +} + +/** + * egg_sm_client_set_mode: + * @mode: an #EggSMClient mode + * + * Sets the "mode" of #EggSMClient as follows: + * + * %EGG_SM_CLIENT_MODE_DISABLED: Session management is completely + * disabled, until the mode is changed again. The application will + * not even connect to the session manager. (egg_sm_client_get() + * will still return an #EggSMClient object.) + * + * %EGG_SM_CLIENT_MODE_NO_RESTART: The application will connect to + * the session manager (and thus will receive notification when the + * user is logging out, etc), but will request to not be + * automatically restarted with saved state in future sessions. + * + * %EGG_SM_CLIENT_MODE_NORMAL: The default. #EggSMCLient will + * function normally. + * + * This must be called before the application's main loop begins and + * before any call to egg_sm_client_get(), unless the mode was set + * earlier to %EGG_SM_CLIENT_MODE_DISABLED and this call enables + * session management. Note that option parsing will call + * egg_sm_client_get(). + **/ +void +egg_sm_client_set_mode (EggSMClientMode mode) +{ + EggSMClientMode old_mode = global_client_mode; + + g_return_if_fail (global_client == NULL || global_client_mode == EGG_SM_CLIENT_MODE_DISABLED); + g_return_if_fail (!(global_client != NULL && mode == EGG_SM_CLIENT_MODE_DISABLED)); + + global_client_mode = mode; + + if (global_client != NULL && old_mode == EGG_SM_CLIENT_MODE_DISABLED) + { + if (EGG_SM_CLIENT_GET_CLASS (global_client)->startup) + EGG_SM_CLIENT_GET_CLASS (global_client)->startup (global_client, sm_client_id); + } +} + +/** + * egg_sm_client_get_mode: + * + * Gets the global #EggSMClientMode. See egg_sm_client_set_mode() + * for details. + * + * Return value: the global #EggSMClientMode + **/ +EggSMClientMode +egg_sm_client_get_mode (void) +{ + return global_client_mode; +} + +/** + * egg_sm_client_get: + * + * Returns the master #EggSMClient for the application. + * + * On platforms that support saved sessions (ie, POSIX/X11), the + * application will only request to be restarted by the session + * manager if you call egg_set_desktop_file() to set an application + * desktop file. In particular, if the desktop file contains the key + * "X + * + * Return value: the master #EggSMClient. + **/ +EggSMClient * +egg_sm_client_get (void) +{ + if (!global_client) + { + if (!sm_client_disable) + { +#if defined (GDK_WINDOWING_WIN32) + global_client = egg_sm_client_win32_new (); +#elif defined (GDK_WINDOWING_QUARTZ) + global_client = egg_sm_client_osx_new (); +#else + /* If both D-Bus and XSMP are compiled in, try XSMP first + * (since it supports state saving) and fall back to D-Bus + * if XSMP isn't available. + */ +# ifdef EGG_SM_CLIENT_BACKEND_XSMP + global_client = egg_sm_client_xsmp_new (); +# endif +# ifdef EGG_SM_CLIENT_BACKEND_DBUS + if (!global_client) + global_client = egg_sm_client_dbus_new (); +# endif +#endif + } + + /* Fallback: create a dummy client, so that callers don't have + * to worry about a %NULL return value. + */ + if (!global_client) + global_client = g_object_new (EGG_TYPE_SM_CLIENT, NULL); + } + + return global_client; +} + +/** + * egg_sm_client_is_resumed: + * @client: the client + * + * Checks whether or not the current session has been resumed from + * a previous saved session. If so, the application should call + * egg_sm_client_get_state_file() and restore its state from the + * returned #GKeyFile. + * + * Return value: %TRUE if the session has been resumed + **/ +gboolean +egg_sm_client_is_resumed (EggSMClient *client) +{ + g_return_val_if_fail (client == global_client, FALSE); + + return sm_client_state_file != NULL; +} + +/** + * egg_sm_client_get_state_file: + * @client: the client + * + * If the application was resumed by the session manager, this will + * return the #GKeyFile containing its state from the previous + * session. + * + * Note that other libraries and #EggSMClient itself may also store + * state in the key file, so if you call egg_sm_client_get_groups(), + * on it, the return value will likely include groups that you did not + * put there yourself. (It is also not guaranteed that the first + * group created by the application will still be the "start group" + * when it is resumed.) + * + * Return value: the #GKeyFile containing the application's earlier + * state, or %NULL on error. You should not free this key file; it + * is owned by @client. + **/ +GKeyFile * +egg_sm_client_get_state_file (EggSMClient *client) +{ + EggSMClientPrivate *priv = EGG_SM_CLIENT_GET_PRIVATE (client); + char *state_file_path; + GError *err = NULL; + + g_return_val_if_fail (client == global_client, NULL); + + if (!sm_client_state_file) + return NULL; + if (priv->state_file) + return priv->state_file; + + if (!strncmp (sm_client_state_file, "file://", 7)) + state_file_path = g_filename_from_uri (sm_client_state_file, NULL, NULL); + else + state_file_path = g_strdup (sm_client_state_file); + + priv->state_file = g_key_file_new (); + if (!g_key_file_load_from_file (priv->state_file, state_file_path, 0, &err)) + { + g_warning ("Could not load SM state file '%s': %s", + sm_client_state_file, err->message); + g_clear_error (&err); + g_key_file_free (priv->state_file); + priv->state_file = NULL; + } + + g_free (state_file_path); + return priv->state_file; +} + +/** + * egg_sm_client_set_restart_command: + * @client: the client + * @argc: the length of @argv + * @argv: argument vector + * + * Sets the command used to restart @client if it does not have a + * .desktop file that can be used to find its restart command. + * + * This can also be used when handling the ::save_state signal, to + * save the current state via an updated command line. (Eg, providing + * a list of filenames to open when the application is resumed.) + **/ +void +egg_sm_client_set_restart_command (EggSMClient *client, + int argc, + const char **argv) +{ + g_return_if_fail (EGG_IS_SM_CLIENT (client)); + + if (EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command) + EGG_SM_CLIENT_GET_CLASS (client)->set_restart_command (client, argc, argv); +} + +/** + * egg_sm_client_will_quit: + * @client: the client + * @will_quit: whether or not the application is willing to quit + * + * This MUST be called in response to the ::quit_requested signal, to + * indicate whether or not the application is willing to quit. The + * application may call it either directly from the signal handler, or + * at some later point (eg, after asynchronously interacting with the + * user). + * + * If the application does not connect to ::quit_requested, + * #EggSMClient will call this method on its behalf (passing %TRUE + * for @will_quit). + * + * After calling this method, the application should wait to receive + * either ::quit_cancelled or ::quit. + **/ +void +egg_sm_client_will_quit (EggSMClient *client, + gboolean will_quit) +{ + g_return_if_fail (EGG_IS_SM_CLIENT (client)); + + if (EGG_SM_CLIENT_GET_CLASS (client)->will_quit) + EGG_SM_CLIENT_GET_CLASS (client)->will_quit (client, will_quit); +} + +/** + * egg_sm_client_end_session: + * @style: a hint at how to end the session + * @request_confirmation: whether or not the user should get a chance + * to confirm the action + * + * Requests that the session manager end the current session. @style + * indicates how the session should be ended, and + * @request_confirmation indicates whether or not the user should be + * given a chance to confirm the logout/reboot/shutdown. Both of these + * flags are merely hints though; the session manager may choose to + * ignore them. + * + * Return value: %TRUE if the request was sent; %FALSE if it could not + * be (eg, because it could not connect to the session manager). + **/ +gboolean +egg_sm_client_end_session (EggSMClientEndStyle style, + gboolean request_confirmation) +{ + EggSMClient *client = egg_sm_client_get (); + + g_return_val_if_fail (EGG_IS_SM_CLIENT (client), FALSE); + + if (EGG_SM_CLIENT_GET_CLASS (client)->end_session) + { + return EGG_SM_CLIENT_GET_CLASS (client)->end_session (client, style, + request_confirmation); + } + else + return FALSE; +} + +/* Signal-emitting callbacks from platform-specific code */ + +GKeyFile * +egg_sm_client_save_state (EggSMClient *client) +{ + GKeyFile *state_file; + char *group; + + g_return_val_if_fail (client == global_client, NULL); + + state_file = g_key_file_new (); + + g_debug ("Emitting save_state"); + g_signal_emit (client, signals[SAVE_STATE], 0, state_file); + g_debug ("Done emitting save_state"); + + group = g_key_file_get_start_group (state_file); + if (group) + { + g_free (group); + return state_file; + } + else + { + g_key_file_free (state_file); + return NULL; + } +} + +void +egg_sm_client_quit_requested (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + if (!g_signal_has_handler_pending (client, signals[QUIT_REQUESTED], 0, FALSE)) + { + g_debug ("Not emitting quit_requested because no one is listening"); + egg_sm_client_will_quit (client, TRUE); + return; + } + + g_debug ("Emitting quit_requested"); + g_signal_emit (client, signals[QUIT_REQUESTED], 0); + g_debug ("Done emitting quit_requested"); +} + +void +egg_sm_client_quit_cancelled (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + g_debug ("Emitting quit_cancelled"); + g_signal_emit (client, signals[QUIT_CANCELLED], 0); + g_debug ("Done emitting quit_cancelled"); +} + +void +egg_sm_client_quit (EggSMClient *client) +{ + g_return_if_fail (client == global_client); + + g_debug ("Emitting quit"); + g_signal_emit (client, signals[QUIT], 0); + g_debug ("Done emitting quit"); + + /* FIXME: should we just call gtk_main_quit() here? */ +} + +static void +egg_sm_client_debug_handler (const char *log_domain, + GLogLevelFlags log_level, + const char *message, + gpointer user_data) +{ + static int debug = -1; + + if (debug < 0) + debug = (g_getenv ("EGG_SM_CLIENT_DEBUG") != NULL); + + if (debug) + g_log_default_handler (log_domain, log_level, message, NULL); +} diff --git a/server/smclient/eggsmclient.h b/server/smclient/eggsmclient.h new file mode 100644 index 0000000..e620b75 --- /dev/null +++ b/server/smclient/eggsmclient.h @@ -0,0 +1,117 @@ +/* eggsmclient.h + * Copyright (C) 2007 Novell, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __EGG_SM_CLIENT_H__ +#define __EGG_SM_CLIENT_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define EGG_TYPE_SM_CLIENT (egg_sm_client_get_type ()) +#define EGG_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT, EggSMClient)) +#define EGG_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT, EggSMClientClass)) +#define EGG_IS_SM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT)) +#define EGG_IS_SM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT)) +#define EGG_SM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT, EggSMClientClass)) + +typedef struct _EggSMClient EggSMClient; +typedef struct _EggSMClientClass EggSMClientClass; +typedef struct _EggSMClientPrivate EggSMClientPrivate; + +typedef enum { + EGG_SM_CLIENT_END_SESSION_DEFAULT, + EGG_SM_CLIENT_LOGOUT, + EGG_SM_CLIENT_REBOOT, + EGG_SM_CLIENT_SHUTDOWN +} EggSMClientEndStyle; + +typedef enum { + EGG_SM_CLIENT_MODE_DISABLED, + EGG_SM_CLIENT_MODE_NO_RESTART, + EGG_SM_CLIENT_MODE_NORMAL +} EggSMClientMode; + +struct _EggSMClient +{ + GObject parent; + +}; + +struct _EggSMClientClass +{ + GObjectClass parent_class; + + /* signals */ + void (*save_state) (EggSMClient *client, + GKeyFile *state_file); + + void (*quit_requested) (EggSMClient *client); + void (*quit_cancelled) (EggSMClient *client); + void (*quit) (EggSMClient *client); + + /* virtual methods */ + void (*startup) (EggSMClient *client, + const char *client_id); + void (*set_restart_command) (EggSMClient *client, + int argc, + const char **argv); + void (*will_quit) (EggSMClient *client, + gboolean will_quit); + gboolean (*end_session) (EggSMClient *client, + EggSMClientEndStyle style, + gboolean request_confirmation); + + /* Padding for future expansion */ + void (*_egg_reserved1) (void); + void (*_egg_reserved2) (void); + void (*_egg_reserved3) (void); + void (*_egg_reserved4) (void); +}; + +GType egg_sm_client_get_type (void) G_GNUC_CONST; + +GOptionGroup *egg_sm_client_get_option_group (void); + +/* Initialization */ +void egg_sm_client_set_mode (EggSMClientMode mode); +EggSMClientMode egg_sm_client_get_mode (void); +EggSMClient *egg_sm_client_get (void); + +/* Resuming a saved session */ +gboolean egg_sm_client_is_resumed (EggSMClient *client); +GKeyFile *egg_sm_client_get_state_file (EggSMClient *client); + +/* Alternate means of saving state */ +void egg_sm_client_set_restart_command (EggSMClient *client, + int argc, + const char **argv); + +/* Handling "quit_requested" signal */ +void egg_sm_client_will_quit (EggSMClient *client, + gboolean will_quit); + +/* Initiate a logout/reboot/shutdown */ +gboolean egg_sm_client_end_session (EggSMClientEndStyle style, + gboolean request_confirmation); + +G_END_DECLS + + +#endif /* __EGG_SM_CLIENT_H__ */ diff --git a/server/vino-cursor.c b/server/vino-cursor.c new file mode 100644 index 0000000..30b5310 --- /dev/null +++ b/server/vino-cursor.c @@ -0,0 +1,237 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#include <config.h> +#ifdef VINO_HAVE_DAMAGE +#include <X11/extensions/Xfixes.h> +#include <gdk/gdkx.h> +#endif /* VINO_HAVE_DAMAGE */ + +#include "vino-cursor.h" + +struct _VinoCursorData +{ + GdkScreen *screen; + + guint update_timeout; + + int x; + int y; + + guint cursor_has_changed : 1; +}; + + +#define VINO_CURSOR_WIDTH 19 +#define VINO_CURSOR_HEIGHT 19 + +static const char *vino_cursor_source = +" " +" x " +" xx " +" xxx " +" xxxx " +" xxxxx " +" xxxxxx " +" xxxxxxx " +" xxxxxxxx " +" xxxxxxxxx " +" xxxxxxxxxx " +" xxxxx " +" xx xxx " +" x xxx " +" xxx " +" xxx " +" xxx " +" xxx " +" "; + +static const char *vino_cursor_mask = +"xx " +"xxx " +"xxxx " +"xxxxx " +"xxxxxx " +"xxxxxxx " +"xxxxxxxx " +"xxxxxxxxx " +"xxxxxxxxxx " +"xxxxxxxxxxx " +"xxxxxxxxxxxx " +"xxxxxxxxxx " +"xxxxxxxx " +"xxxxxxxx " +"xx xxxxx " +" xxxxx " +" xxxxx " +" xxxxx " +" xxx "; + + +static gboolean +vino_cursor_update_timeout (VinoCursorData *data) +{ + GdkScreen *tmp_screen; + int tmp_x, tmp_y; + GdkDeviceManager *dm; + + data->x = 0; + data->y = 0; + + tmp_screen = NULL; + dm = gdk_display_get_device_manager (gdk_screen_get_display (data->screen)); + gdk_device_get_position (gdk_device_manager_get_client_pointer (dm), + &tmp_screen, + &tmp_x, + &tmp_y); + if (data->screen == tmp_screen) + { + data->x = tmp_x; + data->y = tmp_y; + } + + data->cursor_has_changed = TRUE; + return TRUE; +} + +VinoCursorData * +vino_cursor_init (GdkScreen *screen) +{ + VinoCursorData *data; + + g_return_val_if_fail (screen != NULL, NULL); + + data = g_new0 (VinoCursorData, 1); + + data->screen = screen; + + data->update_timeout = g_timeout_add (50, + (GSourceFunc) vino_cursor_update_timeout, + data); + + data->cursor_has_changed = TRUE; + + vino_cursor_update_timeout (data); + + return data; +} + +void +vino_cursor_finalize (VinoCursorData *data) +{ + g_return_if_fail (data != NULL); + + if (data->update_timeout) + g_source_remove (data->update_timeout); + data->update_timeout = 0; + + g_free (data); +} + +void +vino_cursor_get_position (VinoCursorData *data, + int *x, + int *y) +{ + g_return_if_fail (data != NULL); + + if (x) + *x = data->x; + if (y) + *y = data->y; +} + +#ifdef VINO_HAVE_DAMAGE +static void +argbdata_to_cursor_source (long *argb_data, int len, char **cursor_source) +{ + int i = 0; + char *p = g_new(char, len); + + *cursor_source = p; + while (i < len) { + if (((argb_data[i]>>24 & 0xff) == 0xff) && + (argb_data[i] & 0x80) == 0) + *p++ = 'x'; + else + *p++ = ' '; + i++; + } +} +#endif /* VINO_HAVE_DAMAGE */ + +gboolean +vino_cursor_get_x_source (VinoCursorData *data, + int *width, + int *height, + const char **cursor_source, + const char **cursor_mask) +{ +#ifdef VINO_HAVE_DAMAGE + int event, error; + Display *display = GDK_SCREEN_XDISPLAY(data->screen); +#endif /* VINO_HAVE_DAMAGE */ + + g_return_val_if_fail (data != NULL, FALSE); + + if (!data->cursor_has_changed) + return FALSE; + +#ifdef VINO_HAVE_DAMAGE + if (XFixesQueryExtension (display, &event, &error)) + { + static char *cursor_source_from_xfixes = NULL; + + XFixesCursorImage *cur = XFixesGetCursorImage (display); + if (cursor_source_from_xfixes) + g_free (cursor_source_from_xfixes); + argbdata_to_cursor_source ((long *)cur->pixels, cur->width*cur->height, &cursor_source_from_xfixes); + if (width) + *width = cur->width; + if (height) + *height = cur->height; + if (cursor_source) + *cursor_source = cursor_source_from_xfixes; + if (cursor_mask) + *cursor_mask = NULL; + data->x = cur->x - cur->xhot; + data->y = cur->y - cur->yhot; + XFree (cur); + } else { +#else /* !VINO_HAVE_DAMAGE */ + { +#endif /* VINO_HAVE_DAMAGE */ + if (width) + *width = VINO_CURSOR_WIDTH; + if (height) + *height = VINO_CURSOR_HEIGHT; + if (cursor_source) + *cursor_source = vino_cursor_source; + if (cursor_mask) + *cursor_mask = vino_cursor_mask; + } + + data->cursor_has_changed = FALSE; + + return TRUE; +} + diff --git a/server/vino-cursor.h b/server/vino-cursor.h new file mode 100644 index 0000000..6a16a90 --- /dev/null +++ b/server/vino-cursor.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_CURSOR_H__ +#define __VINO_CURSOR_H__ + +#include <gdk/gdk.h> + +G_BEGIN_DECLS + +typedef struct _VinoCursorData VinoCursorData; + +VinoCursorData *vino_cursor_init (GdkScreen *screen); +void vino_cursor_finalize (VinoCursorData *data); +void vino_cursor_get_position (VinoCursorData *data, + int *x, + int *y); +gboolean vino_cursor_get_x_source (VinoCursorData *data, + int *width, + int *height, + const char **cursor_source, + const char **cursor_mask); + +G_END_DECLS + +#endif /* __VINO_CURSOR_H__ */ diff --git a/server/vino-dbus-error.c b/server/vino-dbus-error.c new file mode 100644 index 0000000..baaa76c --- /dev/null +++ b/server/vino-dbus-error.c @@ -0,0 +1,33 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#include "vino-dbus-error.h" + +GQuark +vino_dbus_error_quark (void) +{ + static GQuark quark = 0; + if (!quark) + quark = g_quark_from_static_string ("VinoErrorQuark"); + + return quark; +} diff --git a/server/vino-dbus-error.h b/server/vino-dbus-error.h new file mode 100644 index 0000000..f15b90a --- /dev/null +++ b/server/vino-dbus-error.h @@ -0,0 +1,36 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#ifndef __VINO_DBUS_ERROR_H__ +#define __VINO_DBUS_ERROR_H__ + +#include <glib.h> + +typedef enum +{ + VINO_DBUS_ERROR_NOT_IMPLEMENTED, + VINO_DBUS_ERROR_FAILED +} VinoDBusError; + +GQuark vino_dbus_error_quark (void); + +#endif /* __VINO_DBUS_ERROR_H__ */ diff --git a/server/vino-dbus-listener.c b/server/vino-dbus-listener.c new file mode 100644 index 0000000..5d59528 --- /dev/null +++ b/server/vino-dbus-listener.c @@ -0,0 +1,285 @@ +/* + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Author: Ryan Lortie <desrt@desrt.ca> + */ + +#include "config.h" + +#include "vino-dbus-listener.h" +#include "vino-dbus.h" + +#ifdef VINO_HAVE_TELEPATHY_GLIB +#include "vino-tube-servers-manager.h" +#include "vino-tube-server.h" +#endif + +#include "vino-util.h" + +#include "vino-mdns.h" + +#ifdef VINO_HAVE_TELEPATHY_GLIB +enum +{ + SIG_TUBE_DISCONNECTED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; +#endif + +struct _VinoDBusListener +{ + GObject parent_instance; + + GDBusConnection *connection; + gchar *path; + gint screen; + + VinoServer *server; + +#ifdef VINO_HAVE_TELEPATHY_GLIB + VinoTubeServersManager *manager; +#endif +}; + +typedef GObjectClass VinoDBusListenerClass; + +static GType vino_dbus_listener_get_type (void); + +G_DEFINE_TYPE (VinoDBusListener, vino_dbus_listener, G_TYPE_OBJECT) + +static void +vino_dbus_listener_finalize (GObject *object) +{ + VinoDBusListener *listener = (VinoDBusListener *) object; + + g_object_unref (listener->connection); + g_free (listener->path); + if (listener->server) + g_object_unref (listener->server); + + +#ifdef VINO_HAVE_TELEPATHY_GLIB + if (listener->manager != NULL) + { + g_object_unref (listener->manager); + listener->manager = NULL; + } +#endif + + G_OBJECT_CLASS (vino_dbus_listener_parent_class) + ->finalize (object); +} + +#ifdef VINO_HAVE_TELEPATHY_GLIB +static void +tube_disconnected_cb (VinoTubeServersManager *mgr, + VinoTubeServer *server, + VinoDBusListener *listener) +{ + g_signal_emit (listener, signals[SIG_TUBE_DISCONNECTED], 0, server); +} +#endif + +static void +vino_dbus_listener_init (VinoDBusListener *listener) +{ +#ifdef VINO_HAVE_TELEPATHY_GLIB + listener->manager = vino_tube_servers_manager_new (); + + g_signal_connect (listener->manager, "tube-disconnected", + G_CALLBACK (tube_disconnected_cb), listener); +#endif +} + +static void +vino_dbus_listener_class_init (GObjectClass *class) +{ + class->finalize = vino_dbus_listener_finalize; + +#ifdef VINO_HAVE_TELEPATHY_GLIB + signals[SIG_TUBE_DISCONNECTED] = g_signal_new ("tube-disconnected", + G_OBJECT_CLASS_TYPE (class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, + 1, VINO_TYPE_TUBE_SERVER); +#endif +} + +static guint16 +vino_dbus_listener_get_port (VinoDBusListener *listener) +{ + return vino_server_get_port (listener->server); +} + +static GVariant * +vino_dbus_listener_get_property (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *property_name, + GError **error, + gpointer user_data) +{ + VinoDBusListener *listener = user_data; + + if (listener->server == NULL) + /* We (reasonably) assume that nobody will be doing Vino property + * queries during the extremely short period of time between + * connecting to the bus and acquiring our well-known name. + * + * As soon as the well-known name is acquired, GDBus invokes our + * name_acquired function (in vino-main.c) and that blocks until all + * of the servers have been setup. That completes before any more + * messages (ie: to the well-known name) can be dispatched. + * + * That means that the only possibility that we see property queries + * here without listener->server being set is in the case that the + * property is being queried against our unique name (which we + * assume won't happen). + */ + { + g_warning ("Somebody queried vino server properties " + "(%s, property %s) before unique name was acquired.", + object_path, property_name); + return NULL; + } + + if (strcmp (property_name, "Host") == 0) + { + gchar *local_hostname; + const gchar *iface; + GVariant *result; + + iface = vino_server_get_network_interface (listener->server); + local_hostname = vino_util_get_local_hostname (iface); + if (local_hostname) + result = g_variant_new_string (local_hostname); + else + result = g_variant_new_string (""); + g_free (local_hostname); + + return result; + } + + else if (strcmp (property_name, "Port") == 0) + return g_variant_new_uint16 (vino_dbus_listener_get_port (listener)); + + else if (strcmp (property_name, "ExternalHost") == 0) + { + gchar *external_ip; + GVariant *result; + + external_ip = vino_server_get_external_ip (listener->server); + if (external_ip) + result = g_variant_new_string (external_ip); + else + result = g_variant_new_string (""); + g_free (external_ip); + + return result; + } + + else if (strcmp (property_name, "ExternalPort") == 0) + return g_variant_new_uint16 (vino_server_get_external_port (listener->server)); + + else if (strcmp (property_name, "AvahiHost") == 0) + return g_variant_new_string (vino_mdns_get_hostname()); + + else if (strcmp (property_name, "Connected") == 0) + return g_variant_new_boolean (vino_server_get_has_clients (listener->server)); + + else + g_assert_not_reached (); +} + +static void +server_connected_changed_cb (GObject *gobject, + GParamSpec *pspec, + gpointer user_data) +{ + GVariantBuilder *builder; + VinoDBusListener *listener = (VinoDBusListener *) user_data; + + builder = g_variant_builder_new (G_VARIANT_TYPE_ARRAY); + g_variant_builder_add (builder, + "{sv}", + "Connected", + g_variant_new_boolean (vino_server_get_has_clients (listener->server))); + g_dbus_connection_emit_signal (listener->connection, + NULL, + listener->path, + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + g_variant_new ("(sa{sv}as)", + ORG_GNOME_VINO_SCREEN_INTERFACE_NAME, + builder, + NULL), + NULL); + g_variant_builder_unref (builder); +} + +void +vino_dbus_listener_set_server (VinoDBusListener *listener, + VinoServer *server) +{ + g_return_if_fail (listener->server == NULL); + g_return_if_fail (VINO_IS_SERVER (server)); + g_return_if_fail (listener->screen == + gdk_screen_get_number (vino_server_get_screen (server))); + + listener->server = g_object_ref (server); + + /* We need not notify for property changes here since we assume that + * nobody will have checked properties before now (see large comment + * above in get_property()). + */ + + g_signal_connect (listener->server, "notify::connected", + G_CALLBACK (server_connected_changed_cb), listener); +} + +VinoDBusListener * +vino_dbus_listener_new (gint screen) +{ + static const GDBusInterfaceVTable vtable = { + NULL, vino_dbus_listener_get_property + }; + VinoDBusListener *listener; + + listener = g_object_new (vino_dbus_listener_get_type (), NULL); + listener->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); + listener->path = g_strdup_printf ("%s%d", + ORG_GNOME_VINO_SCREEN_PATH_PREFIX, + screen); + listener->screen = screen; + + g_dbus_connection_register_object (listener->connection, listener->path, + ORG_GNOME_VINO_SCREEN_INTERFACE, + &vtable, listener, NULL, NULL); + + return listener; +} + +VinoServer * +vino_dbus_listener_get_server (VinoDBusListener *self) +{ + return self->server; +} diff --git a/server/vino-dbus-listener.h b/server/vino-dbus-listener.h new file mode 100644 index 0000000..3b8dc9f --- /dev/null +++ b/server/vino-dbus-listener.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2004-2006 William Jon McCann <mccann@jhu.edu> + * Copyright (C) 2006 Jonh Wendell <wendell@bani.com.br> + * Copyright (C) 2007 Mark McLoughlin <markmc@skynet.ie> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * William Jon McCann <mccann@jhu.edu> + * Jonh Wendell <wendell@bani.com.br> + * Mark McLoughlin <mark@skynet.ie> + * + * Code taken from gnome-screensaver/src/gs-listener-dbus.h + */ + +#ifndef __VINO_DBUS_LISTENER_H__ +#define __VINO_DBUS_LISTENER_H__ + +#include "vino-server.h" + +typedef struct _VinoDBusListener VinoDBusListener; + +VinoDBusListener * vino_dbus_listener_new (gint screen); +void vino_dbus_listener_set_server (VinoDBusListener *listener, + VinoServer *server); +VinoServer * vino_dbus_listener_get_server (VinoDBusListener *self); + +gboolean vino_dbus_request_name (void); + +#endif /* __VINO_DBUS_LISTENER_H__ */ diff --git a/server/vino-dbus.c b/server/vino-dbus.c new file mode 100644 index 0000000..6807ae5 --- /dev/null +++ b/server/vino-dbus.c @@ -0,0 +1,65 @@ +/* + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Author: Ryan Lortie <desrt@desrt.ca> + */ + +#include "vino-dbus.h" + +static const GDBusPropertyInfo org_gnome_VinoScreen_ExternalHost = { + -1, "ExternalHost", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo org_gnome_VinoScreen_ExternalPort = { + -1, "ExternalPort", "q", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo org_gnome_VinoScreen_Host = { + -1, "Host", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo org_gnome_VinoScreen_Port = { + -1, "Port", "q", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo org_gnome_VinoScreen_AvahiHost = { + -1, "AvahiHost", "s", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo org_gnome_VinoScreen_Connected = { + -1, "Connected", "b", G_DBUS_PROPERTY_INFO_FLAGS_READABLE +}; + +static const GDBusPropertyInfo* const org_gnome_VinoScreen_properties[] = { + &org_gnome_VinoScreen_ExternalHost, + &org_gnome_VinoScreen_ExternalPort, + &org_gnome_VinoScreen_AvahiHost, + &org_gnome_VinoScreen_Host, + &org_gnome_VinoScreen_Port, + &org_gnome_VinoScreen_Connected, + NULL +}; + +const GDBusInterfaceInfo org_gnome_VinoScreen_interface = { + -1, + "org.gnome.VinoScreen", + (GDBusMethodInfo **) NULL, + (GDBusSignalInfo **) NULL, + (GDBusPropertyInfo **) org_gnome_VinoScreen_properties, + (GDBusAnnotationInfo **) NULL +}; diff --git a/server/vino-dbus.h b/server/vino-dbus.h new file mode 100644 index 0000000..f6e3efc --- /dev/null +++ b/server/vino-dbus.h @@ -0,0 +1,34 @@ +/* + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Author: Ryan Lortie <desrt@desrt.ca> + */ + +#ifndef __vino_dbus_h__ +#define __vino_dbus_h__ + +#include <gio/gio.h> + +extern const GDBusInterfaceInfo org_gnome_VinoScreen_interface; +#define ORG_GNOME_VINO_SCREEN_INTERFACE_NAME "org.gnome.VinoScreen" +#define ORG_GNOME_VINO_BUS_NAME "org.gnome.Vino" +#define ORG_GNOME_VINO_SCREEN_PATH_PREFIX "/org/gnome/vino/screens/" +#define ORG_GNOME_VINO_SCREEN_INTERFACE \ + ((GDBusInterfaceInfo *) &org_gnome_VinoScreen_interface) + +#endif /* __vino_dbus_h__ */ diff --git a/server/vino-fb.c b/server/vino-fb.c new file mode 100644 index 0000000..68d1ae6 --- /dev/null +++ b/server/vino-fb.c @@ -0,0 +1,1228 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * Copyright (C) 2004 Red Hat, Inc. + * Copyright (C) 2004 Novell, Inc. + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + * Federico Mena Quintero <federico@ximian.com> + * Ryan Lortie <desrt@desrt.ca> + * + * + * The screen polling code is based on XUpdateScanner from + * KRFB (krfb/xupdatescanner.cc) by Tim Jansen <tim@tjansen.de>: + * + * Copyright (C) 2000 heXoNet Support GmbH, D-66424 Homburg. + * + */ + +#include <config.h> + +#include "vino-fb.h" + +#include <stdlib.h> +#include <string.h> +#include <sys/types.h> +#include <sys/ipc.h> +#include <sys/shm.h> +#include <gdk/gdkx.h> +#include <X11/Xlib.h> +#ifdef VINO_HAVE_XSHM +#include <X11/extensions/XShm.h> +#endif +#ifdef VINO_HAVE_XDAMAGE +#include <X11/extensions/Xdamage.h> +#endif + +#include "vino-util.h" + +#define TILE_WIDTH 32 +#define TILE_HEIGHT 32 + +#ifndef VINO_HAVE_XSHM +typedef struct { int dummy; } XShmSegmentInfo; +#endif + +struct _VinoFBPrivate +{ + Display *xdisplay; + GdkScreen *screen; + GdkWindow *root_window; + + XImage *fb_image; + XShmSegmentInfo fb_image_x_shm_info; + Pixmap fb_pixmap; + + XImage *scanline; + XShmSegmentInfo scanline_x_shm_info; + int n_scanline; + + XImage *tile; + XShmSegmentInfo tile_x_shm_info; + + cairo_region_t *damage_region; + + guint update_timeout; + +#ifdef VINO_HAVE_XDAMAGE + cairo_region_t *pending_damage; + guint damage_idle_handler; + + Damage xdamage; + int xdamage_notify_event; + XserverRegion xdamage_region; + GC xdamage_copy_gc; +#endif + + guint use_x_shm : 1; + guint use_xdamage : 1; + guint disable_xdamage : 1; + + guint fb_image_is_x_shm_segment : 1; + guint scanline_is_x_shm_segment : 1; + guint tile_is_x_shm_segment : 1; +}; + + +enum +{ + PROP_0, + PROP_SCREEN, + PROP_DISABLE_XDAMAGE +}; + +enum +{ + DAMAGE_NOTIFY, + SIZE_CHANGED, + + LAST_SIGNAL +}; + +static void vino_fb_init_from_screen (VinoFB *vfb, + GdkScreen *screen); +static void vino_fb_screen_size_changed (VinoFB *vfb, + GdkScreen *screen); + +#ifdef VINO_HAVE_XDAMAGE +static GdkFilterReturn vino_fb_xdamage_event_filter (GdkXEvent *xevent, + GdkEvent *event, + VinoFB *vfb); +#endif + +static gpointer parent_class; +static guint signals [LAST_SIGNAL] = { 0 }; + + +static void +emit_damage_notify (VinoFB *vfb) +{ + g_signal_emit (vfb, signals [DAMAGE_NOTIFY], 0); +} + +static void +emit_size_changed (VinoFB *vfb) +{ + g_signal_emit (vfb, signals [SIZE_CHANGED], 0); +} + +static gboolean +vino_fb_get_image (VinoFB *vfb, + GdkWindow *window, + XImage *image, + XShmSegmentInfo *x_shm_info, + gboolean is_x_shm_segment, + int x, + int y, + int width, + int height) +{ + Drawable xdrawable; + int error; + + g_assert (vfb != NULL && window != NULL && image != NULL && x_shm_info != NULL); + + xdrawable = GDK_WINDOW_XID (window); + + gdk_error_trap_push (); + +#ifdef VINO_HAVE_XSHM + if (is_x_shm_segment && image->width == width && image->height == height) + { + XShmGetImage (vfb->priv->xdisplay, + xdrawable, + image, + x, y, + AllPlanes); + } + else +#endif /* VINO_HAVE_XSHM */ + { + XGetSubImage (vfb->priv->xdisplay, + xdrawable, + x, y, width, height, + AllPlanes, ZPixmap, + image, 0, 0); + } + + if ((error = gdk_error_trap_pop ())) + { +#ifdef GNOME_ENABLE_DEBUG + char error_text [64]; + + XGetErrorText (vfb->priv->xdisplay, error, error_text, 63); + + g_warning ("Received a '%s' X Window System error while copying a tile", + error_text); + g_warning ("Failed image = %d, %d %dx%d - screen = %dx%d", + x, y, width, height, + gdk_screen_get_width (vfb->priv->screen), + gdk_screen_get_height (vfb->priv->screen)); +#endif + + return FALSE; + } + + return TRUE; +} + +static void +vino_fb_destroy_image (VinoFB *vfb, + XImage *image, + XShmSegmentInfo *x_shm_info, + gboolean is_x_shm_segment, + gboolean is_attached) +{ +#ifdef VINO_HAVE_XSHM + if (is_x_shm_segment) + { + if (is_attached) + XShmDetach (vfb->priv->xdisplay, x_shm_info); + + if (x_shm_info->shmaddr != (char *)-1) + shmdt (x_shm_info->shmaddr); + x_shm_info->shmaddr = (char *)-1; + x_shm_info->shmid = -1; + } +#endif /* VINO_HAVE_XSHM */ + + if (image) + XDestroyImage (image); +} + +static gboolean +vino_fb_create_image (VinoFB *vfb, + XImage **image, + XShmSegmentInfo *x_shm_info, + gboolean must_use_x_shm, + int width, + int height, + int depth) +{ + int n_screen; + + n_screen = gdk_screen_get_number (vfb->priv->screen); + +#ifdef VINO_HAVE_XSHM + if (vfb->priv->use_x_shm) + { + *image = XShmCreateImage (vfb->priv->xdisplay, + DefaultVisual (vfb->priv->xdisplay, n_screen), + depth, + ZPixmap, + NULL, + x_shm_info, + width, + height); + if (!*image) + goto x_shm_error; + + x_shm_info->shmid = shmget (IPC_PRIVATE, + (*image)->bytes_per_line * (*image)->height, + IPC_CREAT | 0600); + if (x_shm_info->shmid == -1) + goto x_shm_error; + + x_shm_info->readOnly = False; + x_shm_info->shmaddr = shmat (x_shm_info->shmid, 0, 0); + (*image)->data = x_shm_info->shmaddr; + + if (x_shm_info->shmaddr == (char*) -1) + goto x_shm_error; + + gdk_error_trap_push (); + + XShmAttach (vfb->priv->xdisplay, x_shm_info); + XSync (vfb->priv->xdisplay, False); + + if (gdk_error_trap_pop ()) + goto x_shm_error; + + shmctl (x_shm_info->shmid, IPC_RMID, 0); + + return TRUE; + + x_shm_error: + vfb->priv->use_x_shm = FALSE; + + vino_fb_destroy_image (vfb, *image, x_shm_info, TRUE, FALSE); + *image = NULL; + + return vino_fb_create_image (vfb, image, x_shm_info, FALSE, + width, height, depth); + } +#endif /* VINO_HAVE_XSHM */ + + if (!must_use_x_shm) + { + *image = XCreateImage (vfb->priv->xdisplay, + DefaultVisual (vfb->priv->xdisplay, 0), + depth, + ZPixmap, + 0, + NULL, + width, + height, + 32, + 0); + if (*image && !((*image)->data = malloc ((*image)->bytes_per_line * height))) + { + XDestroyImage(*image); + *image = NULL; + } + + return FALSE; + } + + return FALSE; +} + +static gboolean +vino_fb_copy_tile (VinoFB *vfb, + const cairo_rectangle_int_t *rect) +{ + XImage *fb_image; + char *src; + char *dest; + int bytes_per_pixel; + int src_bytes_per_line; + int dest_bytes_per_line; + int i; + + if (!vino_fb_get_image (vfb, + vfb->priv->root_window, + vfb->priv->tile, + &vfb->priv->tile_x_shm_info, + vfb->priv->tile_is_x_shm_segment, + rect->x, + rect->y, + rect->width, + rect->height)) + return FALSE; + + fb_image = vfb->priv->fb_image; + + src_bytes_per_line = vfb->priv->tile->bytes_per_line; + dest_bytes_per_line = fb_image->bytes_per_line; + bytes_per_pixel = fb_image->bits_per_pixel >> 3; + + src = vfb->priv->tile->data; + dest = fb_image->data + rect->y * dest_bytes_per_line + rect->x * bytes_per_pixel; + + for (i = 0; i < rect->height; i++) + { + memcpy (dest, src, rect->width * bytes_per_pixel); + + src += src_bytes_per_line; + dest += dest_bytes_per_line; + } + + return TRUE; +} + +static gboolean +vino_fb_poll_scanline (VinoFB *vfb, + int line) +{ + char *src, *dest; + int screen_width, screen_height; + int bytes_per_pixel; + int x, inc; + gboolean retval = FALSE; + + screen_width = gdk_screen_get_width (vfb->priv->screen); + screen_height = gdk_screen_get_height (vfb->priv->screen); + + g_assert (line >= 0 && line < screen_height); + + if (!vino_fb_get_image (vfb, + vfb->priv->root_window, + vfb->priv->scanline, + &vfb->priv->scanline_x_shm_info, + vfb->priv->scanline_is_x_shm_segment, + 0, line, + screen_width, 1)) + return FALSE; + + bytes_per_pixel = vfb->priv->fb_image->bits_per_pixel >> 3; + + dest = vfb->priv->fb_image->data + (line * vfb->priv->fb_image->bytes_per_line); + src = vfb->priv->scanline->data; + inc = TILE_WIDTH * bytes_per_pixel; + + for (x = 0; x < screen_width; x += TILE_WIDTH, dest += inc, src += inc) + { + int width = MIN (TILE_WIDTH, screen_width - x); + + if (memcmp (dest, src, width * bytes_per_pixel) != 0) + { + cairo_rectangle_int_t rect; + + rect.x = x; + rect.y = line - (line % TILE_HEIGHT); + rect.width = width; + rect.height = MIN (TILE_HEIGHT, screen_height - rect.y); + + dprintf (POLLING, "damage: (%d, %d) (%d x %d)\n", rect.x, rect.y, rect.width, rect.height); + + if (vino_fb_copy_tile (vfb, &rect)) + { + if (!vfb->priv->damage_region) + vfb->priv->damage_region = cairo_region_create_rectangle (&rect); + else + cairo_region_union_rectangle (vfb->priv->damage_region, &rect); + } + + retval = TRUE; + } + } + + return retval; +} + +static gboolean +vino_fb_poll_screen (VinoFB *vfb) +{ +#define N_SCANLINES 35 + unsigned int scanlines [N_SCANLINES] = { + 0, 16, 8, 24, 33, 4, 20, + 12, 28, 10, 26, 18, 34, 2, + 22, 6, 30, 14, 1, 17, 32, + 9, 25, 7, 23, 15, 31, 19, + 3, 27, 11, 29, 13, 5, 21 + }; + int screen_height; + int line; + gboolean screen_damaged = FALSE; + gboolean already_damaged = vfb->priv->damage_region != NULL; + + dprintf (POLLING, "polling screen %d, scanline index %d, every %d scanline from %d\n", + gdk_screen_get_number (vfb->priv->screen), + vfb->priv->n_scanline, + N_SCANLINES, + scanlines [vfb->priv->n_scanline]); + + screen_height = gdk_screen_get_height (vfb->priv->screen); + + for (line = scanlines [vfb->priv->n_scanline]; line < screen_height; line += N_SCANLINES) + { + if (vino_fb_poll_scanline (vfb, line)) + screen_damaged = TRUE; + } + + vfb->priv->n_scanline = (vfb->priv->n_scanline + 1) % N_SCANLINES; + + if (!already_damaged && screen_damaged) + emit_damage_notify (vfb); + + return TRUE; +} + +static void +vino_fb_finalize_xdamage (VinoFB *vfb) +{ +#ifdef VINO_HAVE_XDAMAGE + if (vfb->priv->damage_idle_handler) + g_source_remove (vfb->priv->damage_idle_handler); + vfb->priv->damage_idle_handler = 0; + + if (vfb->priv->pending_damage) + cairo_region_destroy (vfb->priv->pending_damage); + vfb->priv->pending_damage = NULL; + + if (vfb->priv->fb_pixmap) + XFreePixmap (vfb->priv->xdisplay, vfb->priv->fb_pixmap); + vfb->priv->fb_pixmap = None; + + gdk_window_remove_filter (vfb->priv->root_window, + (GdkFilterFunc) vino_fb_xdamage_event_filter, + vfb); + + if (vfb->priv->xdamage_copy_gc != None) + XFreeGC (vfb->priv->xdisplay, vfb->priv->xdamage_copy_gc); + vfb->priv->xdamage_copy_gc = None; + + if (vfb->priv->xdamage != None) + XFixesDestroyRegion (vfb->priv->xdisplay, vfb->priv->xdamage_region); + vfb->priv->xdamage_region = None; + + if (vfb->priv->xdamage != None) + XDamageDestroy (vfb->priv->xdisplay, vfb->priv->xdamage); + vfb->priv->xdamage = None; +#endif +} + +/* Frees the scanline and tile data */ +static void +vino_fb_finalize_polling (VinoFB *vfb) +{ + if (vfb->priv->update_timeout) + g_source_remove (vfb->priv->update_timeout); + vfb->priv->update_timeout = 0; + + if (vfb->priv->scanline) + vino_fb_destroy_image (vfb, + vfb->priv->scanline, + &vfb->priv->scanline_x_shm_info, + vfb->priv->scanline_is_x_shm_segment, + TRUE); + vfb->priv->scanline = NULL; + + if (vfb->priv->tile) + vino_fb_destroy_image (vfb, + vfb->priv->tile, + &vfb->priv->tile_x_shm_info, + vfb->priv->tile_is_x_shm_segment, + TRUE); + vfb->priv->tile = NULL; +} + +static void +vino_fb_finalize_screen_data (VinoFB *vfb) +{ + if (vfb->priv->damage_region) + cairo_region_destroy (vfb->priv->damage_region); + vfb->priv->damage_region = NULL; + + if (vfb->priv->use_xdamage) + vino_fb_finalize_xdamage (vfb); + else + vino_fb_finalize_polling (vfb); + + if (vfb->priv->fb_image) + vino_fb_destroy_image (vfb, + vfb->priv->fb_image, + &vfb->priv->fb_image_x_shm_info, + vfb->priv->fb_image_is_x_shm_segment, + TRUE); + vfb->priv->fb_image = NULL; + + g_signal_handlers_disconnect_by_func (vfb->priv->screen, + G_CALLBACK (vino_fb_screen_size_changed), + vfb); + +} + +static void +vino_fb_screen_size_changed (VinoFB *vfb, + GdkScreen *screen) +{ + g_return_if_fail (VINO_IS_FB (vfb)); + + vino_fb_finalize_screen_data (vfb); + vino_fb_init_from_screen (vfb, screen); + + emit_size_changed (vfb); +} + +#ifdef VINO_HAVE_XDAMAGE + +static gboolean +vino_fb_xdamage_idle_handler (VinoFB *vfb) +{ + + cairo_rectangle_int_t damage; + XRectangle xdamage; + int error; + + g_assert (!cairo_region_is_empty (vfb->priv->pending_damage)); + + cairo_region_get_rectangle (vfb->priv->pending_damage, 0, &damage); + + xdamage.x = damage.x; + xdamage.y = damage.y; + xdamage.width = damage.width; + xdamage.height = damage.height; + + dprintf (POLLING, "Updating damaged region in idle: %d %d %dx%d\n", + damage.x, damage.y, damage.width, damage.height); + + /* subtract damage from server */ + XFixesSetRegion (vfb->priv->xdisplay, vfb->priv->xdamage_region, &xdamage, 1); + XDamageSubtract (vfb->priv->xdisplay, + vfb->priv->xdamage, + vfb->priv->xdamage_region, + None); + + gdk_error_trap_push (); + + /* Copy the damaged pixels from the server */ + if (vfb->priv->use_x_shm) + { + XCopyArea (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + vfb->priv->fb_pixmap, + vfb->priv->xdamage_copy_gc, + damage.x, + damage.y, + damage.width, + damage.height, + damage.x, + damage.y); + XSync (vfb->priv->xdisplay, False); + } + else + { + XGetSubImage (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + damage.x, + damage.y, + damage.width, + damage.height, + AllPlanes, + ZPixmap, + vfb->priv->fb_image, + damage.x, + damage.y); + } + + if ((error = gdk_error_trap_pop ())) + { +#ifdef GNOME_ENABLE_DEBUG + char error_text [64]; + + XGetErrorText (vfb->priv->xdisplay, error, error_text, 63); + + g_warning ("Received a '%s' X Window System error while copying damaged pixels", + error_text); + g_warning ("Failed image = %d, %d %dx%d - screen = %dx%d", + damage.x, + damage.y, + damage.width, + damage.height, + gdk_screen_get_width (vfb->priv->screen), + gdk_screen_get_height (vfb->priv->screen)); +#endif + goto out; + } + + /* add damage to our region */ + if (vfb->priv->damage_region) + cairo_region_union_rectangle (vfb->priv->damage_region, &damage); + else + vfb->priv->damage_region = cairo_region_create_rectangle (&damage); + + emit_damage_notify (vfb); + + out: + { + cairo_region_t *tmp; + + tmp = cairo_region_create_rectangle (&damage); + cairo_region_subtract (vfb->priv->pending_damage, tmp); + cairo_region_destroy (tmp); + } + + if (cairo_region_is_empty (vfb->priv->pending_damage)) + { + vfb->priv->damage_idle_handler = 0; + return FALSE; + } + + return TRUE; +} + +static GdkFilterReturn +vino_fb_xdamage_event_filter (GdkXEvent *xevent, + GdkEvent *event, + VinoFB *vfb) +{ + XEvent *xev = (XEvent *) xevent; + XDamageNotifyEvent *notify; + cairo_rectangle_int_t damage; + + if (xev->type != vfb->priv->xdamage_notify_event) + return GDK_FILTER_CONTINUE; + + notify = (XDamageNotifyEvent *) xev; + + damage.x = notify->area.x; + damage.y = notify->area.y; + damage.width = notify->area.width; + damage.height = notify->area.height; + + dprintf (POLLING, "Got DamageNotify event: %d %d %dx%d, more = %s, level = %d\n", + damage.x, damage.y, damage.width, damage.height, + notify->more ? "(true)" : "(false)", notify->level); + + cairo_region_union_rectangle (vfb->priv->pending_damage, &damage); + + if (!vfb->priv->damage_idle_handler) + vfb->priv->damage_idle_handler = + g_idle_add ((GSourceFunc) vino_fb_xdamage_idle_handler, vfb); + + return GDK_FILTER_REMOVE; +} +#endif /* VINO_HAVE_XDAMAGE */ + +static void +vino_fb_init_xdamage (VinoFB *vfb) +{ +#ifdef VINO_HAVE_XDAMAGE + int event_base, error_base; + int major, minor; + XGCValues values; + + if (vfb->priv->disable_xdamage) + { + dprintf (POLLING, "Not using XDamage extension, as requested via gconf key\n"); + return; + } + + if (!XDamageQueryExtension (vfb->priv->xdisplay, &event_base, &error_base)) + return; + + if (!XDamageQueryVersion (vfb->priv->xdisplay, &major, &minor) || major != 1) + return; + + vfb->priv->xdamage_notify_event = event_base + XDamageNotify; + + vfb->priv->xdamage = XDamageCreate (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + XDamageReportDeltaRectangles); + if (vfb->priv->xdamage == None) + return; + + vfb->priv->xdamage_region = XFixesCreateRegion (vfb->priv->xdisplay, NULL, 0); + if (vfb->priv->xdamage_region == None) + { + XDamageDestroy (vfb->priv->xdisplay, vfb->priv->xdamage); + vfb->priv->xdamage = None; + return; + } + + values.subwindow_mode = IncludeInferiors; + vfb->priv->xdamage_copy_gc = XCreateGC (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + GCSubwindowMode, + &values); + + gdk_x11_register_standard_event_type (gdk_screen_get_display (vfb->priv->screen), + event_base, + XDamageNumberEvents); + gdk_window_add_filter (vfb->priv->root_window, + (GdkFilterFunc) vino_fb_xdamage_event_filter, + vfb); + + vfb->priv->pending_damage = cairo_region_create (); + + vfb->priv->use_xdamage = TRUE; +#endif +} + +static void +vino_fb_init_polling (VinoFB *vfb) +{ + g_assert (!vfb->priv->use_xdamage); + + vfb->priv->scanline_is_x_shm_segment = + vino_fb_create_image (vfb, + &vfb->priv->scanline, + &vfb->priv->scanline_x_shm_info, FALSE, + gdk_screen_get_width (vfb->priv->screen), 1, + vfb->priv->fb_image->depth); + if (!vfb->priv->scanline) + { + g_warning (G_STRLOC ": failed to initialize scanline XImage\n"); + XDestroyImage (vfb->priv->fb_image); + vfb->priv->fb_image = NULL; + return; + } + + dprintf (POLLING, "Initialized scanline XImage (%p): is_x_shm_segment = %s\n", + vfb->priv->scanline, + vfb->priv->scanline_is_x_shm_segment ? "(true)" : "(false)"); + + vfb->priv->tile_is_x_shm_segment = + vino_fb_create_image (vfb, + &vfb->priv->tile, + &vfb->priv->tile_x_shm_info, FALSE, + TILE_WIDTH, TILE_HEIGHT, + vfb->priv->fb_image->depth); + if (!vfb->priv->tile) + { + g_warning (G_STRLOC ": failed to initialize tile XImage\n"); + vino_fb_destroy_image (vfb, + vfb->priv->scanline, + &vfb->priv->scanline_x_shm_info, + vfb->priv->scanline_is_x_shm_segment, + TRUE); + vfb->priv->scanline = NULL; + XDestroyImage (vfb->priv->fb_image); + vfb->priv->fb_image = NULL; + return; + } + + dprintf (POLLING, "Initialized scanline XImage (%p): is_x_shm_segment = %s\n", + vfb->priv->scanline, + vfb->priv->scanline_is_x_shm_segment ? "(true)" : "(false)"); + + vfb->priv->update_timeout = + g_timeout_add (20, (GSourceFunc) vino_fb_poll_screen, vfb); +} + +static void +vino_fb_init_fb_image (VinoFB *vfb) +{ + if (vfb->priv->use_xdamage) + { + vfb->priv->fb_image_is_x_shm_segment = + vino_fb_create_image (vfb, + &vfb->priv->fb_image, + &vfb->priv->fb_image_x_shm_info, + TRUE, + gdk_screen_get_width (vfb->priv->screen), + gdk_screen_get_height (vfb->priv->screen), + DefaultDepthOfScreen (GDK_SCREEN_XSCREEN (vfb->priv->screen))); + } + + if (vfb->priv->fb_image) + { +#ifdef VINO_HAVE_XSHM + if (vfb->priv->use_x_shm) + { + vfb->priv->fb_pixmap = XShmCreatePixmap (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + vfb->priv->fb_image->data, + &vfb->priv->fb_image_x_shm_info, + vfb->priv->fb_image->width, + vfb->priv->fb_image->height, + vfb->priv->fb_image->depth); + } +#endif + if (vfb->priv->fb_pixmap == None) + { + vino_fb_destroy_image (vfb, + vfb->priv->fb_image, + &vfb->priv->fb_image_x_shm_info, + vfb->priv->fb_image_is_x_shm_segment, + TRUE); + vfb->priv->fb_image = NULL; + vfb->priv->fb_image_is_x_shm_segment = FALSE; + } + } + + if (!vfb->priv->fb_image) + { + vfb->priv->fb_image = + XGetImage (vfb->priv->xdisplay, + GDK_WINDOW_XID (vfb->priv->root_window), + 0, 0, + gdk_screen_get_width (vfb->priv->screen), + gdk_screen_get_height (vfb->priv->screen), + AllPlanes, + ZPixmap); + } +} + +static void +vino_fb_init_from_screen (VinoFB *vfb, + GdkScreen *screen) +{ + g_return_if_fail (screen != NULL); + + vfb->priv->screen = screen; + vfb->priv->xdisplay = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen)); + vfb->priv->root_window = gdk_screen_get_root_window (screen); + +#ifdef VINO_HAVE_XSHM + vfb->priv->use_x_shm = XShmQueryExtension (vfb->priv->xdisplay) != False; + if (vfb->priv->use_x_shm) + { + int major, minor; + Bool shared_pixmaps; + + XShmQueryVersion (vfb->priv->xdisplay, &major, &minor, &shared_pixmaps); + if (!shared_pixmaps) + vfb->priv->use_x_shm = FALSE; + } +#endif + + g_signal_connect_swapped (vfb->priv->screen, "size-changed", + G_CALLBACK (vino_fb_screen_size_changed), + vfb); + + vino_fb_init_xdamage (vfb); + vino_fb_init_fb_image (vfb); + + if (!vfb->priv->fb_image) + { + g_warning (G_STRLOC ": failed to initialize frame buffer XImage"); + return; + } + + dprintf (POLLING, "Initialized framebuffer contents (%p) for screen %d: %dx%d %dbpp\n", + vfb->priv->fb_image, + gdk_screen_get_number (vfb->priv->screen), + vfb->priv->fb_image->width, + vfb->priv->fb_image->height, + vfb->priv->fb_image->depth); + + if (!vfb->priv->use_xdamage) + vino_fb_init_polling (vfb); +} + + +static void +vino_fb_finalize (GObject *object) +{ + VinoFB *vfb = VINO_FB (object); + + vino_fb_finalize_screen_data (vfb); + + g_free (vfb->priv); + vfb->priv = NULL; + + if (G_OBJECT_CLASS (parent_class)->finalize) + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +vino_fb_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VinoFB *vfb = VINO_FB (object); + + switch (prop_id) + { + case PROP_SCREEN: + vino_fb_init_from_screen (vfb, g_value_get_object (value)); + break; + case PROP_DISABLE_XDAMAGE: + vfb->priv->disable_xdamage = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_fb_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VinoFB *vfb = VINO_FB (object); + + switch (prop_id) + { + case PROP_SCREEN: + g_value_set_object (value, vfb->priv->screen); + break; + case PROP_DISABLE_XDAMAGE: + g_value_set_boolean (value, vfb->priv->disable_xdamage); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_fb_instance_init (VinoFB *vfb) +{ + vfb->priv = g_new0 (VinoFBPrivate, 1); + +#ifdef VINO_HAVE_XSHM + vfb->priv->fb_image_x_shm_info.shmid = -1; + vfb->priv->fb_image_x_shm_info.shmaddr = (char *) -1; + + vfb->priv->scanline_x_shm_info.shmid = -1; + vfb->priv->scanline_x_shm_info.shmaddr = (char *) -1; + + vfb->priv->tile_x_shm_info.shmid = -1; + vfb->priv->tile_x_shm_info.shmaddr = (char *) -1; +#endif /* VINO_HAVE_XSHM */ +} + +static void +vino_fb_class_init (VinoFBClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = vino_fb_finalize; + gobject_class->set_property = vino_fb_set_property; + gobject_class->get_property = vino_fb_get_property; + + klass->damage_notify = NULL; + klass->size_changed = NULL; + + g_object_class_install_property (gobject_class, + PROP_SCREEN, + g_param_spec_object ("screen", + "Screen", + "The screen to be monitored", + GDK_TYPE_SCREEN, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_DISABLE_XDAMAGE, + g_param_spec_boolean ("disable-xdamage", + "Disable XDamage", + "Whether to disable XDamage", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + signals [DAMAGE_NOTIFY] = + g_signal_new ("damage-notify", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (VinoFBClass, damage_notify), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + signals [SIZE_CHANGED] = + g_signal_new ("size-changed", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (VinoFBClass, size_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +GType +vino_fb_get_type (void) +{ + static GType object_type = 0; + + if (!object_type) + { + static const GTypeInfo object_info = + { + sizeof (VinoFBClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) vino_fb_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (VinoFB), + 0, /* n_preallocs */ + (GInstanceInitFunc) vino_fb_instance_init, + }; + + object_type = g_type_register_static (G_TYPE_OBJECT, + "VinoFB", + &object_info, 0); + } + + return object_type; +} + + +VinoFB * +vino_fb_new (GdkScreen *screen, gboolean disable_xdamage) +{ + VinoFB *vfb; + + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + vfb = g_object_new (VINO_TYPE_FB, + "disable-xdamage", disable_xdamage, + "screen", screen, + NULL); + if (vfb && !vfb->priv->fb_image) + { + g_object_unref (vfb); + return NULL; + } + + return vfb; +} + +GdkScreen * +vino_fb_get_screen (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), NULL); + + return vfb->priv->screen; +} + +char * +vino_fb_get_pixels (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), NULL); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->data; +} + +int +vino_fb_get_width (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->width; +} + +int +vino_fb_get_height (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->height; +} + +int +vino_fb_get_bits_per_pixel (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->bits_per_pixel; +} +int +vino_fb_get_rowstride (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->bytes_per_line; +} + +int +vino_fb_get_depth (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->depth; +} + +GdkByteOrder +vino_fb_get_byte_order (VinoFB *vfb) +{ + g_return_val_if_fail (VINO_IS_FB (vfb), -1); + + g_assert (vfb->priv->fb_image != NULL); + + return vfb->priv->fb_image->bitmap_bit_order == MSBFirst ? GDK_MSB_FIRST : GDK_LSB_FIRST; +} + +void +vino_fb_get_color_masks (VinoFB *vfb, + gulong *red_mask, + gulong *green_mask, + gulong *blue_mask) +{ + g_return_if_fail (VINO_IS_FB (vfb)); + + g_assert (vfb->priv->fb_image != NULL); + + if (red_mask) + *red_mask = vfb->priv->fb_image->red_mask; + if (green_mask) + *green_mask = vfb->priv->fb_image->green_mask; + if (blue_mask) + *blue_mask = vfb->priv->fb_image->blue_mask; +} + +static inline void +vino_fb_debug_dump_damage (VinoFB *vfb, + cairo_region_t *region) +{ +#ifdef GNOME_ENABLE_DEBUG + if (_vino_debug_flags & VINO_DEBUG_POLLING) + { + cairo_rectangle_int_t extents; + int n_rects; + int area; + int i; + + cairo_region_get_extents (vfb->priv->damage_region, &extents); + + fprintf (stderr, "Dump of damage region: extents (%d, %d) (%d x %d)\n", + extents.x, extents.y, extents.width, extents.height); + + area = 0; + n_rects = cairo_region_num_rectangles (region); + for (i = 0; i < n_rects; i++) + { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + + fprintf (stderr, "\t(%d, %d) (%d x %d)\n", + rect.x, rect.y, rect.width, rect.height); + area += rect.width * rect.height; + } + + fprintf (stderr, "Bounding area %d, damaged area %d ... (%d%%)\n", + extents.width * extents.height, area, + (area * 100) / (extents.width * extents.height)); + } +#endif +} + +cairo_region_t * +vino_fb_steal_damage (VinoFB *vfb) +{ + cairo_region_t *retval; + + g_return_val_if_fail (VINO_IS_FB (vfb), NULL); + + retval = vfb->priv->damage_region; + vino_fb_debug_dump_damage (vfb, retval); + + vfb->priv->damage_region = NULL; + + return retval; +} diff --git a/server/vino-fb.h b/server/vino-fb.h new file mode 100644 index 0000000..720040b --- /dev/null +++ b/server/vino-fb.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_FB_H__ +#define __VINO_FB_H__ + +#include <glib-object.h> +#include <gdk/gdk.h> +#include <cairo/cairo.h> + +G_BEGIN_DECLS + +#define VINO_TYPE_FB (vino_fb_get_type ()) +#define VINO_FB(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), VINO_TYPE_FB, VinoFB)) +#define VINO_FB_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), VINO_TYPE_FB, VinoFBClass)) +#define VINO_IS_FB(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINO_TYPE_FB)) +#define VINO_IS_FB_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), VINO_TYPE_FB)) +#define VINO_FB_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), VINO_TYPE_FB, VinoFBClass)) + +typedef struct _VinoFB VinoFB; +typedef struct _VinoFBClass VinoFBClass; +typedef struct _VinoFBPrivate VinoFBPrivate; + +struct _VinoFB +{ + GObject base; + + VinoFBPrivate *priv; +}; + +struct _VinoFBClass +{ + GObjectClass base_class; + + void (* damage_notify) (VinoFB *vfb); + void (* size_changed) (VinoFB *vfb); +}; + +GType vino_fb_get_type (void) G_GNUC_CONST; + +VinoFB *vino_fb_new (GdkScreen *screen, gboolean disable_xdamage); + +GdkScreen *vino_fb_get_screen (VinoFB *vfb); +char *vino_fb_get_pixels (VinoFB *vfb); +int vino_fb_get_width (VinoFB *vfb); +int vino_fb_get_height (VinoFB *vfb); +int vino_fb_get_bits_per_pixel (VinoFB *vfb); +int vino_fb_get_rowstride (VinoFB *vfb); +int vino_fb_get_depth (VinoFB *vfb); +GdkByteOrder vino_fb_get_byte_order (VinoFB *vfb); +void vino_fb_get_color_masks (VinoFB *vfb, + gulong *red_mask, + gulong *green_mask, + gulong *blue_mask); + +cairo_region_t * vino_fb_steal_damage (VinoFB *vfb); + +G_END_DECLS + +#endif /* __VINO_FB_H__ */ diff --git a/server/vino-input.c b/server/vino-input.c new file mode 100644 index 0000000..8efd6cf --- /dev/null +++ b/server/vino-input.c @@ -0,0 +1,1182 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + * Jonh Wendell <wendell@bani.com.br> + * + * + * The keyboard and pointer handling code is borrowed from + * x11vnc.c in libvncserver/contrib which is: + * + * Copyright (c) 2002-2003 Karl J. Runge <runge@karlrunge.com> + * + * x11vnc.c itself is based heavily on: + * the originial x11vnc.c in libvncserver (Johannes E. Schindelin) + * krfb, the KDE desktopsharing project (Tim Jansen) + * x0rfbserver, the original native X vnc server (Jens Wagner) + */ + +/* + * Theory of keyboard operation + * + * The remote VNC client sends us a series of key press and release + * events identified as X keysyms. (Even Windows clients use X + * keysyms; that's just how the protocol works.) We then use our + * knowledge of the keyboard layout to translate the keysyms into + * keycodes, and use XTEST to send events for the appropriate + * keycodes. + * + * + * Keyboard layouts + * + * The XKEYBOARD extension describes the keyboard as having up to 4 + * "groups" (layouts), and each key on the keyboard has some number of + * "levels" corresponding to combinations of modifier keys. Different + * keys may have different numbers of levels, with different meanings. + * The "Alt-Gr" key on the keyboard is bound to the keysym + * ISO_Level3_Shift, which is a modifer that switches to a level + * called "Level3" on some keys. + * + * The core X protocol (on non-XKB servers) has a simpler model, in + * which there are normally 2 groups, and each group has 2 levels + * (unshifted and shifted). The "Alt-Gr" key is bound to the keysym + * Mode_switch, which is a modifier key that switches to the second + * group when it is held down. + * + * Our model is a simplification of the XKB model that also fits in + * well with the core model; there are between 1 and 4 groups + * (keyboard layouts), and each group has exactly 4 levels (plain, + * Shift or NumLock, Alt-Gr, and Shift+Alt-Gr). + * + * + * Details of key event processing + * + * When a modifier keypress is received, vino sends a KeyPress to the + * server, and when the corresponding keyrelease event is received, it + * sends a KeyRelease to the server. But for non-modifier keys, it + * always sends both a KeyPress and a KeyRelease together when it + * receives just the keypress event. (This is because we assume that + * the client side will handle "key repeat", and if we left the key + * pressed down on the server as well, we'd get double repeating.) + * + * Shift and Alt-Gr are treated slightly different from the other + * modifier keys; they are considered to be just implementation + * details of how you type a particular keysym. Eg, if you type + * Control+Shift+? (on a US keyboard), you're typing Control because + * you want the Control key to be pressed, but you're only typing + * Shift because it's required to get a "?" rather than a "/". + * Different keyboard layouts require Shift and Alt-Gr to be used for + * different keysyms, so if the client and server keyboards are not of + * the same type, vino will sometimes need to send fake press and + * release events for Shift and Alt-Gr in order to be able to type the + * keys the client intended to type. (On keys that have no shifted + * state, like the arrow and function keys, Shift and Alt-Gr behave + * as ordinary modifiers, the same way Control and Alt do.) + * + * Two further bits of special behavior are needed for NumLock; first, + * the second key level, which is normally "Shift", actually + * corresponds to "NumLock" on keypad keys. Second, since the server's + * NumLock key could plausibly be locked in either state, we need to + * take its state into account when typing keypad keys. If the server + * supports XKB, we use the XkbStateNotify event to track NumLock + * state changes. If the server doesn't support XKB, we have to + * explicitly query the modifier state any time the client types a + * keypad key. + * + * On servers that support XKB, we also have to worry about multiple + * keyboard layouts. We need to keep track of what keysyms are + * available in what layouts, and what layout (or "group") the server + * is currently using. When a keysym arrives, we look for a way to + * type that keysym in the current group, but if it's only available + * in a different group, we have to change groups temporarily to type + * it (in the same way we have to temporarily change modifiers + * sometimes). Doing this programmatically is a little bit tricky; XKB + * provides XkbLatchGroup(), but if the layout doesn't use + * "XkbWrapIntoRange" semantics, then that can only switch to + * higher-numbered groups. Alternatively, we could find the + * group-switching keys on the keyboard and use them the way we use + * the Shift and Alt-Gr keys, but there are several different ways + * that group switching could be set up, and we'd need to support all + * of them. Anyway, all of the layouts in the xkeyboard-config package + * use XkbWrapIntoRange, so XkbLatchGroup() works for us in that case, + * so we just require that, and don't support multiple groups if the + * layout uses XkbRedirectIntoRange or XkbClampIntoRange. + * + * Two additional problems show up with Windows-based clients; first, + * Windows considers Alt-Gr to be equivalent to Control_L + Alt_R, so + * we have to translate that. Second, Windows clients never send + * events for dead keys. Instead, if you type a dead acute accent key + * followed by "e", it sends a single keypress event for XK_eacute. + * This works fine when the current keyboard layout has a key for that + * precomposed keysym, but if it doesn't, we need to decompose it back + * into multiple keypresses. There is no guarantee that the + * decompositions we use will actually work, but since compositions + * happen in the library, not the server, there is no way to find out + * 100% reliably what compositions are available to the window + * currently being typed into, so this is the best we can do. + */ + +#include <config.h> + +#include "vino-input.h" + +#include <string.h> +#include <gdk/gdkx.h> +#include <gtk/gtk.h> +#include <X11/Xlib.h> +#include <X11/keysym.h> +#ifdef VINO_HAVE_XTEST +#include <X11/extensions/XTest.h> +#endif +#ifdef VINO_HAVE_XKB +#include <X11/XKBlib.h> +#endif + +#include "vino-util.h" + +#define VINO_IS_MODIFIER_KEYSYM(k) (((k) >= XK_Shift_L && (k) <= XK_Hyper_R) || \ + (k) == XK_Num_Lock || \ + (k) == XK_Mode_switch || \ + (k) == XK_ISO_Level3_Shift) + +#define VINO_IS_KEYPAD_KEYSYM(k) ((k) >= XK_KP_Space && (k) <= XK_KP_Equal) + +typedef enum +{ + VINO_LEFT_SHIFT = 1 << 0, + VINO_RIGHT_SHIFT = 1 << 1, + VINO_LEFT_CONTROL = 1 << 2, + VINO_RIGHT_ALT = 1 << 3, + VINO_ALT_GR = 1 << 4, + VINO_NUM_LOCK = 1 << 5 +} VinoModifierState; + +typedef enum +{ + VINO_LEVEL_PLAIN = 0, + VINO_LEVEL_SHIFT = 1, + VINO_LEVEL_ALTGR = 2, + VINO_LEVEL_SHIFT_ALTGR = 3, + VINO_LEVEL_NUM_LOCK = 4 +} VinoLevel; + +#define VINO_NUM_LEVELS 4 /* NumLock is special and doesn't count */ +#define VINO_NUM_GROUPS 4 + +#define VINO_LEVEL(state) ((((state) & (VINO_LEFT_SHIFT | VINO_RIGHT_SHIFT)) ? VINO_LEVEL_SHIFT : 0) | \ + (((state) & VINO_ALT_GR) ? VINO_LEVEL_ALTGR : 0) | \ + (((state) & VINO_NUM_LOCK) ? VINO_LEVEL_NUM_LOCK : 0)) + +#define VINO_LEVEL_IS_SHIFT(level) (level & VINO_LEVEL_SHIFT) +#define VINO_LEVEL_IS_ALTGR(level) (level & VINO_LEVEL_ALTGR) +#define VINO_LEVEL_IS_NUM_LOCK(level) (level & VINO_LEVEL_NUM_LOCK) + +typedef struct +{ + KeyCode keycode; + guint level; + gboolean keypad; +} VinoKeybinding; + +typedef struct +{ + guint8 button_mask; + VinoModifierState modifier_state; +#ifdef VINO_HAVE_XKB + int current_group; +#endif + + GHashTable *keybindings; + GHashTable *decompositions; + KeyCode left_shift_keycode; + KeyCode right_shift_keycode; + KeyCode left_control_keycode; + KeyCode alt_gr_keycode; + KeyCode num_lock_keycode; + + KeySym alt_gr_keysym; + guint num_lock_mod; + +#ifdef VINO_HAVE_XKB + int xkb_num_groups; + int xkb_event_type; +#endif + + guint initialized : 1; + guint xtest_supported : 1; + guint xkb_supported : 1; + guint n_pointer_buttons; +} VinoInputData; + +/* Data is per-display, but we only handle a single display. + */ +static VinoInputData global_input_data = { 0, }; + +static gchar *cb_str = NULL; + +#ifdef VINO_HAVE_XTEST + +static struct { + guint32 composed; + guint32 decomposed[3]; +} decompositions[] = { + { XK_Cabovedot, { XK_dead_abovedot, 'C', 0 } }, + { XK_Eabovedot, { XK_dead_abovedot, 'E', 0 } }, + { XK_Gabovedot, { XK_dead_abovedot, 'G', 0 } }, + { XK_Iabovedot, { XK_dead_abovedot, 'I', 0 } }, + { XK_Zabovedot, { XK_dead_abovedot, 'Z', 0 } }, + { XK_cabovedot, { XK_dead_abovedot, 'c', 0 } }, + { XK_eabovedot, { XK_dead_abovedot, 'e', 0 } }, + { XK_gabovedot, { XK_dead_abovedot, 'g', 0 } }, + { XK_idotless, { XK_dead_abovedot, 'i', 0 } }, + { XK_zabovedot, { XK_dead_abovedot, 'z', 0 } }, + { XK_abovedot, { XK_dead_abovedot, XK_dead_abovedot, 0 } }, + + { XK_Aring, { XK_dead_abovering, 'A', 0 } }, + { XK_Uring, { XK_dead_abovering, 'U', 0 } }, + { XK_aring, { XK_dead_abovering, 'a', 0 } }, + { XK_uring, { XK_dead_abovering, 'u', 0 } }, + { XK_degree, { XK_dead_abovering, XK_dead_abovering, 0 } }, + + { XK_Aacute, { XK_dead_acute, 'A', 0 } }, + { XK_Cacute, { XK_dead_acute, 'C', 0 } }, + { XK_Eacute, { XK_dead_acute, 'E', 0 } }, + { XK_Iacute, { XK_dead_acute, 'I', 0 } }, + { XK_Lacute, { XK_dead_acute, 'L', 0 } }, + { XK_Nacute, { XK_dead_acute, 'N', 0 } }, + { XK_Oacute, { XK_dead_acute, 'O', 0 } }, + { XK_Racute, { XK_dead_acute, 'R', 0 } }, + { XK_Sacute, { XK_dead_acute, 'S', 0 } }, + { XK_Uacute, { XK_dead_acute, 'U', 0 } }, + { XK_Yacute, { XK_dead_acute, 'Y', 0 } }, + { XK_Zacute, { XK_dead_acute, 'Z', 0 } }, + { XK_aacute, { XK_dead_acute, 'a', 0 } }, + { XK_cacute, { XK_dead_acute, 'c', 0 } }, + { XK_eacute, { XK_dead_acute, 'e', 0 } }, + { XK_iacute, { XK_dead_acute, 'i', 0 } }, + { XK_lacute, { XK_dead_acute, 'l', 0 } }, + { XK_nacute, { XK_dead_acute, 'n', 0 } }, + { XK_oacute, { XK_dead_acute, 'o', 0 } }, + { XK_racute, { XK_dead_acute, 'r', 0 } }, + { XK_sacute, { XK_dead_acute, 's', 0 } }, + { XK_uacute, { XK_dead_acute, 'u', 0 } }, + { XK_yacute, { XK_dead_acute, 'y', 0 } }, + { XK_zacute, { XK_dead_acute, 'z', 0 } }, + { XK_acute, { XK_dead_acute, XK_dead_acute, 0 } }, + + { XK_Abreve, { XK_dead_breve, 'A', 0 } }, + { XK_Gbreve, { XK_dead_breve, 'G', 0 } }, + { XK_Ubreve, { XK_dead_breve, 'U', 0 } }, + { XK_abreve, { XK_dead_breve, 'a', 0 } }, + { XK_gbreve, { XK_dead_breve, 'g', 0 } }, + { XK_ubreve, { XK_dead_breve, 'u', 0 } }, + { XK_breve, { XK_dead_breve, XK_dead_breve, 0 } }, + + { XK_Ccaron, { XK_dead_caron, 'C', 0 } }, + { XK_Dcaron, { XK_dead_caron, 'D', 0 } }, + { XK_Ecaron, { XK_dead_caron, 'E', 0 } }, + { XK_Lcaron, { XK_dead_caron, 'L', 0 } }, + { XK_Ncaron, { XK_dead_caron, 'N', 0 } }, + { XK_Rcaron, { XK_dead_caron, 'R', 0 } }, + { XK_Scaron, { XK_dead_caron, 'S', 0 } }, + { XK_Tcaron, { XK_dead_caron, 'T', 0 } }, + { XK_Zcaron, { XK_dead_caron, 'Z', 0 } }, + { XK_ccaron, { XK_dead_caron, 'c', 0 } }, + { XK_dcaron, { XK_dead_caron, 'd', 0 } }, + { XK_ecaron, { XK_dead_caron, 'e', 0 } }, + { XK_lcaron, { XK_dead_caron, 'l', 0 } }, + { XK_ncaron, { XK_dead_caron, 'n', 0 } }, + { XK_rcaron, { XK_dead_caron, 'r', 0 } }, + { XK_scaron, { XK_dead_caron, 's', 0 } }, + { XK_tcaron, { XK_dead_caron, 't', 0 } }, + { XK_zcaron, { XK_dead_caron, 'z', 0 } }, + { XK_caron, { XK_dead_caron, XK_dead_caron, 0 } }, + + { XK_Ccedilla, { XK_dead_cedilla, 'C', 0 } }, + { XK_Gcedilla, { XK_dead_cedilla, 'G', 0 } }, + { XK_Kcedilla, { XK_dead_cedilla, 'K', 0 } }, + { XK_Lcedilla, { XK_dead_cedilla, 'L', 0 } }, + { XK_Ncedilla, { XK_dead_cedilla, 'N', 0 } }, + { XK_Rcedilla, { XK_dead_cedilla, 'R', 0 } }, + { XK_Scedilla, { XK_dead_cedilla, 'S', 0 } }, + { XK_Tcedilla, { XK_dead_cedilla, 'T', 0 } }, + { XK_ccedilla, { XK_dead_cedilla, 'c', 0 } }, + { XK_gcedilla, { XK_dead_cedilla, 'g', 0 } }, + { XK_kcedilla, { XK_dead_cedilla, 'k', 0 } }, + { XK_lcedilla, { XK_dead_cedilla, 'l', 0 } }, + { XK_ncedilla, { XK_dead_cedilla, 'n', 0 } }, + { XK_rcedilla, { XK_dead_cedilla, 'r', 0 } }, + { XK_scedilla, { XK_dead_cedilla, 's', 0 } }, + { XK_tcedilla, { XK_dead_cedilla, 't', 0 } }, + { XK_cedilla, { XK_dead_cedilla, XK_dead_cedilla, 0 } }, + + { XK_Acircumflex, { XK_dead_circumflex, 'A', 0 } }, + { XK_Ccircumflex, { XK_dead_circumflex, 'C', 0 } }, + { XK_Ecircumflex, { XK_dead_circumflex, 'E', 0 } }, + { XK_Gcircumflex, { XK_dead_circumflex, 'G', 0 } }, + { XK_Hcircumflex, { XK_dead_circumflex, 'H', 0 } }, + { XK_Icircumflex, { XK_dead_circumflex, 'I', 0 } }, + { XK_Jcircumflex, { XK_dead_circumflex, 'J', 0 } }, + { XK_Ocircumflex, { XK_dead_circumflex, 'O', 0 } }, + { XK_Scircumflex, { XK_dead_circumflex, 'S', 0 } }, + { XK_Ucircumflex, { XK_dead_circumflex, 'U', 0 } }, + { XK_acircumflex, { XK_dead_circumflex, 'a', 0 } }, + { XK_ccircumflex, { XK_dead_circumflex, 'c', 0 } }, + { XK_ecircumflex, { XK_dead_circumflex, 'e', 0 } }, + { XK_gcircumflex, { XK_dead_circumflex, 'g', 0 } }, + { XK_hcircumflex, { XK_dead_circumflex, 'h', 0 } }, + { XK_icircumflex, { XK_dead_circumflex, 'i', 0 } }, + { XK_jcircumflex, { XK_dead_circumflex, 'j', 0 } }, + { XK_ocircumflex, { XK_dead_circumflex, 'o', 0 } }, + { XK_scircumflex, { XK_dead_circumflex, 's', 0 } }, + { XK_ucircumflex, { XK_dead_circumflex, 'u', 0 } }, + { XK_asciicircum, { XK_dead_circumflex, XK_dead_circumflex, 0 } }, + + { XK_Adiaeresis, { XK_dead_diaeresis, 'A', 0 } }, + { XK_Ediaeresis, { XK_dead_diaeresis, 'E', 0 } }, + { XK_Idiaeresis, { XK_dead_diaeresis, 'I', 0 } }, + { XK_Odiaeresis, { XK_dead_diaeresis, 'O', 0 } }, + { XK_Udiaeresis, { XK_dead_diaeresis, 'U', 0 } }, + { XK_adiaeresis, { XK_dead_diaeresis, 'a', 0 } }, + { XK_ediaeresis, { XK_dead_diaeresis, 'e', 0 } }, + { XK_idiaeresis, { XK_dead_diaeresis, 'i', 0 } }, + { XK_odiaeresis, { XK_dead_diaeresis, 'o', 0 } }, + { XK_udiaeresis, { XK_dead_diaeresis, 'u', 0 } }, + { XK_ydiaeresis, { XK_dead_diaeresis, 'y', 0 } }, + { XK_diaeresis, { XK_dead_diaeresis, XK_dead_diaeresis, 0 } }, + + { XK_Odoubleacute, { XK_dead_doubleacute, 'O', 0 } }, + { XK_Udoubleacute, { XK_dead_doubleacute, 'U', 0 } }, + { XK_odoubleacute, { XK_dead_doubleacute, 'o', 0 } }, + { XK_udoubleacute, { XK_dead_doubleacute, 'u', 0 } }, + { XK_doubleacute, { XK_dead_doubleacute, XK_dead_doubleacute, 0 } }, + + { XK_Agrave, { XK_dead_grave, 'A', 0 } }, + { XK_Egrave, { XK_dead_grave, 'E', 0 } }, + { XK_Igrave, { XK_dead_grave, 'I', 0 } }, + { XK_Ograve, { XK_dead_grave, 'O', 0 } }, + { XK_Ugrave, { XK_dead_grave, 'U', 0 } }, + { XK_agrave, { XK_dead_grave, 'a', 0 } }, + { XK_egrave, { XK_dead_grave, 'e', 0 } }, + { XK_igrave, { XK_dead_grave, 'i', 0 } }, + { XK_ograve, { XK_dead_grave, 'o', 0 } }, + { XK_ugrave, { XK_dead_grave, 'u', 0 } }, + { XK_grave, { XK_dead_grave, XK_dead_grave, 0 } }, + + { XK_Amacron, { XK_dead_macron, 'A', 0 } }, + { XK_Emacron, { XK_dead_macron, 'E', 0 } }, + { XK_Imacron, { XK_dead_macron, 'I', 0 } }, + { XK_Omacron, { XK_dead_macron, 'O', 0 } }, + { XK_Umacron, { XK_dead_macron, 'U', 0 } }, + { XK_amacron, { XK_dead_macron, 'a', 0 } }, + { XK_emacron, { XK_dead_macron, 'e', 0 } }, + { XK_imacron, { XK_dead_macron, 'i', 0 } }, + { XK_omacron, { XK_dead_macron, 'o', 0 } }, + { XK_umacron, { XK_dead_macron, 'u', 0 } }, + { XK_macron, { XK_dead_macron, XK_dead_macron, 0 } }, + + { XK_Aogonek, { XK_dead_ogonek, 'A', 0 } }, + { XK_Eogonek, { XK_dead_ogonek, 'E', 0 } }, + { XK_Iogonek, { XK_dead_ogonek, 'I', 0 } }, + { XK_Uogonek, { XK_dead_ogonek, 'U', 0 } }, + { XK_aogonek, { XK_dead_ogonek, 'a', 0 } }, + { XK_eogonek, { XK_dead_ogonek, 'e', 0 } }, + { XK_iogonek, { XK_dead_ogonek, 'i', 0 } }, + { XK_uogonek, { XK_dead_ogonek, 'u', 0 } }, + { XK_ogonek, { XK_dead_ogonek, XK_dead_ogonek, 0 } }, + + { XK_Atilde, { XK_dead_tilde, 'A', 0 } }, + { XK_Itilde, { XK_dead_tilde, 'I', 0 } }, + { XK_Ntilde, { XK_dead_tilde, 'N', 0 } }, + { XK_Otilde, { XK_dead_tilde, 'O', 0 } }, + { XK_Utilde, { XK_dead_tilde, 'U', 0 } }, + { XK_atilde, { XK_dead_tilde, 'a', 0 } }, + { XK_itilde, { XK_dead_tilde, 'i', 0 } }, + { XK_ntilde, { XK_dead_tilde, 'n', 0 } }, + { XK_otilde, { XK_dead_tilde, 'o', 0 } }, + { XK_utilde, { XK_dead_tilde, 'u', 0 } }, + { XK_asciitilde, { XK_dead_tilde, XK_dead_tilde, 0 } }, + + { XK_Greek_ALPHAaccent, { XK_dead_acute, XK_Greek_ALPHA, 0 } }, + { XK_Greek_EPSILONaccent, { XK_dead_acute, XK_Greek_EPSILON, 0 } }, + { XK_Greek_ETAaccent, { XK_dead_acute, XK_Greek_ETA, 0 } }, + { XK_Greek_IOTAaccent, { XK_dead_acute, XK_Greek_IOTA, 0 } }, + { XK_Greek_OMICRONaccent, { XK_dead_acute, XK_Greek_OMICRON, 0 } }, + { XK_Greek_UPSILONaccent, { XK_dead_acute, XK_Greek_UPSILON, 0 } }, + { XK_Greek_OMEGAaccent, { XK_dead_acute, XK_Greek_OMEGA, 0 } }, + { XK_Greek_alphaaccent, { XK_dead_acute, XK_Greek_alpha, 0 } }, + { XK_Greek_epsilonaccent, { XK_dead_acute, XK_Greek_epsilon, 0 } }, + { XK_Greek_etaaccent, { XK_dead_acute, XK_Greek_eta, 0 } }, + { XK_Greek_iotaaccent, { XK_dead_acute, XK_Greek_iota, 0 } }, + { XK_Greek_omicronaccent, { XK_dead_acute, XK_Greek_omicron, 0 } }, + { XK_Greek_upsilonaccent, { XK_dead_acute, XK_Greek_upsilon, 0 } }, + { XK_Greek_omegaaccent, { XK_dead_acute, XK_Greek_omega, 0 } }, + + { XK_Greek_IOTAdieresis, { XK_dead_diaeresis, XK_Greek_IOTA, 0 } }, + { XK_Greek_UPSILONdieresis, { XK_dead_diaeresis, XK_Greek_UPSILON, 0 } }, + { XK_Greek_iotadieresis, { XK_dead_diaeresis, XK_Greek_iota, 0 } }, + { XK_Greek_upsilondieresis, { XK_dead_diaeresis, XK_Greek_upsilon, 0 } }, + + { XK_Greek_iotaaccentdieresis, { XK_dead_acute, XK_dead_diaeresis, XK_Greek_iota } }, + { XK_Greek_upsilonaccentdieresis, { XK_dead_acute, XK_dead_diaeresis, XK_Greek_upsilon } } +}; +static const int num_decompositions = G_N_ELEMENTS (decompositions); + +static void vino_input_initialize_keycodes (Display *xdisplay); + +static void +vino_input_initialize_keycodes_core (Display *xdisplay) +{ + int min_keycodes, max_keycodes; + int keysyms_per_keycode; + KeySym sym; + int keycode, level, i; + XModifierKeymap *modmap; + + global_input_data.alt_gr_keysym = XK_Mode_switch; + + XDisplayKeycodes (xdisplay, &min_keycodes, &max_keycodes); + XGetKeyboardMapping (xdisplay, min_keycodes, 0, &keysyms_per_keycode); + + /* We iterate by level first, then by keycode, to ensure that we + * find an unshifted match for each keysym, if possible. + */ + for (level = 0; level < MAX (keysyms_per_keycode, VINO_NUM_LEVELS); level++) + { + for (keycode = min_keycodes; keycode < max_keycodes; keycode++) + { + VinoKeybinding *binding; + gboolean unmodifiable = FALSE; + + sym = XKeycodeToKeysym (xdisplay, keycode, level); + if (sym == NoSymbol) + continue; + + if (g_hash_table_lookup (global_input_data.keybindings, + GUINT_TO_POINTER (sym))) + continue; + + binding = g_new (VinoKeybinding, VINO_NUM_GROUPS); + g_hash_table_insert (global_input_data.keybindings, + GUINT_TO_POINTER (sym), binding); + + /* There's only one group in plain X, so use "binding[0]". */ + binding[0].keycode = keycode; + binding[0].keypad = VINO_IS_KEYPAD_KEYSYM (sym); + + /* Check if this is a key like XK_uparrow that doesn't change + * when you press Shift/Alt-Gr. + */ + if (level == VINO_LEVEL_PLAIN) + { + KeySym shiftsym, altgrsym; + + shiftsym = XKeycodeToKeysym (xdisplay, keycode, VINO_LEVEL_SHIFT); + altgrsym = (keysyms_per_keycode <= VINO_LEVEL_ALTGR) ? NoSymbol : + XKeycodeToKeysym (xdisplay, keycode, VINO_LEVEL_ALTGR); + + unmodifiable = + (shiftsym == NoSymbol || shiftsym == sym) && + (altgrsym == NoSymbol || altgrsym == sym); + } + + if (unmodifiable) + binding[0].level = -1; + else if (binding[0].keypad && level == VINO_LEVEL_SHIFT) + binding[0].level = VINO_LEVEL_NUM_LOCK; + else + binding[0].level = level; + + dprintf (INPUT, "\t0x%.2x (%s) -> key %d level %d\n", (guint)sym, + XKeysymToString (sym), keycode, level); + } + } + + /* Find the modifier mask corresponding to NumLock */ + keycode = XKeysymToKeycode (xdisplay, XK_Num_Lock); + modmap = XGetModifierMapping (xdisplay); + for (i = 0; i < 8 * modmap->max_keypermod; i++) + { + if (modmap->modifiermap[i] == keycode) + { + global_input_data.num_lock_mod = 1 << (i / modmap->max_keypermod); + break; + } + } + XFreeModifiermap (modmap); +} + +#ifdef VINO_HAVE_XKB +static void +vino_input_initialize_keycodes_xkb (Display *xdisplay) +{ + XkbDescPtr xkb; + XkbStateRec state; + int levelmap[XkbMaxKeyTypes][VINO_NUM_LEVELS], kc, kt, level, group; + int LevelThreeMask; + VinoKeybinding *binding; + KeySym sym; + + global_input_data.alt_gr_keysym = XK_ISO_Level3_Shift; + + xkb = XkbGetMap (xdisplay, XkbAllClientInfoMask, XkbUseCoreKbd); + g_assert (xkb != NULL); + + LevelThreeMask = XkbKeysymToModifiers (xdisplay, XK_ISO_Level3_Shift); + + /* XKB's levels don't map to VinoLevel, and in fact, may be + * different for different types of keys (eg, the second level on + * the function keys is Ctrl+Alt, not Shift). So we create + * "levelmap" to map VinoLevel values to keytype-specific levels. + */ + for (kt = 0; kt < xkb->map->num_types; kt++) + { + XkbKeyTypePtr type; + XkbModsPtr mods; + int ktl; + + levelmap[kt][VINO_LEVEL_PLAIN] = 0; + levelmap[kt][VINO_LEVEL_SHIFT] = -1; + levelmap[kt][VINO_LEVEL_ALTGR] = -1; + levelmap[kt][VINO_LEVEL_SHIFT_ALTGR] = -1; + + type = &xkb->map->types[kt]; + for (ktl = 0; ktl < type->map_count; ktl++) + { + if (!type->map[ktl].active) + continue; + + mods = &type->map[ktl].mods; + if (mods->mask == ShiftMask) + levelmap[kt][VINO_LEVEL_SHIFT] = type->map[ktl].level; + else if (mods->mask == LevelThreeMask) + levelmap[kt][VINO_LEVEL_ALTGR] = type->map[ktl].level; + else if (mods->mask == (ShiftMask | LevelThreeMask)) + levelmap[kt][VINO_LEVEL_SHIFT_ALTGR] = type->map[ktl].level; + } + + if (levelmap[kt][VINO_LEVEL_SHIFT] == -1) + levelmap[kt][VINO_LEVEL_SHIFT] = levelmap[kt][VINO_LEVEL_PLAIN]; + if (levelmap[kt][VINO_LEVEL_ALTGR] == -1) + levelmap[kt][VINO_LEVEL_ALTGR] = levelmap[kt][VINO_LEVEL_PLAIN]; + if (levelmap[kt][VINO_LEVEL_SHIFT_ALTGR] == -1) + levelmap[kt][VINO_LEVEL_SHIFT_ALTGR] = levelmap[kt][VINO_LEVEL_SHIFT]; + } + + /* Now map out the keysyms. As in the core case, we iterate levels + * before keycodes, so our first match for a keysym in each group + * will be unshifted if possible. + */ + for (group = 0; group < VINO_NUM_GROUPS; group++) + { + for (level = 0; level < VINO_NUM_LEVELS; level++) + { + for (kc = xkb->min_key_code; kc <= xkb->max_key_code; kc++) + { + int ngroups, kgroup; + + ngroups = XkbKeyNumGroups (xkb, kc); + if (ngroups == 0) + continue; + + /* If the key has fewer groups than the keyboard as a + * whole does, figure out which of the key's groups + * ("kgroup") will end up being used when the keyboard + * as a whole is using group "group". + */ + if (group >= ngroups) + { + if (xkb->map->key_sym_map[kc].group_info & XkbRedirectIntoRange) + kgroup = 0; + else if (xkb->map->key_sym_map[kc].group_info & XkbClampIntoRange) + kgroup = ngroups - 1; + else + kgroup = group % ngroups; + } + else + kgroup = group; + + kt = xkb->map->key_sym_map[kc].kt_index[kgroup]; + sym = XkbKeySymEntry (xkb, kc, levelmap[kt][level], kgroup); + if (!sym) + continue; + + binding = g_hash_table_lookup (global_input_data.keybindings, + GUINT_TO_POINTER (sym)); + if (!binding) + { + binding = g_new0 (VinoKeybinding, VINO_NUM_GROUPS); + g_hash_table_insert (global_input_data.keybindings, + GUINT_TO_POINTER (sym), binding); + } + + if (!binding[group].keycode) + { + binding[group].keycode = kc; + binding[group].keypad = (kt == XkbKeypadIndex); + if (xkb->map->types[kt].num_levels == 1) + binding[group].level = -1; + else if (binding[group].keypad && level == VINO_LEVEL_SHIFT) + binding[group].level = VINO_LEVEL_NUM_LOCK; + else + binding[group].level = level; + } + + if (kgroup == group) + { + dprintf (INPUT, "\t0x%.2x (%s) -> key %d group %d level %d\n", + (guint)sym, XKeysymToString (sym), kc, group, level); + } + } + } + } + + /* Figure out how switching between groups works; we only support + * XkbWrapIntoRange. (In theory, xkb->ctrls->group_info should equal + * XkbWrapIntoRange (ie, 0) when that's the case, but in practice + * there seems to be junk in the lower 4 bits, so we test for the + * absence of the other two flags instead.) + */ + if (XkbGetControls (xdisplay, XkbGroupsWrapMask, xkb) == Success) + { + if (!(xkb->ctrls->groups_wrap & (XkbClampIntoRange | XkbRedirectIntoRange))) + { + dprintf (INPUT, "%d groups configured\n", xkb->ctrls->num_groups); + global_input_data.xkb_num_groups = xkb->ctrls->num_groups; + } + else if (xkb->ctrls->num_groups > 1) + { + dprintf (INPUT, "groups_wrap is not WrapIntoRange, can't use\n"); + global_input_data.xkb_num_groups = -1; + } + } + + /* Find NumLock modifier mask and get initial NumLock state */ + global_input_data.num_lock_mod = XkbKeysymToModifiers (xdisplay, XK_Num_Lock); + if (XkbGetState (xdisplay, XkbUseCoreKbd, &state) == Success) + { + if (state.locked_mods & global_input_data.num_lock_mod) + global_input_data.modifier_state |= VINO_NUM_LOCK; + } + + XkbFreeKeyboard (xkb, 0, True); +} + +static GdkFilterReturn +xkb_event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data) +{ + VinoInputData *data = user_data; + XkbStateNotifyEvent *state; + + if (((XEvent *)xevent)->type == data->xkb_event_type) + { + switch (((XkbAnyEvent *)xevent)->xkb_type) + { + case XkbStateNotify: + state = (XkbStateNotifyEvent *)xevent; + + if (state->changed & XkbGroupStateMask) + { + data->current_group = state->group; + dprintf (INPUT, "current_group -> %d\n", data->current_group); + } + if (state->changed & XkbModifierLockMask) + { + if (state->locked_mods & data->num_lock_mod) + data->modifier_state |= VINO_NUM_LOCK; + else + data->modifier_state &= ~VINO_NUM_LOCK; + dprintf (INPUT, "locked_mods -> %u, modifier_state -> %u\n", + state->locked_mods, data->modifier_state); + } + break; + + case XkbMapNotify: + XkbRefreshKeyboardMapping ((XkbMapNotifyEvent *)xevent); + /* fall through */ + + case XkbControlsNotify: + vino_input_initialize_keycodes (((XkbAnyEvent *)xevent)->display); + break; + } + } + + return GDK_FILTER_CONTINUE; +} +#endif + +static void +vino_input_initialize_keycodes (Display *xdisplay) +{ + dprintf (INPUT, "Initializing keysym to keycode/modifier mapping\n"); + + if (global_input_data.keybindings) + g_hash_table_destroy (global_input_data.keybindings); + global_input_data.keybindings = + g_hash_table_new_full (NULL, NULL, NULL, g_free); + +#ifdef VINO_HAVE_XKB + if (global_input_data.xkb_supported) + vino_input_initialize_keycodes_xkb (xdisplay); +#endif + if (!global_input_data.xkb_supported) + vino_input_initialize_keycodes_core (xdisplay); + + global_input_data.left_shift_keycode = XKeysymToKeycode (xdisplay, XK_Shift_L); + global_input_data.right_shift_keycode = XKeysymToKeycode (xdisplay, XK_Shift_R); + global_input_data.left_control_keycode = XKeysymToKeycode (xdisplay, XK_Control_L); + global_input_data.num_lock_keycode = XKeysymToKeycode (xdisplay, XK_Num_Lock); + global_input_data.alt_gr_keycode = XKeysymToKeycode (xdisplay, global_input_data.alt_gr_keysym); +} +#endif /* VINO_HAVE_XTEST */ + +gboolean +vino_input_init (GdkDisplay *display) +{ +#ifdef VINO_HAVE_XTEST + Display *xdisplay; + int ignore, *i = &ignore; + int d; + + g_assert (global_input_data.initialized != TRUE); + + xdisplay = GDK_DISPLAY_XDISPLAY (display); + + if (XTestQueryExtension (xdisplay, i, i, i, i)) + { + XTestGrabControl (xdisplay, True); + + global_input_data.xtest_supported = TRUE; + } + + global_input_data.n_pointer_buttons = XGetPointerMapping (xdisplay, NULL, 0); + +#ifdef VINO_HAVE_XKB + if (XkbQueryExtension (xdisplay, NULL, &global_input_data.xkb_event_type, + NULL, NULL, NULL)) + { + XkbStateRec state; + + dprintf (INPUT, "Using XKB\n"); + + XkbGetState (xdisplay, XkbUseCoreKbd, &state); + global_input_data.current_group = state.group; + + XkbSelectEventDetails (xdisplay, XkbUseCoreKbd, XkbStateNotify, + XkbGroupStateMask | XkbModifierLockMask, + XkbGroupStateMask | XkbModifierLockMask); + XkbSelectEventDetails (xdisplay, XkbUseCoreKbd, XkbMapNotify, + XkbAllClientInfoMask, XkbAllClientInfoMask); + XkbSelectEventDetails (xdisplay, XkbUseCoreKbd, XkbControlsNotify, + XkbGroupsWrapMask, XkbGroupsWrapMask); + + gdk_window_add_filter (NULL, xkb_event_filter, &global_input_data); + + global_input_data.xkb_supported = TRUE; + } + else +#endif + global_input_data.xkb_supported = FALSE; + + global_input_data.decompositions = g_hash_table_new (NULL, NULL); + for (d = 0; d < num_decompositions; d++) + { + g_hash_table_insert (global_input_data.decompositions, + GUINT_TO_POINTER (decompositions[d].composed), + decompositions[d].decomposed); + } + + vino_input_initialize_keycodes (xdisplay); + + global_input_data.initialized = TRUE; + + return global_input_data.xtest_supported; +#else + return global_input_data.xtest_supported = FALSE; +#endif /* VINO_HAVE_XTEST */ +} + +void +vino_input_handle_pointer_event (GdkScreen *screen, + guint8 button_mask, + guint16 x, + guint16 y) +{ +#ifdef VINO_HAVE_XTEST + GdkDisplay *gdkdisplay; + Display *xdisplay; + guint8 prev_mask = global_input_data.button_mask; + int i; + gboolean generate_motion_event = FALSE; + + gdkdisplay = gdk_screen_get_display (screen); + xdisplay = GDK_DISPLAY_XDISPLAY (gdkdisplay); + + /* Only generate a motion event if the pointer has moved. See GNOME bug + * #564520. */ + if(button_mask != prev_mask) + { + int curr_x, curr_y; + GdkDevice *pointer; + + pointer = gdk_device_manager_get_client_pointer( + gdk_display_get_device_manager(gdkdisplay)); + gdk_device_get_position(pointer, NULL, &curr_x, &curr_y); + if(x != curr_x || y != curr_y) + generate_motion_event = TRUE; + } + else + { + generate_motion_event = TRUE; + } + + if(generate_motion_event) + { + XTestFakeMotionEvent(xdisplay, gdk_screen_get_number(screen), x, y, + CurrentTime); + dprintf (INPUT, "Injected motion event: %d, %d\n", x, y); + } + + for (i = 0; i < global_input_data.n_pointer_buttons; i++) + { + gboolean button_down = (button_mask & (1 << i)) != FALSE; + gboolean prev_button_down = (prev_mask & (1 << i)) != FALSE; + + if (button_down != prev_button_down) + { + XTestFakeButtonEvent (xdisplay, i + 1, button_down, CurrentTime); + + dprintf (INPUT, "Injected button %d %s\n", + i + 1, button_down ? "press" : "release"); + } + } + + global_input_data.button_mask = button_mask; +#endif /* VINO_HAVE_XTEST */ +} + +#ifdef VINO_HAVE_XTEST +static inline void +vino_input_update_modifier_state (VinoInputData *input_data, + VinoModifierState state, + guint32 check_keysym, + guint32 keysym, + gboolean key_press) +{ + if (keysym == check_keysym) + { + if (key_press) + input_data->modifier_state |= state; + else + input_data->modifier_state &= ~state; + } +} + +/* If @key_press is %TRUE, adjusts the modifier state on the keyboard + * such that it's possible to type @binding. If @key_press is %FALSE, + * undoes that. + */ +static void +vino_input_fake_modifiers (Display *xdisplay, + VinoInputData *input_data, + VinoKeybinding *binding, + gboolean key_press) +{ + VinoModifierState modifier_state = input_data->modifier_state; + int cur_level; + + if (binding->level == -1) + { + /* The keysym is unaffected by modifier keys, so we should leave + * the modifiers in their current state. + */ + return; + } + + if (binding->keypad && !input_data->xkb_supported) + { + Window root, child; + int rx, ry, wx, wy; + unsigned int mask; + + XQueryPointer (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)), + &root, &child, &rx, &ry, &wx, &wy, &mask); + if (mask & input_data->num_lock_mod) + modifier_state |= VINO_NUM_LOCK; + else + modifier_state &= ~VINO_NUM_LOCK; + } + + cur_level = VINO_LEVEL (modifier_state); + + if (VINO_LEVEL_IS_SHIFT (cur_level) && !VINO_LEVEL_IS_SHIFT (binding->level)) + { + dprintf (INPUT, "Faking Shift %s\n", key_press ? "release" : "press"); + + if (modifier_state & VINO_LEFT_SHIFT) + XTestFakeKeyEvent (xdisplay, + input_data->left_shift_keycode, + !key_press, + CurrentTime); + + if (modifier_state & VINO_RIGHT_SHIFT) + XTestFakeKeyEvent (xdisplay, + input_data->right_shift_keycode, + !key_press, + CurrentTime); + } + + if (!VINO_LEVEL_IS_SHIFT (cur_level) && VINO_LEVEL_IS_SHIFT (binding->level)) + { + dprintf (INPUT, "Faking Shift %s\n", key_press ? "press" : "release"); + + XTestFakeKeyEvent (xdisplay, + input_data->left_shift_keycode, + key_press, + CurrentTime); + } + + if (VINO_LEVEL_IS_ALTGR (cur_level) != VINO_LEVEL_IS_ALTGR (binding->level)) + { + gboolean want_pressed = VINO_LEVEL_IS_ALTGR (binding->level) ? key_press : !key_press; + + dprintf (INPUT, "Faking Alt-Gr %s\n", want_pressed ? "press" : "release"); + + XTestFakeKeyEvent (xdisplay, + input_data->alt_gr_keycode, + want_pressed, + CurrentTime); + } + + if (VINO_LEVEL_IS_NUM_LOCK (cur_level) != VINO_LEVEL_IS_NUM_LOCK (binding->level)) + { + dprintf (INPUT, "Faking NumLock press/release\n"); + + XTestFakeKeyEvent (xdisplay, + input_data->num_lock_keycode, + True, + CurrentTime); + XTestFakeKeyEvent (xdisplay, + input_data->num_lock_keycode, + False, + CurrentTime); + } +} + +static gboolean +vino_input_fake_keypress (Display *xdisplay, guint32 keysym) +{ + VinoKeybinding *binding = g_hash_table_lookup (global_input_data.keybindings, + GUINT_TO_POINTER (keysym)); + + if (binding) + { + int group; + +#ifdef VINO_HAVE_XKB + if (global_input_data.xkb_supported) + { + if (binding[global_input_data.current_group].keycode) + group = global_input_data.current_group; + else if (global_input_data.xkb_num_groups > 1) + { + for (group = 0; group < VINO_NUM_GROUPS; group ++) + { + if (binding[group].keycode) + { + dprintf (INPUT, "Latching group to %d\n", group); + XkbLatchGroup (xdisplay, XkbUseCoreKbd, + (group - global_input_data.current_group) % + global_input_data.xkb_num_groups); + break; + } + } + if (group == VINO_NUM_GROUPS) + return FALSE; + } + else + return FALSE; + } + else +#endif + group = 0; + + vino_input_fake_modifiers (xdisplay, &global_input_data, + &binding[group], TRUE); + + dprintf (INPUT, "Injecting keysym 0x%.2x (%s) press/release (via keycode %d, level %d)\n", + keysym, XKeysymToString (keysym), binding[group].keycode, binding[group].level); + + XTestFakeKeyEvent (xdisplay, binding[group].keycode, TRUE, CurrentTime); + XTestFakeKeyEvent (xdisplay, binding[group].keycode, FALSE, CurrentTime); + + vino_input_fake_modifiers (xdisplay, &global_input_data, + &binding[group], FALSE); + + return TRUE; + } + else + { + guint32 *decomposition = + g_hash_table_lookup (global_input_data.decompositions, + GUINT_TO_POINTER (keysym)); + int i; + + if (decomposition) + { + for (i = 0; i < 3 && decomposition[i]; i++) + { + if (!vino_input_fake_keypress (xdisplay, decomposition[i])) + return FALSE; + } + + return TRUE; + } + } + + return FALSE; +} +#endif /* VINO_HAVE_XTEST */ + +void +vino_input_handle_key_event (GdkScreen *screen, + guint32 keysym, + gboolean key_press) +{ +#ifdef VINO_HAVE_XTEST + Display *xdisplay; + + dprintf (INPUT, "Got key %s for %s\n", key_press ? "press" : "release", + XKeysymToString (keysym)); + + /* + * We inject a key press/release pair for all key presses + * and ignore key releases. The exception is modifiers. + */ + + if (!key_press && !VINO_IS_MODIFIER_KEYSYM (keysym)) + return; + + xdisplay = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen)); + + vino_input_update_modifier_state (&global_input_data, + VINO_LEFT_SHIFT, XK_Shift_L, + keysym, key_press); + + vino_input_update_modifier_state (&global_input_data, + VINO_RIGHT_SHIFT, XK_Shift_R, + keysym, key_press); + + vino_input_update_modifier_state (&global_input_data, + VINO_LEFT_CONTROL, XK_Control_L, + keysym, key_press); + + vino_input_update_modifier_state (&global_input_data, + VINO_ALT_GR, global_input_data.alt_gr_keysym, + keysym, key_press); + + if (!VINO_IS_MODIFIER_KEYSYM (keysym)) + { + vino_input_fake_keypress (xdisplay, keysym); + } + else if (key_press && keysym == XK_Alt_R && + (global_input_data.modifier_state & VINO_LEFT_CONTROL)) + { + /* Windows translates Alt-Gr to XK_Ctrl_L + XK_Alt_R */ + + dprintf (INPUT, "Translating Ctrl+Alt press into Alt-Gr\n"); + + XTestFakeKeyEvent (xdisplay, global_input_data.left_control_keycode, + FALSE, CurrentTime); + XTestFakeKeyEvent (xdisplay, global_input_data.alt_gr_keycode, + TRUE, CurrentTime); + + global_input_data.modifier_state |= (VINO_RIGHT_ALT | VINO_ALT_GR); + } + else if (!key_press && keysym == XK_Control_L && + (global_input_data.modifier_state & VINO_RIGHT_ALT)) + { + dprintf (INPUT, "Translating Ctrl+Alt release into Alt-Gr\n"); + + XTestFakeKeyEvent (xdisplay, global_input_data.alt_gr_keycode, + FALSE, CurrentTime); + + global_input_data.modifier_state &= ~(VINO_RIGHT_ALT | VINO_ALT_GR); + } + else if (keysym != XK_Caps_Lock && keysym != XK_Num_Lock) + { + KeyCode keycode; + + if ((keycode = XKeysymToKeycode (xdisplay, keysym)) != NoSymbol) + { + dprintf (INPUT, "Injecting keysym 0x%.2x (%s) %s (keycode %d)\n", + keysym, XKeysymToString (keysym), + key_press ? "press" : "release", keycode); + + XTestFakeKeyEvent (xdisplay, keycode, key_press, CurrentTime); + } + } + + XFlush (xdisplay); + +#endif /* VINO_HAVE_XTEST */ +} + +/* text was actually requested */ +static void +copy_cb (GtkClipboard *clipboard, + GtkSelectionData *data, + guint info, + VinoServer *server) +{ + gtk_selection_data_set_text (data, cb_str, -1); +} + +void +vino_input_handle_clipboard_event (GdkScreen *screen, + char *text, + int len, + VinoServer *server) +{ + GtkClipboard *cb; + gsize a, b; + GtkTargetEntry targets[] = { + {"UTF8_STRING", 0, 0}, + {"COMPOUND_TEXT", 0, 0}, + {"TEXT", 0, 0}, + {"STRING", 0, 0}, + }; + + if (!text) + return; + + g_free (cb_str); + cb_str = g_convert (text, len, "utf-8", "iso8859-1", &a, &b, NULL); + if (cb_str) + { + cb = gtk_clipboard_get_for_display (gdk_screen_get_display (screen), + GDK_SELECTION_CLIPBOARD); + gtk_clipboard_set_with_owner (cb, + targets, + G_N_ELEMENTS(targets), + (GtkClipboardGetFunc) copy_cb, + NULL, + G_OBJECT (server)); + } +} diff --git a/server/vino-input.h b/server/vino-input.h new file mode 100644 index 0000000..1fb1cf7 --- /dev/null +++ b/server/vino-input.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + * Jonh Wendell <wendell@bani.com.br> + */ + +#ifndef __VINO_INPUT_H__ +#define __VINO_INPUT_H__ + +#include <gdk/gdk.h> +#include "vino-server.h" + +G_BEGIN_DECLS + +gboolean vino_input_init (GdkDisplay *display); +void vino_input_handle_pointer_event (GdkScreen *screen, + guint8 button_mask, + guint16 x, + guint16 y); +void vino_input_handle_key_event (GdkScreen *screen, + guint32 keysym, + gboolean key_press); +void vino_input_handle_clipboard_event (GdkScreen *screen, + char *text, + int len, + VinoServer *server); + +G_END_DECLS + +#endif /* __VINO_INPUT_H__ */ diff --git a/server/vino-main.c b/server/vino-main.c new file mode 100644 index 0000000..dd95de7 --- /dev/null +++ b/server/vino-main.c @@ -0,0 +1,334 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + * Jonh Wendell <wendell@bani.com.br> + * Ryan Lortie <desrt@desrt.ca> + */ + +#include "config.h" + +#include <glib/gi18n.h> +#include <gtk/gtk.h> +#include <locale.h> + +#include "vino-input.h" +#include "vino-mdns.h" +#include "vino-server.h" +#include "vino-util.h" +#include "vino-dbus-listener.h" +#include "eggsmclient.h" + +#ifdef VINO_HAVE_TELEPATHY_GLIB +static gboolean tube = FALSE; +#endif + +#ifdef VINO_HAVE_GNUTLS +#include <gnutls/gnutls.h> + +# ifdef GNOME_ENABLE_DEBUG +static void +vino_debug_gnutls (int level, + const char *str) +{ + fputs (str, stderr); +} +# endif +#endif /* VINO_HAVE_GNUTLS */ + +typedef struct +{ + GSettings *settings; + GdkDisplay *display; + VinoDBusListener **listeners; + gint n_screens; + EggSMClient *sm_client; + GMainLoop *main_loop; +} VinoApplication; + +typedef enum +{ + /* Screen sharing enabled, Vino should always be running */ + RUN_MODE_ALL, + /* Screen sharing disabled but Vino started with --tube; + * should exit once the tube has been handled */ + RUN_MODE_TUBE, + /* Screen sharing disabled and Vino started without --tube; + * should exit right away */ + RUN_MODE_EXIT, +} RunMode; + +static RunMode +get_run_mode (VinoApplication *vino) +{ +#ifdef VINO_HAVE_TELEPATHY_GLIB + if (tube) + return RUN_MODE_TUBE; +#endif + + return RUN_MODE_ALL; +} + +#ifdef VINO_HAVE_TELEPATHY_GLIB +static void +tube_disconnected_cb (VinoDBusListener *listener, + VinoTubeServer *server, + VinoApplication *vino) +{ + if (get_run_mode (vino) != RUN_MODE_TUBE) + return; + + g_message ("Tube has been closed, exiting."); + g_main_loop_quit (vino->main_loop); +} +#endif + +static void +bus_acquired (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + VinoApplication *vino = user_data; + gint i; + + /* Get the listeners on their object paths before we acquire the name. + * + * This prevents incoming calls to the well-known name from finding + * the listeners missing. + * + * Later (after we acquire the name) we will create the server objects + * and register them with the listeners. + */ + vino->display = gdk_display_get_default (); + vino->n_screens = gdk_display_get_n_screens (vino->display); + vino->listeners = g_new (VinoDBusListener *, vino->n_screens); + for (i = 0; i < vino->n_screens; i++) + { + vino->listeners[i] = vino_dbus_listener_new (i); + +#ifdef VINO_HAVE_TELEPATHY_GLIB + g_signal_connect (vino->listeners[i], "tube-disconnected", + G_CALLBACK (tube_disconnected_cb), vino); +#endif + } +} + +static void +name_acquired (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + VinoApplication *vino = user_data; + gboolean view_only; + gint i; + gboolean reject = FALSE; + + if (get_run_mode (vino) == RUN_MODE_TUBE) + { + g_message ("Started in tube mode; reject network connections"); + reject = TRUE; + } + + /* Name is acquired. Start up the servers and register them with the + * listeners. + */ + if ((view_only = !vino_input_init (vino->display))) + g_warning (_("Your XServer does not support the XTest extension - " + "remote desktop access will be view-only\n")); + + for (i = 0; i < vino->n_screens; i++) + { + VinoServer *server; + + /* The server is initially "on-hold" while we set everything up. */ + server = vino_server_new (gdk_display_get_screen (vino->display, + i), + view_only); + + g_settings_bind (vino->settings, "prompt-enabled", + server, "prompt-enabled", G_SETTINGS_BIND_GET); + + /* Only bind to the user's view-only preference if we're not + * forced to be view-only by an incapable X server. + */ + if (!view_only) + g_settings_bind (vino->settings, "view-only", + server, "view-only", G_SETTINGS_BIND_GET); + + g_settings_bind (vino->settings, "network-interface", + server, "network-interface", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "use-alternative-port", + server, "use-alternative-port", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "alternative-port", + server, "alternative-port", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "authentication-methods", + server, "auth-methods", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "require-encryption", + server, "require-encryption", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "require-encryption", + server, "require-encryption", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "vnc-password", + server, "vnc-password", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "lock-screen-on-disconnect", + server, "lock-screen", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "disable-background", + server, "disable-background", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "use-upnp", + server, "use-upnp", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "disable-xdamage", + server, "disable-xdamage", G_SETTINGS_BIND_GET); + g_settings_bind (vino->settings, "icon-visibility", + vino_server_get_status_icon (server), + "visibility", G_SETTINGS_BIND_GET); + + vino_dbus_listener_set_server (vino->listeners[i], server); + vino_server_set_on_hold (server, FALSE); + vino_server_set_reject_incoming (server, reject); + + vino_mdns_start(vino_server_get_network_interface (server)); + + g_object_unref (server); + } +} + +static void +name_lost (GDBusConnection *connection, + const gchar *name, + gpointer user_data) +{ + VinoApplication *vino = user_data; + + g_message ("The desktop sharing service is already running, exiting."); + g_main_loop_quit (vino->main_loop); +} + +static void +sm_quit (VinoApplication *vino) +{ + g_main_loop_quit (vino->main_loop); +} + +int +main (int argc, char **argv) +{ + VinoApplication vino = { 0, }; + + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, VINO_LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + /* Parse commandline arguments */ + { + GOptionContext *context; + GError *error = NULL; + GOptionEntry options[] = { +#ifdef VINO_HAVE_TELEPATHY_GLIB + { "tube", 't', + 0, G_OPTION_ARG_NONE, &tube, + /* Tube mode uses Telepathy's Tubes to share a user's desktop directly + * with another IM contact. http://telepathy.freedesktop.org/wiki/Tubes + */ + N_("Start in tube mode, for the ‘Share my Desktop’ feature"), + NULL }, +#endif + { NULL } + }; + + /* Call this before parsing options, as that triggers creation of an SM + * client. Creating the client in a disabled state, and then switching to + * the real state later, avoids a critical warning on startup. */ + egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_DISABLED); + + context = g_option_context_new (_("- VNC Server for GNOME")); + g_option_context_add_group (context, gtk_get_option_group (TRUE)); + g_option_context_add_group (context, egg_sm_client_get_option_group ()); + g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); + + if (!g_option_context_parse (context, &argc, &argv, &error)) + { + g_print ("%s\n%s\n", error->message, + _("Run 'vino-server --help' to see a full list of " + "available command line options")); + g_error_free (error); + return 1; + } + g_option_context_free (context); + } + + /* GSettings */ + vino.settings = g_settings_new ("org.gnome.Vino"); + + gtk_window_set_default_icon_name ("preferences-desktop-remote-desktop"); + g_set_application_name (_("GNOME Desktop Sharing")); + vino.main_loop = g_main_loop_new (NULL, FALSE); + +#ifdef GNOME_ENABLE_DEBUG + vino_setup_debug_flags (); +# ifdef VINO_HAVE_GNUTLS + if (_vino_debug_flags & VINO_DEBUG_TLS) + { + gnutls_global_set_log_level (10); + gnutls_global_set_log_function (vino_debug_gnutls); + } +# endif /* VINO_HAVE_GNUTLS */ +#endif + + /* Session management */ + vino.sm_client = egg_sm_client_get (); + egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_NO_RESTART); + g_signal_connect_swapped (vino.sm_client, "quit", + G_CALLBACK (sm_quit), &vino); + + + /* Start attempting to acquire the bus name. + * This starts everything... + */ + g_bus_own_name (G_BUS_TYPE_SESSION, "org.gnome.Vino", + G_BUS_NAME_OWNER_FLAGS_NONE, + bus_acquired, name_acquired, name_lost, + &vino, NULL); + + + g_main_loop_run (vino.main_loop); + + + /* Shutdown */ + if (vino.listeners) + { + gint i; + + /* We need to finalize these to ensure + * that mdns gets shutdown properly. + */ + for (i = 0; i < vino.n_screens; i++) + g_object_unref (vino.listeners[i]); + + g_free (vino.listeners); + } + + vino_mdns_shutdown (); + + g_main_loop_unref (vino.main_loop); + g_object_unref (vino.sm_client); + g_object_unref (vino.settings); + + return 0; +} diff --git a/server/vino-marshal.list b/server/vino-marshal.list new file mode 100644 index 0000000..1558ec9 --- /dev/null +++ b/server/vino-marshal.list @@ -0,0 +1 @@ +VOID:POINTER,ENUM diff --git a/server/vino-mdns.c b/server/vino-mdns.c new file mode 100644 index 0000000..4f7e693 --- /dev/null +++ b/server/vino-mdns.c @@ -0,0 +1,391 @@ +/* + * Copyright (C) 2005 Ethium, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Sebastien Estienne <sebastien.estienne@gmail.com> + * + */ + +#include <config.h> + +#include "vino-mdns.h" + +#ifdef VINO_HAVE_AVAHI + +#include <sys/socket.h> +#include <net/if.h> +#include <string.h> +#include <avahi-client/publish.h> +#include <avahi-common/alternative.h> +#include <avahi-common/error.h> +#include <avahi-glib/glib-watch.h> +#include <avahi-glib/glib-malloc.h> + +#include "vino-util.h" + +static void vino_mdns_add_services (AvahiClient *client); + +static GHashTable *mdns_services = NULL; +static AvahiGLibPoll *mdns_glib_poll = NULL; +static AvahiClient *mdns_client = NULL; +static AvahiEntryGroup *mdns_entry_group = NULL; +char *mdns_service_name = NULL; +char *iface_name = NULL; + +static const char * +vino_mdns_get_service_name (void) +{ + if (mdns_service_name == NULL) + { + const char *show_username; + + /* + * Translators: translate "vino-mdns:showusername" to + * "1" if "%s's remote desktop" doesn't make sense in + * your language. + */ + show_username = _("vino-mdns:showusername"); + if (strcmp (show_username, "1") == 0) + { + mdns_service_name = g_strdup (g_get_user_name ()); + } + else + { + /* + * Translators: this string is used ONLY if you + * translated "vino-mdns:showusername" to anything + * other than "1" + */ + mdns_service_name = g_strdup_printf (_("%s's remote desktop on %s"), + g_get_user_name (), + g_get_host_name ()); + } + } + + return mdns_service_name; +} + +static void +vino_mdns_make_alternative_service_name (void) +{ + char *alternative_name; + + vino_mdns_get_service_name (); + + g_assert (mdns_service_name != NULL); + + alternative_name = avahi_alternative_service_name (mdns_service_name); + g_free (mdns_service_name); + mdns_service_name = alternative_name; +} + +static void +vino_mdns_entry_group_state_changed (AvahiEntryGroup *entry_group, + AvahiEntryGroupState state, + AvahiClient *client) +{ + switch (state) + { + case AVAHI_ENTRY_GROUP_ESTABLISHED: + dprintf (MDNS, "Avahi: Service '%s' successfully established.\n", + vino_mdns_get_service_name ()); + break; + + case AVAHI_ENTRY_GROUP_COLLISION: + vino_mdns_make_alternative_service_name (); + + dprintf (MDNS, "Avahi: Service name collision, renaming service to '%s'\n", + vino_mdns_get_service_name ()); + + vino_mdns_add_services (client); + break; + + case AVAHI_ENTRY_GROUP_FAILURE: + case AVAHI_ENTRY_GROUP_UNCOMMITED: + case AVAHI_ENTRY_GROUP_REGISTERING: + break; + + default: + g_assert_not_reached (); + break; + } +} + +static void +vino_mdns_add_service_foreach (char *type, + gpointer value, + AvahiEntryGroup *entry_group) +{ + int port; + int ret; + int iface; + + port = GPOINTER_TO_INT (value); + + if (iface_name && iface_name[0]) + { + if (if_nametoindex (iface_name) == 0) + iface = AVAHI_IF_UNSPEC; + else + iface = if_nametoindex (iface_name); + } + else + iface = AVAHI_IF_UNSPEC; + + ret = avahi_entry_group_add_service (mdns_entry_group, + iface, + AVAHI_PROTO_UNSPEC, + 0, + vino_mdns_get_service_name (), + type, + NULL, + NULL, + port, + NULL); + if (ret < 0) + { + dprintf (MDNS, "Avahi: Failed to add %s on port %d : %s\n", + type, port, avahi_strerror (ret)); + } + else + { + dprintf (MDNS, "Avahi: Successfuly added %s on port %d\n", + type, port); + } +} + +static void +vino_mdns_add_services (AvahiClient *client) +{ + int ret = 0; + + if (mdns_entry_group == NULL) + { + mdns_entry_group = + avahi_entry_group_new (client, + (AvahiEntryGroupCallback) vino_mdns_entry_group_state_changed, + client); + if (mdns_entry_group == NULL) + { + dprintf (MDNS, "Avahi: avahi_entry_group_new () failed: %s\n", + avahi_strerror (avahi_client_errno (client))); + return; + } + } + + dprintf (MDNS, "Avahi: Adding service '%s'\n", + vino_mdns_get_service_name ()); + + g_hash_table_foreach (mdns_services, + (GHFunc) vino_mdns_add_service_foreach, + mdns_entry_group); + + if ((ret = avahi_entry_group_commit (mdns_entry_group)) < 0) + { + dprintf (MDNS, "Avahi: Failed to commit entry_group: %s\n", + avahi_strerror (ret)); + } +} + +static void +vino_mdns_restart (void) +{ + if (mdns_service_name != NULL) + g_free (mdns_service_name); + mdns_service_name = NULL; + + if (mdns_entry_group != NULL) + avahi_entry_group_free (mdns_entry_group); + mdns_entry_group = NULL; + + if (mdns_client != NULL) + avahi_client_free (mdns_client); + mdns_client = NULL; + + vino_mdns_start (iface_name); +} + +static void +vino_mdns_client_state_changed (AvahiClient *client, + AvahiClientState state, + void *userdata) +{ + switch (state) + { + case AVAHI_CLIENT_S_RUNNING: + vino_mdns_add_services (client); + break; + + case AVAHI_CLIENT_S_COLLISION: + if (mdns_entry_group != NULL) + avahi_entry_group_reset (mdns_entry_group); + break; + + case AVAHI_CLIENT_FAILURE: + if (avahi_client_errno(client) == AVAHI_ERR_DISCONNECTED) + { + dprintf (MDNS, "Connection with Avahi daemon terminated, trying to reconnect.\n"); + vino_mdns_restart (); + } + else + { + dprintf (MDNS, "Client failure, exiting: %s\n", + avahi_strerror ( + avahi_client_errno (client))); + vino_mdns_stop (); + } + break; + + case AVAHI_CLIENT_CONNECTING: + dprintf (MDNS, "Client waiting for the Avahi daemon\n"); + break; + + case AVAHI_CLIENT_S_REGISTERING: + dprintf (MDNS, "Client registering\n"); + break; + + default: + g_assert_not_reached (); + break; + } +} + +void +vino_mdns_add_service (const char *type, + int port) +{ + if (mdns_services == NULL) + { + mdns_services = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + NULL); + } + + g_hash_table_replace (mdns_services, + g_strdup (type), + GINT_TO_POINTER (port)); +} + +void +vino_mdns_start (const char *iface) +{ + dprintf (MDNS, "Starting MDNS support.\n"); + + if (mdns_client != NULL) + return; /* already started */ + + if (mdns_services == NULL) + return; /* no services */ + + g_free (iface_name); + iface_name = g_strdup (iface); + + if (mdns_glib_poll == NULL) + { + avahi_set_allocator (avahi_glib_allocator ()); + + mdns_glib_poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT); + } + + mdns_client = avahi_client_new (avahi_glib_poll_get (mdns_glib_poll), + AVAHI_CLIENT_NO_FAIL, + vino_mdns_client_state_changed, + NULL, + NULL); + if (mdns_client == NULL) + { + dprintf (MDNS, "Failed to create Avahi Client.\n"); + vino_mdns_stop (); + return; + } +} + +void +vino_mdns_stop (void) +{ + dprintf (MDNS, "Stopping MDNS support.\n"); + + if (mdns_service_name != NULL) + g_free (mdns_service_name); + mdns_service_name = NULL; + + g_free (iface_name); + iface_name = NULL; + + if (mdns_entry_group != NULL) + avahi_entry_group_free (mdns_entry_group); + mdns_entry_group = NULL; + + if (mdns_client != NULL) + avahi_client_free (mdns_client); + mdns_client = NULL; + + if (mdns_glib_poll != NULL) + avahi_glib_poll_free (mdns_glib_poll); + mdns_glib_poll = NULL; + +} + +void +vino_mdns_shutdown (void) +{ + vino_mdns_stop (); + + if (mdns_services != NULL) + g_hash_table_destroy (mdns_services); + + mdns_services = NULL; +} + +const char * +vino_mdns_get_hostname (void) +{ + return mdns_client ? avahi_client_get_host_name_fqdn (mdns_client) : ""; +} + +#else /* !defined (VINO_HAVE_AVAHI) */ + +void +vino_mdns_add_service (const char *type, + int port) +{ +} + +void +vino_mdns_start (const char *iface) +{ +} + +void +vino_mdns_stop (void) +{ +} + +void +vino_mdns_shutdown (void) +{ +} + +const char * +vino_mdns_get_hostname (void) +{ + return ""; +} + +#endif /* VINO_HAVE_AVAHI */ diff --git a/server/vino-mdns.h b/server/vino-mdns.h new file mode 100644 index 0000000..a39ddb6 --- /dev/null +++ b/server/vino-mdns.h @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2005 Ethium, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Sebastien Estienne <sebastien.estienne@gmail.com> + * + */ + +#ifndef __VINO_MDNS_H__ +#define __VINO_MDNS_H__ + +#include <glib.h> + +G_BEGIN_DECLS + +void vino_mdns_add_service (const char *type, + int port); + +void vino_mdns_start (const char *iface); +void vino_mdns_stop (void); +void vino_mdns_shutdown (void); + +const char *vino_mdns_get_hostname (void); + +G_END_DECLS + +#endif /* __VINO_MDNS_H__ */ diff --git a/server/vino-prefs.c b/server/vino-prefs.c new file mode 100644 index 0000000..a35dec4 --- /dev/null +++ b/server/vino-prefs.c @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#include "config.h" + +#include "vino-prefs.h" + + +#include <string.h> +#include <glib/gstdio.h> +#include <signal.h> +#include <fcntl.h> +#include <stdlib.h> + +#include "vino-prefs.h" +#include "vino-util.h" +#include "vino-mdns.h" +#include "vino-status-icon.h" + +static GSettings *settings = NULL; +static gboolean force_view_only; + +static void +vino_prefs_restart_mdns (VinoServer *server, + gpointer data) +{ + vino_mdns_stop (); + vino_mdns_add_service ("_rfb._tcp", vino_server_get_port (server)); + vino_mdns_start (vino_server_get_network_interface (server)); +} + +VinoServer * +vino_prefs_create_server (GdkScreen *screen) +{ + VinoServer *server; + VinoStatusIcon *icon; + + /* Start the server 'on-hold' until all the settings are in, then go. */ + server = g_object_new (VINO_TYPE_SERVER, + "view-only", force_view_only, + "on-hold", TRUE, + "screen", screen, + NULL); + icon = vino_server_get_status_icon (server); + + g_settings_bind (settings, "prompt-enabled", + server, "prompt-enabled", G_SETTINGS_BIND_GET); + + if (!force_view_only) + g_settings_bind (settings, "view-only", + server, "view-only", G_SETTINGS_BIND_GET); + + g_settings_bind (settings, "network-interface", + server, "network-interface", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "use-alternative-port", + server, "use-alternative-port", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "alternative-port", + server, "alternative-port", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "authentication-methods", + server, "auth-methods", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "require-encryption", + server, "require-encryption", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "require-encryption", + server, "require-encryption", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "vnc-password", + server, "vnc-password", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "lock-screen-on-disconnect", + server, "lock-screen", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "disable-background", + server, "disable-background", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "use-upnp", + server, "use-upnp", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "disable-xdamage", + server, "disable-xdamage", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "notify-on-connect", + server, "notify-on-connect", G_SETTINGS_BIND_GET); + g_settings_bind (settings, "icon-visibility", + icon, "visibility", G_SETTINGS_BIND_GET); + + vino_server_set_on_hold (server, FALSE); + + g_signal_connect (server, "notify::alternative-port", G_CALLBACK (vino_prefs_restart_mdns), NULL); + g_signal_connect (server, "notify::use-alternative-port", G_CALLBACK(vino_prefs_restart_mdns), NULL); + g_signal_connect (server, "notify::network-interface", G_CALLBACK (vino_prefs_restart_mdns), NULL); + + return server; +} + +static void +vino_prefs_sighandler (int sig) +{ + g_message (_("Received signal %d, exiting."), sig); + vino_mdns_shutdown (); + vino_prefs_shutdown (); + exit (0); +} + +void +vino_prefs_init (gboolean view_only) +{ + settings = g_settings_new ("org.gnome.Vino"); + + signal (SIGINT, vino_prefs_sighandler); /* Ctrl+C */ + signal (SIGQUIT, vino_prefs_sighandler); + signal (SIGTERM, vino_prefs_sighandler); /* kill -15 */ + signal (SIGSEGV, vino_prefs_sighandler); /* Segmentation fault */ + + force_view_only = view_only; +} + +void +vino_prefs_shutdown (void) +{ + g_object_unref (settings); + settings = NULL; +} diff --git a/server/vino-prefs.h b/server/vino-prefs.h new file mode 100644 index 0000000..ee1d090 --- /dev/null +++ b/server/vino-prefs.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_PREFS_H__ +#define __VINO_PREFS_H__ + +#include <gdk/gdk.h> +#include "vino-server.h" + +G_BEGIN_DECLS + +void vino_prefs_init (gboolean view_only); +VinoServer *vino_prefs_create_server (GdkScreen *screen); +void vino_prefs_shutdown (void); + +G_END_DECLS + +#endif /* __VINO_PREFS_H__ */ diff --git a/server/vino-prompt.c b/server/vino-prompt.c new file mode 100644 index 0000000..f99b8e9 --- /dev/null +++ b/server/vino-prompt.c @@ -0,0 +1,355 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#include <config.h> + +#include "vino-prompt.h" + +#include <gtk/gtk.h> +#include <libnotify/notify.h> +#include "vino-util.h" +#include "vino-enums.h" +#include "vino-marshal.h" + +struct _VinoPromptPrivate +{ + GdkScreen *screen; + NotifyNotification *notification; + rfbClientPtr current_client; + GSList *pending_clients; +}; + +enum +{ + PROP_0, + PROP_SCREEN +}; + +enum +{ + RESPONSE, + LAST_SIGNAL +}; + +static gboolean vino_prompt_display (VinoPrompt *prompt, + rfbClientPtr rfb_client); + +static guint prompt_signals [LAST_SIGNAL] = { 0 }; + +G_DEFINE_TYPE (VinoPrompt, vino_prompt, G_TYPE_OBJECT); + +static void +clear_notification (VinoPrompt *prompt) +{ + if (prompt->priv->notification) + notify_notification_close (prompt->priv->notification, NULL); + g_clear_object (&prompt->priv->notification); +} + +static void +vino_prompt_finalize (GObject *object) +{ + VinoPrompt *prompt = VINO_PROMPT (object); + + g_slist_free (prompt->priv->pending_clients); + prompt->priv->pending_clients = NULL; + + clear_notification (prompt); + + g_free (prompt->priv); + prompt->priv = NULL; + + if (G_OBJECT_CLASS (vino_prompt_parent_class)->finalize) + G_OBJECT_CLASS (vino_prompt_parent_class)->finalize (object); +} + +static void +vino_prompt_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VinoPrompt *prompt = VINO_PROMPT (object); + + switch (prop_id) + { + case PROP_SCREEN: + vino_prompt_set_screen (prompt, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_prompt_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VinoPrompt *prompt = VINO_PROMPT (object); + + switch (prop_id) + { + case PROP_SCREEN: + g_value_set_object (value, prompt->priv->screen); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_prompt_init (VinoPrompt *prompt) +{ + prompt->priv = g_new0 (VinoPromptPrivate, 1); +} + +static void +vino_prompt_class_init (VinoPromptClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + VinoPromptClass *prompt_class = VINO_PROMPT_CLASS (klass); + + gobject_class->finalize = vino_prompt_finalize; + gobject_class->set_property = vino_prompt_set_property; + gobject_class->get_property = vino_prompt_get_property; + + prompt_class->response = NULL; + + g_object_class_install_property (gobject_class, + PROP_SCREEN, + g_param_spec_object ("screen", + _("Screen"), + _("The screen on which to display the prompt"), + GDK_TYPE_SCREEN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + prompt_signals [RESPONSE] = + g_signal_new ("response", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (VinoPromptClass, response), + NULL, NULL, + vino_marshal_VOID__POINTER_ENUM, + G_TYPE_NONE, + 2, + G_TYPE_POINTER, + VINO_TYPE_PROMPT_RESPONSE); + + vino_init_stock_items (); +} + +VinoPrompt * +vino_prompt_new (GdkScreen *screen) +{ + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return g_object_new (VINO_TYPE_PROMPT, + "screen", screen, + NULL); +} + +GdkScreen * +vino_prompt_get_screen (VinoPrompt *prompt) +{ + g_return_val_if_fail (VINO_IS_PROMPT (prompt), NULL); + + return prompt->priv->screen; +} + +void +vino_prompt_set_screen (VinoPrompt *prompt, + GdkScreen *screen) +{ + g_return_if_fail (VINO_IS_PROMPT (prompt)); + + if (prompt->priv->screen != screen) + { + prompt->priv->screen = screen; + + g_object_notify (G_OBJECT (prompt), "screen"); + } +} + +static void +vino_prompt_process_pending_clients (VinoPrompt *prompt) +{ + if (prompt->priv->pending_clients) + { + rfbClientPtr rfb_client = (rfbClientPtr) prompt->priv->pending_clients->data; + + prompt->priv->pending_clients = + g_slist_delete_link (prompt->priv->pending_clients, + prompt->priv->pending_clients); + + vino_prompt_display (prompt, rfb_client); + } +} + +static void +emit_response_signal (VinoPrompt *prompt, + rfbClientPtr rfb_client, + int response) +{ + dprintf (PROMPT, "Emiting response signal for %p: %s\n", + rfb_client, + response == VINO_RESPONSE_ACCEPT ? "accept" : "reject"); + + g_signal_emit (prompt, + prompt_signals [RESPONSE], + 0, + rfb_client, + response); +} + +static void +vino_prompt_handle_response (NotifyNotification *notification, + char *response, + gpointer user_data) +{ + VinoPrompt *prompt = user_data; + rfbClientPtr rfb_client; + int prompt_response = VINO_RESPONSE_INVALID; + + dprintf (PROMPT, "Got a response for client %p: %s\n", + prompt->priv->current_client, + response); + + if (g_strcmp0 (response, "accept") == 0) + prompt_response = VINO_RESPONSE_ACCEPT; + else + prompt_response = VINO_RESPONSE_REJECT; + + rfb_client = prompt->priv->current_client; + prompt->priv->current_client = NULL; + + clear_notification (prompt); + + if (rfb_client != NULL) + { + emit_response_signal (prompt, rfb_client, prompt_response); + } + + vino_prompt_process_pending_clients (prompt); +} + +static void +vino_prompt_handle_close (NotifyNotification *notification, + gpointer user_data) +{ + vino_prompt_handle_response (notification, "close", user_data); +} + +static gboolean +vino_prompt_setup_dialog (VinoPrompt *prompt) +{ + if (!notify_is_initted () && !notify_init (g_get_application_name ())) + { + g_printerr (_("Error initializing libnotify\n")); + return FALSE; + } + + return TRUE; +} + +static gboolean +vino_prompt_display (VinoPrompt *prompt, + rfbClientPtr rfb_client) +{ + char *host_label; + + if (prompt->priv->current_client) + return prompt->priv->current_client == rfb_client; + + if (!vino_prompt_setup_dialog (prompt)) + return FALSE; + + host_label = g_strdup_printf (_("A user on the computer '%s' is trying to remotely view or control your desktop."), + rfb_client->host); + + prompt->priv->notification = notify_notification_new (_("Another user is trying to view your desktop."), + host_label, + "preferences-desktop-remote-desktop"); + notify_notification_set_hint_string (prompt->priv->notification, "desktop-entry", "vino-server"); + notify_notification_add_action (prompt->priv->notification, + "refuse", + _("Refuse"), + vino_prompt_handle_response, + prompt, + NULL); + notify_notification_add_action (prompt->priv->notification, + "accept", + _("Accept"), + vino_prompt_handle_response, + prompt, + NULL); + g_signal_connect (prompt->priv->notification, "closed", + G_CALLBACK (vino_prompt_handle_close), prompt); + + + g_free (host_label); + + prompt->priv->current_client = rfb_client; + + notify_notification_show (prompt->priv->notification, NULL); + + dprintf (PROMPT, "Prompting for client %p\n", rfb_client); + + return TRUE; +} + +void +vino_prompt_add_client (VinoPrompt *prompt, + rfbClientPtr rfb_client) +{ + g_return_if_fail (VINO_IS_PROMPT (prompt)); + g_return_if_fail (rfb_client != NULL); + + if (!vino_prompt_display (prompt, rfb_client)) + { + dprintf (PROMPT, "Prompt in progress for %p: queueing %p\n", + prompt->priv->current_client, rfb_client); + prompt->priv->pending_clients = + g_slist_append (prompt->priv->pending_clients, rfb_client); + } +} + +void +vino_prompt_remove_client (VinoPrompt *prompt, + rfbClientPtr rfb_client) +{ + g_return_if_fail (VINO_IS_PROMPT (prompt)); + g_return_if_fail (rfb_client != NULL); + + if (prompt->priv->current_client == rfb_client) + { + clear_notification (prompt); + } + else + { + prompt->priv->pending_clients = + g_slist_remove (prompt->priv->pending_clients, rfb_client); + } +} diff --git a/server/vino-prompt.h b/server/vino-prompt.h new file mode 100644 index 0000000..6c6797c --- /dev/null +++ b/server/vino-prompt.h @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_PROMPT_H__ +#define __VINO_PROMPT_H__ + +#include <glib-object.h> +#include <gdk/gdk.h> +#include <rfb/rfb.h> + +G_BEGIN_DECLS + +#define VINO_TYPE_PROMPT (vino_prompt_get_type ()) +#define VINO_PROMPT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), VINO_TYPE_PROMPT, VinoPrompt)) +#define VINO_PROMPT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), VINO_TYPE_PROMPT, VinoPromptClass)) +#define VINO_IS_PROMPT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINO_TYPE_PROMPT)) +#define VINO_IS_PROMPT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), VINO_TYPE_PROMPT)) +#define VINO_PROMPT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), VINO_TYPE_PROMPT, VinoPromptClass)) + +typedef struct _VinoPrompt VinoPrompt; +typedef struct _VinoPromptClass VinoPromptClass; +typedef struct _VinoPromptPrivate VinoPromptPrivate; + +typedef enum +{ + VINO_RESPONSE_INVALID = 0, + VINO_RESPONSE_ACCEPT = 1, + VINO_RESPONSE_REJECT = 2 +} VinoPromptResponse; + +struct _VinoPrompt +{ + GObject base; + + VinoPromptPrivate *priv; +}; + +struct _VinoPromptClass +{ + GObjectClass base_class; + + void (* response) (VinoPrompt *prompt, + rfbClientPtr rfb_client, + VinoPromptResponse response); +}; + +GType vino_prompt_get_type (void) G_GNUC_CONST; + +VinoPrompt *vino_prompt_new (GdkScreen *screen); + +void vino_prompt_add_client (VinoPrompt *prompt, + rfbClientPtr rfb_client); +void vino_prompt_remove_client (VinoPrompt *prompt, + rfbClientPtr rfb_client); + +void vino_prompt_set_screen (VinoPrompt *prompt, + GdkScreen *screen); +GdkScreen *vino_prompt_get_screen (VinoPrompt *prompt); + +G_END_DECLS + +#endif /* __VINO_PROMPT_H__ */ diff --git a/server/vino-server.c b/server/vino-server.c new file mode 100644 index 0000000..38b17e3 --- /dev/null +++ b/server/vino-server.c @@ -0,0 +1,2000 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#include <config.h> + +#include "vino-server.h" + +#include <rfb/rfb.h> +#include "vino-fb.h" +#include "vino-mdns.h" +#include "vino-input.h" +#include "vino-cursor.h" +#include "vino-prompt.h" +#include "vino-util.h" +#include "vino-upnp.h" +#include "vino-enums.h" +#include <sys/poll.h> +#include <gtk/gtk.h> + +#ifdef VINO_HAVE_SECRET +#include <libsecret/secret.h> +#endif + +G_DEFINE_TYPE (VinoServer, vino_server, G_TYPE_OBJECT); + +/* If an authentication attempt failes, delay the next + * authentication attempt for 5 seconds. + */ +#define VINO_SERVER_AUTH_DEFER_LEN 5 + +struct _VinoServerPrivate +{ + rfbScreenInfoPtr rfb_screen; + + GdkScreen *screen; + VinoFB *fb; + VinoCursorData *cursor_data; + VinoPrompt *prompt; + VinoStatusIcon *icon; + gboolean display_status_icon; + VinoUpnp *upnp; + + GIOChannel *io_channel[RFB_MAX_SOCKETLISTEN]; + guint io_watch[RFB_MAX_SOCKETLISTEN]; + + GSList *clients; + guint num_clients; + + VinoAuthMethod auth_methods; + char *vnc_password; + + int alternative_port; + + guint on_hold : 1; + char *network_interface; + guint prompt_enabled : 1; + guint view_only : 1; + guint require_encryption : 1; + guint last_auth_failed : 1; + guint use_alternative_port : 1; + guint lock_screen : 1; + guint disable_background : 1; + guint use_upnp : 1; + guint disable_xdamage : 1; + guint notify_on_connect : 1; + guint reject_incoming : 1; +}; + +struct _VinoClient +{ + rfbClientPtr rfb_client; + GIOChannel *io_channel; + guint io_watch; + guint update_timeout; + + /* Deferred authentication */ + guint auth_timeout; + char *auth_response; + int auth_resp_len; +}; + +enum +{ + PROP_0, + PROP_SCREEN, + PROP_ON_HOLD, + PROP_PROMPT_ENABLED, + PROP_VIEW_ONLY, + PROP_DISPLAY_STATUS_ICON, + PROP_USE_DBUS_LISTENER, + PROP_NETWORK_INTERFACE, + PROP_USE_ALTERNATIVE_PORT, + PROP_ALTERNATIVE_PORT, + PROP_REQUIRE_ENCRYPTION, + PROP_AUTH_METHODS, + PROP_VNC_PASSWORD, + PROP_PORT, + PROP_LOCK_SCREEN, + PROP_DISABLE_BACKGROUND, + PROP_USE_UPNP, + PROP_DISABLE_XDAMAGE, + PROP_NOTIFY_ON_CONNECT, + PROP_REJECT_INCOMING, + PROP_CONNECTED +}; + +static enum rfbNewClientAction vino_server_auth_client (VinoServer *server, + VinoClient *client, + const char *response, + int length); + +static void vino_server_setup_framebuffer (VinoServer *server); +static void vino_server_release_framebuffer (VinoServer *server); +static void vino_server_update_security_types (VinoServer *server); +static void vino_server_init_io_channels (VinoServer *server); +static void vino_server_deinit_io_channels (VinoServer *server); +static void vino_server_set_notify_on_connect (VinoServer *server, + gboolean notify_on_connect); + +static gpointer parent_class; + +#define GNOME_SCREENSAVER_BUS_NAME "org.gnome.ScreenSaver" +#define GNOME_SCREENSAVER_INTERFACE "org.gnome.ScreenSaver" +#define GNOME_SCREENSAVER_PATH "/org/gnome/ScreenSaver" + +static void +vino_server_lock_screen (VinoServer *server) +{ + GDBusConnection *connection; + GError *error = NULL; + + if (!server->priv->lock_screen) + return; + + dprintf(DBUS, "Locking screen via gnome-screensaver\n"); + + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + if (!connection) + { + dprintf (DBUS, _("Failed to open connection to bus: %s\n"), error->message); + g_error_free (error); + return; + } + + g_dbus_connection_call (connection, GNOME_SCREENSAVER_BUS_NAME, + GNOME_SCREENSAVER_PATH, GNOME_SCREENSAVER_INTERFACE, + "Lock", NULL, NULL, + G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL); + g_object_unref (connection); +} + +static void +vino_server_unlock_screen (void) +{ + GDBusConnection *connection; + GError *error = NULL; + + dprintf(DBUS, "Unlocking screen via gnome-screensaver\n"); + + connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error); + if (!connection) + { + dprintf (DBUS, _("Failed to open connection to bus: %s\n"), error->message); + g_error_free (error); + return; + } + + g_dbus_connection_call (connection, GNOME_SCREENSAVER_BUS_NAME, + GNOME_SCREENSAVER_PATH, GNOME_SCREENSAVER_INTERFACE, + "SimulateUserActivity", NULL, NULL, + G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL); + g_object_unref (connection); +} + +#undef GNOME_SCREENSAVER_BUS_NAME +#undef GNOME_SCREENSAVER_INTERFACE +#undef GNOME_SCREENSAVER_PATH + +void +vino_server_set_disable_background (VinoServer *server, + gboolean disable_background) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + disable_background = disable_background != FALSE; + + if (server->priv->disable_background != disable_background) + { + server->priv->disable_background = disable_background; + + g_object_notify (G_OBJECT (server), "disable-background"); + } +} + +gboolean +vino_server_get_disable_background (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->disable_background; +} + +static void +vino_server_control_upnp (VinoServer *server) +{ + if (server->priv->use_upnp && !server->priv->on_hold) + { + if (!server->priv->upnp) + server->priv->upnp = vino_upnp_new (); + vino_upnp_add_port (server->priv->upnp, server->priv->rfb_screen->rfbPort); + } + else + if (server->priv->upnp) + { + g_object_unref (server->priv->upnp); + server->priv->upnp = NULL; + } +} + +void +vino_server_set_use_upnp (VinoServer *server, + gboolean use_upnp) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + use_upnp = use_upnp != FALSE; + + if (server->priv->use_upnp != use_upnp) + { + server->priv->use_upnp = use_upnp; + vino_server_control_upnp (server); + g_object_notify (G_OBJECT (server), "use-upnp"); + } +} + +gboolean +vino_server_get_use_upnp (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->use_upnp; +} + +void +vino_server_set_disable_xdamage (VinoServer *server, + gboolean disable_xdamage) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + disable_xdamage = disable_xdamage != FALSE; + + if (server->priv->disable_xdamage != disable_xdamage) + { + server->priv->disable_xdamage = disable_xdamage; + g_object_notify (G_OBJECT (server), "disable-xdamage"); + } +} + +gboolean +vino_server_get_disable_xdamage (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->disable_xdamage; +} + +static void +vino_background_draw (gboolean status) +{ + static GSettings *background_settings; + static gsize initialised; + + if (g_once_init_enter (&initialised)) + { + background_settings = g_settings_new ("org.gnome.desktop.background"); + g_once_init_leave (&initialised, TRUE); + } + + g_settings_set_boolean (background_settings, "draw-background", status); +} + +static void +vino_server_client_accepted (VinoServer *server, + VinoClient *client) +{ + if (server->priv->display_status_icon) + vino_status_icon_add_client (server->priv->icon, client); + + server->priv->num_clients++; + + vino_server_unlock_screen (); + + if (vino_server_get_disable_background (server)) + vino_background_draw (FALSE); + + /* First client? */ + if (server->priv->num_clients == 1) + g_object_notify (G_OBJECT (server), "connected"); +} + + +static void +vino_server_client_disconnected (VinoServer *server, + VinoClient *client) +{ + if (server->priv->display_status_icon) + { + if (vino_status_icon_remove_client (server->priv->icon, client)) + { + vino_server_lock_screen (server); + + if (vino_server_get_disable_background (server)) + vino_background_draw (TRUE); + } + } + + server->priv->num_clients--; + if (server->priv->num_clients == 0) + g_object_notify (G_OBJECT (server), "connected"); +} + +static void +vino_server_handle_client_gone (rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + GSList *l; + + g_return_if_fail (VINO_IS_SERVER (server)); + + dprintf (RFB, "Client with fd == %d gone\n", rfb_client->sock); + + vino_prompt_remove_client (server->priv->prompt, rfb_client); + + for (l = server->priv->clients; l; l = l->next) + { + VinoClient *client = (VinoClient *) l->data; + + if (rfb_client == client->rfb_client) + { + dprintf (RFB, "Found client %p ... cleaning up\n", client->rfb_client); + + if (client->auth_timeout) + g_source_remove (client->auth_timeout); + client->auth_timeout = 0; + + if (client->auth_response) + g_free (client->auth_response); + client->auth_response = NULL; + client->auth_resp_len = 0; + + if (client->update_timeout) + g_source_remove (client->update_timeout); + client->update_timeout = 0; + + if (client->io_watch) + g_source_remove (client->io_watch); + client->io_watch = 0; + + g_io_channel_unref (client->io_channel); + client->io_channel = NULL; + + server->priv->clients = g_slist_delete_link (server->priv->clients, l); + + vino_server_client_disconnected (server, client); + g_free (client); + + break; + } + } + + if (!server->priv->clients) + vino_server_release_framebuffer (server); +} + +static gboolean +vino_server_update_client (rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + const char *cursor_source; + const char *cursor_mask; + int x, y; + int width, height; + + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + if (vino_cursor_get_x_source (server->priv->cursor_data, + &width, &height, + &cursor_source, &cursor_mask)) + { + rfbCursorPtr rfb_cursor; + + rfb_cursor = rfbMakeXCursor (width, height, cursor_source, cursor_mask); + rfbSetCursor (rfb_client->screen, rfb_cursor, TRUE); + } + + vino_cursor_get_position (server->priv->cursor_data, &x, &y); + rfbSetCursorPosition (rfb_client->screen, NULL, x, y); + + rfbUpdateClient (rfb_client); + + if (rfb_client->sock == -1) + { + rfbClientConnectionGone (rfb_client); + return FALSE; + } + + return TRUE; +} + +static gboolean +vino_server_update_client_timeout (rfbClientPtr rfb_client) +{ + if (rfb_client->onHold) + return TRUE; + + vino_server_update_client (rfb_client); + + return TRUE; +} + +static inline gboolean +more_data_pending (rfbClientPtr rfb_client) +{ + struct pollfd pollfd = { rfb_client->sock, POLLIN|POLLPRI, 0 }; + + if (ReadPending(rfb_client) > 0) + return TRUE; + + return poll (&pollfd, 1, 0) == 1; +} + +static gboolean +vino_server_client_data_pending (GIOChannel *source, + GIOCondition condition, + rfbClientPtr rfb_client) +{ + if (rfb_client->onHold) + return TRUE; + + do { + rfbProcessClientMessage (rfb_client); + } while (more_data_pending (rfb_client)); + + return vino_server_update_client (rfb_client); +} + +static void +vino_server_set_client_on_hold (VinoServer *server, + VinoClient *client, + gboolean on_hold) +{ + rfbClientPtr rfb_client = client->rfb_client; + + dprintf (RFB, "Setting client '%s' on hold: %s\n", + rfb_client->host, on_hold ? "(true)" : "(false)"); + + rfb_client->onHold = on_hold; + + if (on_hold) + { + if (client->io_watch) + { + g_source_remove (client->io_watch); + client->io_watch = 0; + } + + if (client->update_timeout) + { + g_source_remove (client->update_timeout); + client->update_timeout = 0; + } + } + else + { + if (!client->io_watch) + { + client->io_watch = g_io_add_watch (client->io_channel, + G_IO_IN|G_IO_PRI, + (GIOFunc) vino_server_client_data_pending, + rfb_client); + } + + if (!client->update_timeout) + { + client->update_timeout = g_timeout_add (50, + (GSourceFunc) vino_server_update_client_timeout, + rfb_client); + } + } +} + +static enum rfbNewClientAction +vino_server_handle_new_client (rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + VinoClient *client; + + g_return_val_if_fail (VINO_IS_SERVER (server), RFB_CLIENT_REFUSE); + + if (server->priv->reject_incoming) + { + dprintf (RFB, "Reject client on fd %d\n", rfb_client->sock); + return RFB_CLIENT_REFUSE; + } + + dprintf (RFB, "New client on fd %d\n", rfb_client->sock); + + if (!server->priv->fb) + { + vino_server_setup_framebuffer (server); + rfb_client->format = server->priv->rfb_screen->rfbServerFormat; + } + + client = g_new0 (VinoClient, 1); + + rfb_client->clientData = client; + + client->rfb_client = rfb_client; + + client->rfb_client->clientGoneHook = vino_server_handle_client_gone; + + client->io_channel = g_io_channel_unix_new (rfb_client->sock); + + server->priv->clients = g_slist_prepend (server->priv->clients, client); + + vino_server_set_client_on_hold (server, client, server->priv->on_hold); + + return server->priv->on_hold ? RFB_CLIENT_ON_HOLD : RFB_CLIENT_ACCEPT; +} + +static void +vino_server_handle_prompt_response (VinoServer *server, + rfbClientPtr rfb_client, + VinoPromptResponse response) +{ + VinoClient *client = (VinoClient *) rfb_client->clientData; + + g_return_if_fail (VINO_IS_SERVER (server)); + g_return_if_fail (rfb_client != NULL); + + switch (response) + { + case VINO_RESPONSE_ACCEPT: + vino_server_set_client_on_hold (server, client, FALSE); + vino_server_client_accepted (server, client); + break; + case VINO_RESPONSE_REJECT: + rfbCloseClient (rfb_client); + rfbClientConnectionGone (rfb_client); + break; + case VINO_RESPONSE_INVALID: + g_assert_not_reached (); + break; + } +} + +static enum rfbNewClientAction +vino_server_handle_authenticated_client (rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + VinoClient *client = (VinoClient *) rfb_client->clientData; + + g_return_val_if_fail (VINO_IS_SERVER (server), RFB_CLIENT_REFUSE); + + if (!server->priv->prompt_enabled) + { + vino_server_client_accepted (server, client); + return RFB_CLIENT_ACCEPT; + } + + vino_prompt_add_client (server->priv->prompt, rfb_client); + + vino_server_set_client_on_hold (server, client, TRUE); + + return RFB_CLIENT_ON_HOLD; +} + +static gboolean +vino_server_new_connection_pending (GIOChannel *source, + GIOCondition condition, + VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + rfbProcessNewConnection (server->priv->rfb_screen, g_io_channel_unix_get_fd(source)); + + return TRUE; +} + +static void +vino_server_handle_key_event (rfbBool down, + rfbKeySym keySym, + rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->view_only) + return; + + vino_input_handle_key_event (server->priv->screen, keySym, down); +} + +static void +vino_server_handle_pointer_event (int buttonMask, + int x, + int y, + rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->view_only) + return; + + vino_input_handle_pointer_event (server->priv->screen, buttonMask, x, y); +} + +static void +vino_server_handle_clipboard_event (char *str, + int len, + rfbClientPtr rfb_client) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->view_only) + return; + + vino_input_handle_clipboard_event (server->priv->screen, str, len, server); +} + +static gboolean +vino_server_auth_client_deferred (VinoClient *client) +{ + VinoServer *server = VINO_SERVER (client->rfb_client->screen->screenData); + enum rfbNewClientAction result; + + result = vino_server_auth_client (server, + client, + client->auth_response, + client->auth_resp_len); + + if (result == RFB_CLIENT_ACCEPT) + vino_server_set_client_on_hold (server, client, FALSE); + + rfbAuthPasswordChecked (client->rfb_client, result); + + g_free (client->auth_response); + client->auth_response = NULL; + client->auth_resp_len = 0; + client->auth_timeout = 0; + + return FALSE; +} + +static void +vino_server_defer_client_auth (VinoServer *server, + VinoClient *client, + const char *response, + int length) +{ + client->auth_resp_len = length; + client->auth_response = g_new (char, length); + memcpy (client->auth_response, response, length); + + vino_server_set_client_on_hold (server, client, TRUE); + + client->auth_timeout = g_timeout_add_seconds (VINO_SERVER_AUTH_DEFER_LEN, + (GSourceFunc) vino_server_auth_client_deferred, + client); +} + +static char * +vino_server_get_password_from_keyring (VinoServer *server) +{ +#ifdef VINO_HAVE_SECRET + return secret_password_lookup_sync (SECRET_SCHEMA_COMPAT_NETWORK, + NULL, NULL, + "server", "vino.local", + "protocol", "rfb", + "authtype", "vnc-password", + "port", 5900, + NULL); +#else + return NULL; +#endif +} + +static enum rfbNewClientAction +vino_server_auth_client (VinoServer *server, + VinoClient *client, + const char *response, + int length) +{ + rfbClientPtr rfb_client; + char *password; + + if (!(server->priv->auth_methods & VINO_AUTH_VNC)) + goto auth_failed; + + if (!(password = vino_server_get_password_from_keyring (server))) + { + guchar *blob; + gsize blob_len; + + if (!server->priv->vnc_password) + goto auth_failed; + + blob_len = 0; + blob = g_base64_decode (server->priv->vnc_password, &blob_len); + + password = g_strndup ((char *) blob, blob_len); + + g_free (blob); + } + + rfb_client = client->rfb_client; + + if (!password) + goto auth_failed; + + vncEncryptBytes (client->rfb_client->authChallenge, password); + + memset (password, 0, strlen (password)); + g_free (password); + + if (memcmp (rfb_client->authChallenge, response, length)) + { + memset (rfb_client->authChallenge, 0, CHALLENGESIZE); + g_warning ("VNC authentication failure from '%s'\n", rfb_client->host); + goto auth_failed; + } + + memset (rfb_client->authChallenge, 0, CHALLENGESIZE); + + server->priv->last_auth_failed = FALSE; + + return RFB_CLIENT_ACCEPT; + + auth_failed: + /* Delay the next authentication attempt so as to make + * brute force guessing of the password infeasible. + */ + server->priv->last_auth_failed = TRUE; + return RFB_CLIENT_REFUSE; +} + +static enum rfbNewClientAction +vino_server_check_vnc_password (rfbClientPtr rfb_client, + const char *response, + int length) +{ + VinoServer *server = VINO_SERVER (rfb_client->screen->screenData); + VinoClient *client = (VinoClient *) rfb_client->clientData; + + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + if (!response || length != CHALLENGESIZE) + { + server->priv->last_auth_failed = TRUE; + return RFB_CLIENT_REFUSE; + } + + if (server->priv->last_auth_failed) + { + g_warning ("Deferring authentication of '%s' for %d seconds\n", + rfb_client->host, VINO_SERVER_AUTH_DEFER_LEN); + vino_server_defer_client_auth (server, client, response, length); + return RFB_CLIENT_ON_HOLD; + } + + return vino_server_auth_client (server, client, response, length); +} + +static void +vino_server_handle_damage_notify (VinoServer *server) +{ + cairo_region_t *region; + + g_return_if_fail (VINO_IS_SERVER (server)); + + if ((region = vino_fb_steal_damage (server->priv->fb))) + { + int i, n_rects; + + n_rects = cairo_region_num_rectangles (region); + + for (i = 0; i < n_rects; i++) + { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + + rfbMarkRectAsModified (server->priv->rfb_screen, + rect.x, + rect.y, + rect.x + rect.width, + rect.y + rect.height); + } + + cairo_region_destroy (region); + } +} + +static void +vino_server_init_pixel_format (VinoServer *server, + rfbScreenInfoPtr rfb_screen) + +{ + rfbPixelFormat *format = &rfb_screen->rfbServerFormat; + gulong red_mask, green_mask, blue_mask; + + rfb_screen->bitsPerPixel = vino_fb_get_bits_per_pixel (server->priv->fb); + rfb_screen->depth = vino_fb_get_depth (server->priv->fb); + rfb_screen->paddedWidthInBytes = vino_fb_get_rowstride (server->priv->fb); + + format->bitsPerPixel = rfb_screen->bitsPerPixel; + format->depth = rfb_screen->depth; + + vino_fb_get_color_masks (server->priv->fb, + &red_mask, &green_mask, &blue_mask); + + format->redShift = 0; + while (!(red_mask & (1 << format->redShift))) + format->redShift++; + + format->greenShift = 0; + while (!(green_mask & (1 << format->greenShift))) + format->greenShift++; + + format->blueShift = 0; + while (!(blue_mask & (1 << format->blueShift))) + format->blueShift++; + + format->redMax = red_mask >> format->redShift; + format->greenMax = green_mask >> format->greenShift; + format->blueMax = blue_mask >> format->blueShift; + + dprintf (RFB, + "Initialized pixel format: %dbpp, depth = %d\n" + "\tred: mask = %.8lx, max = %d, shift = %d\n" + "\tgreen: mask = %.8lx, max = %d, shift = %d\n" + "\tblue: mask = %.8lx, max = %d, shift = %d\n", + format->bitsPerPixel, format->depth, + red_mask, format->redMax, format->redShift, + green_mask, format->greenMax, format->greenShift, + blue_mask, format->blueMax, format->blueShift); +} + +static void +vino_server_screen_size_changed (VinoServer *server) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + rfbNewFramebuffer (server->priv->rfb_screen, + vino_fb_get_pixels (server->priv->fb), + gdk_screen_get_width (server->priv->screen), + gdk_screen_get_height (server->priv->screen)); + + vino_server_init_pixel_format (server, server->priv->rfb_screen); +} + +static void +vino_server_setup_framebuffer (VinoServer *server) +{ + g_return_if_fail (server->priv->fb == NULL); + g_return_if_fail (server->priv->cursor_data == NULL); + + server->priv->fb = vino_fb_new (server->priv->screen, server->priv->disable_xdamage); + + g_signal_connect_swapped (server->priv->fb, "size-changed", + G_CALLBACK (vino_server_screen_size_changed), + server); + g_signal_connect_swapped (server->priv->fb, "damage-notify", + G_CALLBACK (vino_server_handle_damage_notify), + server); + + rfbNewFramebuffer (server->priv->rfb_screen, + vino_fb_get_pixels (server->priv->fb), + gdk_screen_get_width (server->priv->screen), + gdk_screen_get_height (server->priv->screen)); + + vino_server_init_pixel_format (server, server->priv->rfb_screen); + + server->priv->cursor_data = vino_cursor_init (server->priv->screen); +} + +static void +vino_server_release_framebuffer (VinoServer *server) +{ + g_return_if_fail (server->priv->fb != NULL); + g_return_if_fail (server->priv->cursor_data != NULL); + + if (server->priv->cursor_data) + vino_cursor_finalize (server->priv->cursor_data); + server->priv->cursor_data = NULL; + + server->priv->rfb_screen->frameBuffer = NULL; + + g_object_unref (server->priv->fb); + server->priv->fb = NULL; +} + +static void +vino_server_clipboard_cb (GtkClipboard *cb, + GdkEvent *event, + VinoServer *server) +{ + gchar *text, *out; + size_t a, b; + + if (!server->priv->clients) + return; + + if (server->priv->on_hold) + return; + + if (gtk_clipboard_get_owner (cb) == G_OBJECT (server)) + return; + + text = gtk_clipboard_wait_for_text (cb); + if (!text) + return; + + out = g_convert (text, -1, "iso8859-1", "utf-8", &a, &b, NULL); + if (out) + { + rfbSendServerCutText (server->priv->rfb_screen, + out, + strlen (out)); + g_free (out); + } + + g_free (text); +} + +static void +vino_server_init_io_channels(VinoServer *server) +{ + rfbScreenInfoPtr rfb_screen = server->priv->rfb_screen; + int i; + + vino_server_deinit_io_channels (server); + + dprintf (RFB, "Creating watch for listening socket [ "); + for (i=0; i < rfb_screen->rfbListenSockTotal; i++) + { + dprintf (RFB, "%d ", rfb_screen->rfbListenSock[i]); + + server->priv->io_channel[i] = g_io_channel_unix_new (rfb_screen->rfbListenSock[i]); + server->priv->io_watch[i] = g_io_add_watch (server->priv->io_channel[i], + G_IO_IN|G_IO_PRI, + (GIOFunc) vino_server_new_connection_pending, + server); + } + dprintf(RFB,"]- port %d\n", rfb_screen->rfbPort); +} + +static void +vino_server_deinit_io_channels(VinoServer *server) +{ + rfbScreenInfoPtr rfb_screen = server->priv->rfb_screen; + int i; + + for(i=0; i < rfb_screen->rfbListenSockTotal; i++) + { + if (server->priv->io_watch[i]) + { + dprintf(RFB, "Removing watch for listening socket [ %d ]- port %d\n", + rfb_screen->rfbListenSock[i], rfb_screen->rfbPort); + g_source_remove (server->priv->io_watch[i]); + server->priv->io_watch[i] = 0; + } + + if (server->priv->io_channel[i]) + g_io_channel_unref (server->priv->io_channel[i]); + server->priv->io_channel[i] = NULL; + } +} + +static void +vino_server_init_from_screen (VinoServer *server, + GdkScreen *screen) +{ + rfbScreenInfoPtr rfb_screen; + char *name; + GtkClipboard *cb; + + g_return_if_fail (server->priv->screen == NULL); + g_return_if_fail (screen != NULL); + + server->priv->screen = screen; + + server->priv->prompt = vino_prompt_new (screen); + + g_signal_connect_swapped (server->priv->prompt, "response", + G_CALLBACK (vino_server_handle_prompt_response), + server); + + /* libvncserver NOTE: + * we don't pass in argc or argv + * samplesPerPixel is totally unused (3 below) + * bitsPerSample and bytesPerPixel get set in + * init_pixel_format() + */ + server->priv->rfb_screen = rfb_screen = + rfbGetScreen (NULL, NULL, + gdk_screen_get_width (screen), + gdk_screen_get_height (screen), + -1, -1, -1); + + name = g_strjoin ("@", + g_get_user_name (), + g_get_host_name (), + NULL); + + rfbSetDesktopName(rfb_screen, name); + + g_free (name); + + /* libvncserver NOTE: + * DeferUpdateTime is the number of milliseconds to wait + * before actually responding to a frame buffer update + * request. + * setting autoPort enables autoProbing a port between + * 5900-6000 + */ + rfb_screen->rfbDeferUpdateTime = 0; + rfb_screen->netIface = server->priv->network_interface; + rfb_screen->autoPort = TRUE; + rfb_screen->rfbPort = VINO_SERVER_DEFAULT_PORT; + rfb_screen->rfbAlwaysShared = TRUE; + + if (server->priv->use_alternative_port) + { + rfb_screen->autoPort = FALSE; + rfb_screen->rfbPort = server->priv->alternative_port; + } + + rfbInitServer (rfb_screen); + + /* libvncserver NOTE: + * there's no user_data for newClientHook. You have + * to use screenData + */ + rfb_screen->screenData = server; + rfb_screen->newClientHook = vino_server_handle_new_client; + rfb_screen->authenticatedClientHook = vino_server_handle_authenticated_client; + + /* libvncserver NOTE: + * all these hooks should take an rfbClientPtr as the + * first argument rather than the last. + */ + rfb_screen->kbdAddEvent = vino_server_handle_key_event; + rfb_screen->ptrAddEvent = vino_server_handle_pointer_event; + rfb_screen->setXCutText = vino_server_handle_clipboard_event; + + rfb_screen->passwordCheck = vino_server_check_vnc_password; + + vino_server_update_security_types (server); + + vino_server_init_io_channels (server); + + vino_mdns_add_service ("_rfb._tcp", rfb_screen->rfbPort); + + cb = gtk_clipboard_get_for_display (gdk_screen_get_display (screen), + GDK_SELECTION_CLIPBOARD); + g_signal_connect (cb, + "owner-change", + G_CALLBACK (vino_server_clipboard_cb), + server); + + server->priv->upnp = NULL; + server->priv->disable_xdamage = FALSE; +} + +static void +vino_server_finalize (GObject *object) +{ + VinoServer *server = VINO_SERVER (object); + + vino_server_deinit_io_channels (server); + + if (server->priv->rfb_screen) + rfbScreenCleanup (server->priv->rfb_screen); + server->priv->rfb_screen = NULL; + + /* ClientGoneHook should get invoked for each + * client from rfbScreenCleanup() + */ + g_assert (server->priv->clients == NULL); + + if (server->priv->vnc_password) + g_free (server->priv->vnc_password); + server->priv->vnc_password = NULL; + + if(server->priv->network_interface) + g_free (server->priv->network_interface); + server->priv->network_interface = NULL; + + if (server->priv->prompt) + g_object_unref (server->priv->prompt); + server->priv->prompt = NULL; + + if (server->priv->cursor_data) + vino_cursor_finalize (server->priv->cursor_data); + server->priv->cursor_data = NULL; + + if (server->priv->fb) + g_object_unref (server->priv->fb); + server->priv->fb = NULL; + + if (server->priv->icon) + g_object_unref (server->priv->icon); + server->priv->icon = NULL; + + if (server->priv->upnp) + g_object_unref (server->priv->upnp); + server->priv->upnp = NULL; + + g_free (server->priv); + server->priv = NULL; + + if (G_OBJECT_CLASS (parent_class)->finalize) + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +vino_server_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VinoServer *server = VINO_SERVER (object); + + switch (prop_id) + { + case PROP_SCREEN: + vino_server_init_from_screen (server, g_value_get_object (value)); + break; + case PROP_ON_HOLD: + vino_server_set_on_hold (server, g_value_get_boolean (value)); + break; + case PROP_PROMPT_ENABLED: + vino_server_set_prompt_enabled (server, g_value_get_boolean (value)); + break; + case PROP_VIEW_ONLY: + vino_server_set_view_only (server, g_value_get_boolean (value)); + break; + case PROP_DISPLAY_STATUS_ICON: + vino_server_set_display_status_icon (server, g_value_get_boolean (value)); + break; + case PROP_NETWORK_INTERFACE: + vino_server_set_network_interface (server, g_value_get_string (value)); + break; + case PROP_REQUIRE_ENCRYPTION: + vino_server_set_require_encryption (server, g_value_get_boolean (value)); + break; + case PROP_AUTH_METHODS: + vino_server_set_auth_methods (server, g_value_get_flags (value)); + break; + case PROP_VNC_PASSWORD: + vino_server_set_vnc_password (server, g_value_get_string (value)); + break; + case PROP_USE_ALTERNATIVE_PORT: + vino_server_set_use_alternative_port (server, g_value_get_boolean (value)); + break; + case PROP_ALTERNATIVE_PORT: + vino_server_set_alternative_port (server, g_value_get_int (value)); + break; + case PROP_LOCK_SCREEN: + vino_server_set_lock_screen (server, g_value_get_boolean (value)); + break; + case PROP_DISABLE_BACKGROUND: + vino_server_set_disable_background (server, g_value_get_boolean (value)); + break; + case PROP_USE_UPNP: + vino_server_set_use_upnp (server, g_value_get_boolean (value)); + break; + case PROP_DISABLE_XDAMAGE: + vino_server_set_disable_xdamage (server, g_value_get_boolean (value)); + break; + case PROP_NOTIFY_ON_CONNECT: + vino_server_set_notify_on_connect (server, g_value_get_boolean (value)); + break; + case PROP_REJECT_INCOMING: + vino_server_set_reject_incoming (server, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_server_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VinoServer *server = VINO_SERVER (object); + + switch (prop_id) + { + case PROP_SCREEN: + g_value_set_object (value, server->priv->screen); + break; + case PROP_ON_HOLD: + g_value_set_boolean (value, server->priv->on_hold); + break; + case PROP_PROMPT_ENABLED: + g_value_set_boolean (value, server->priv->prompt_enabled); + break; + case PROP_VIEW_ONLY: + g_value_set_boolean (value, server->priv->view_only); + break; + case PROP_DISPLAY_STATUS_ICON: + g_value_set_boolean (value, server->priv->display_status_icon); + break; + case PROP_NETWORK_INTERFACE: + g_value_set_string (value, server->priv->network_interface); + break; + case PROP_REQUIRE_ENCRYPTION: + g_value_set_boolean (value, server->priv->require_encryption); + break; + case PROP_AUTH_METHODS: + g_value_set_flags (value, server->priv->auth_methods); + break; + case PROP_VNC_PASSWORD: + g_value_set_string (value, server->priv->vnc_password); + break; + case PROP_USE_ALTERNATIVE_PORT: + g_value_set_boolean (value, server->priv->use_alternative_port); + break; + case PROP_ALTERNATIVE_PORT: + g_value_set_int (value, server->priv->alternative_port); + break; + case PROP_PORT: + g_value_set_int (value, server->priv->rfb_screen->rfbPort); + break; + case PROP_LOCK_SCREEN: + g_value_set_boolean (value, server->priv->lock_screen); + break; + case PROP_DISABLE_BACKGROUND: + g_value_set_boolean (value, server->priv->disable_background); + break; + case PROP_USE_UPNP: + g_value_set_boolean (value, server->priv->use_upnp); + break; + case PROP_DISABLE_XDAMAGE: + g_value_set_boolean (value, server->priv->disable_xdamage); + break; + case PROP_NOTIFY_ON_CONNECT: + g_value_set_boolean (value, server->priv->notify_on_connect); + break; + case PROP_REJECT_INCOMING: + g_value_set_boolean (value, server->priv->reject_incoming); + break; + case PROP_CONNECTED: + g_value_set_boolean (value, server->priv->num_clients > 0); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_server_constructed (GObject *object) +{ + VinoServer *server = VINO_SERVER (object); + + if (server->priv->display_status_icon) + server->priv->icon = vino_status_icon_new (server, server->priv->screen); + else + server->priv->icon = NULL; + +} + +static void +vino_server_init (VinoServer *server) +{ + server->priv = g_new0 (VinoServerPrivate, 1); +} + +static void +vino_server_class_init (VinoServerClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->constructed = vino_server_constructed; + gobject_class->finalize = vino_server_finalize; + gobject_class->set_property = vino_server_set_property; + gobject_class->get_property = vino_server_get_property; + + g_object_class_install_property (gobject_class, + PROP_SCREEN, + g_param_spec_object ("screen", + "Screen", + "The screen for which to create a VNC server", + GDK_TYPE_SCREEN, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_ON_HOLD, + g_param_spec_boolean ("on-hold", + "On Hold", + "Place all clients on hold", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_PROMPT_ENABLED, + g_param_spec_boolean ("prompt-enabled", + "Prompt enabled", + "Prompt the user about connection attempts", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_VIEW_ONLY, + g_param_spec_boolean ("view-only", + "View Only", + "Disallow keyboard/pointer input from clients", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_DISPLAY_STATUS_ICON, + g_param_spec_boolean ("display-status-icon", + "Display the status icon", + "Allow to display the status icon", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + PROP_NETWORK_INTERFACE, + g_param_spec_string ("network-interface", + "Network Interface", + "Network interface for accept connections", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + + g_object_class_install_property (gobject_class, + PROP_REQUIRE_ENCRYPTION, + g_param_spec_boolean ("require-encryption", + "Require Encryption", + "Require clients to use encryption", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_AUTH_METHODS, + g_param_spec_flags ("auth-methods", + "Authentication methods", + "The authentication methods this server should allow", + VINO_TYPE_AUTH_METHOD, + VINO_AUTH_NONE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_VNC_PASSWORD, + g_param_spec_string ("vnc-password", + "VNC Password", + "The password (base64 encoded) used to authenticate types using the VncAuth method", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_USE_ALTERNATIVE_PORT, + g_param_spec_boolean ("use-alternative-port", + "Use an alternative port", + "Listen on the port specified by the 'alternative-port' property", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_ALTERNATIVE_PORT, + g_param_spec_int ("alternative-port", + "Alternative port number", + "Listen on the specified port number if the 'use-alternative-port' property is TRUE", + VINO_SERVER_MIN_PORT, + VINO_SERVER_MAX_PORT, + VINO_SERVER_DEFAULT_PORT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_PORT, + g_param_spec_int ("port", + "Server port number", + "The port used by this server", + VINO_SERVER_MIN_PORT, + VINO_SERVER_MAX_PORT, + VINO_SERVER_DEFAULT_PORT, + G_PARAM_READABLE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_LOCK_SCREEN, + g_param_spec_boolean ("lock-screen", + "Locks screen on disconnect", + "After last user disconnects, screen will be locked", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_DISABLE_BACKGROUND, + g_param_spec_boolean ("disable-background", + "Background on server", + "Disable the background image on server", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_USE_UPNP, + g_param_spec_boolean ("use-upnp", + "Use UPNP", + "Whether to use UPNP", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_DISABLE_XDAMAGE, + g_param_spec_boolean ("disable-xdamage", + "Disable XDamage", + "Whether to disable XDamage", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_object_class_install_property (gobject_class, + PROP_NOTIFY_ON_CONNECT, + g_param_spec_boolean ("notify-on-connect", + "Notify on connect", + "Notifies when the user connects to the system", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + g_object_class_install_property (gobject_class, + PROP_REJECT_INCOMING, + g_param_spec_boolean ("reject-incoming", + "Reject incoming", + "If TRUE reject incoming connections", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, + PROP_CONNECTED, + g_param_spec_boolean ("connected", + "Connected", + "Whether at least one client is connected", + FALSE, + G_PARAM_READABLE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); +} + +VinoServer * +vino_server_new (GdkScreen *screen, + gboolean view_only) +{ + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return g_object_new (VINO_TYPE_SERVER, + "screen", screen, + "view-only", view_only, + NULL); +} + +GdkScreen * +vino_server_get_screen (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), NULL); + + return server->priv->screen; +} + +gboolean +vino_server_get_view_only (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->view_only; +} + +void +vino_server_set_view_only (VinoServer *server, + gboolean view_only) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + view_only = view_only != FALSE; + + if (server->priv->view_only != view_only) + { + server->priv->view_only = view_only; + + g_object_notify (G_OBJECT (server), "view-only"); + } +} + +void +vino_server_set_display_status_icon (VinoServer *server, + gboolean display_status_icon) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + server->priv->display_status_icon = display_status_icon; +} + +const char * +vino_server_get_network_interface (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), NULL); + + return server->priv->network_interface; +} + +void +vino_server_set_network_interface (VinoServer *server, + const char *network_interface) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->network_interface) + g_free (server->priv->network_interface); + + if(network_interface != NULL && strlen (network_interface) > 0) + server->priv->network_interface = g_strdup (network_interface); + else + server->priv->network_interface = NULL; + + if (server->priv->rfb_screen != NULL) + rfbSetNetworkInterface (server->priv->rfb_screen, server->priv->network_interface); + + g_object_notify (G_OBJECT (server), "network-interface"); +} + +gboolean +vino_server_get_use_alternative_port (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->use_alternative_port; +} + +void +vino_server_set_use_alternative_port (VinoServer *server, + gboolean use_alternative_port) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + use_alternative_port = use_alternative_port != FALSE; + + if (server->priv->use_alternative_port != use_alternative_port) + { + server->priv->use_alternative_port = use_alternative_port; + + if (server->priv->rfb_screen) + { + if (server->priv->use_alternative_port) + rfbSetPort (server->priv->rfb_screen, + server->priv->alternative_port); + + rfbSetAutoPort (server->priv->rfb_screen, + !server->priv->use_alternative_port); + + vino_server_init_io_channels (server); + vino_server_control_upnp (server); + } + + g_object_notify (G_OBJECT (server), "use-alternative-port"); + g_object_notify (G_OBJECT (server), "alternative-port"); + } +} + +gint +vino_server_get_alternative_port (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->alternative_port; +} + +void +vino_server_set_alternative_port (VinoServer *server, + int alternative_port) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->alternative_port != alternative_port) + { + server->priv->alternative_port = alternative_port; + + if (server->priv->rfb_screen && + server->priv->use_alternative_port) + { + rfbSetPort (server->priv->rfb_screen, server->priv->alternative_port); + vino_server_init_io_channels (server); + vino_server_control_upnp (server); + } + + g_object_notify (G_OBJECT (server), "alternative-port"); + } +} + +gboolean +vino_server_get_on_hold (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->on_hold; +} + +void +vino_server_set_on_hold (VinoServer *server, + gboolean on_hold) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + on_hold = on_hold != FALSE; + + if (server->priv->on_hold != on_hold) + { + GSList *l; + + server->priv->on_hold = on_hold; + + for (l = server->priv->clients; l; l = l->next) + { + VinoClient *client = l->data; + + /* If a client is on hold before we have initialized, + * we want to leave it on hold until the deferred + * authentication or the prompt has completed. + * + * FIXME: this isn't correct, though - e.g if we're + * in the middle of prompting and you toggle the + * server on and off then the client gets through. + */ + if (client->rfb_client->state == RFB_NORMAL) + vino_server_set_client_on_hold (server, client, on_hold); + } + + g_object_notify (G_OBJECT (server), "on-hold"); + + if (server->priv->icon) + vino_status_icon_update_state (server->priv->icon); + + vino_server_control_upnp (server); + } +} + +gboolean +vino_server_get_prompt_enabled (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->prompt_enabled; +} + +void +vino_server_set_prompt_enabled (VinoServer *server, + gboolean prompt_enabled) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + prompt_enabled = prompt_enabled != FALSE; + + if (server->priv->prompt_enabled != prompt_enabled) + { + server->priv->prompt_enabled = prompt_enabled; + + g_object_notify (G_OBJECT (server), "prompt-enabled"); + } +} + +gboolean +vino_server_get_has_clients (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->num_clients > 0; +} + +static void +vino_server_update_security_types (VinoServer *server) +{ + if (!server->priv->rfb_screen) + return; + + rfbClearSecurityTypes (server->priv->rfb_screen); + rfbClearAuthTypes (server->priv->rfb_screen); + +#ifdef VINO_HAVE_GNUTLS + rfbAddSecurityType (server->priv->rfb_screen, rfbTLS); +#endif + + if (server->priv->auth_methods & VINO_AUTH_VNC) + { + rfbAddAuthType (server->priv->rfb_screen, rfbVncAuth); +#ifdef VINO_HAVE_GNUTLS + if (!server->priv->require_encryption) +#endif + rfbAddSecurityType (server->priv->rfb_screen, rfbVncAuth); + } + + if (server->priv->auth_methods & VINO_AUTH_NONE) + { + rfbAddAuthType (server->priv->rfb_screen, rfbNoAuth); +#ifdef VINO_HAVE_GNUTLS + if (!server->priv->require_encryption) +#endif + rfbAddSecurityType (server->priv->rfb_screen, rfbNoAuth); + } +} +void +vino_server_set_require_encryption (VinoServer *server, + gboolean require_encryption) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + require_encryption = require_encryption != FALSE; + + if (server->priv->require_encryption != require_encryption) + { + server->priv->require_encryption = require_encryption; + + vino_server_update_security_types (server); + + g_object_notify (G_OBJECT (server), "require-encryption"); + } +} + +gboolean +vino_server_get_require_encryption (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->require_encryption; +} + +void +vino_server_set_auth_methods (VinoServer *server, + VinoAuthMethod auth_methods) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + g_return_if_fail (auth_methods != VINO_AUTH_INVALID); + + if (server->priv->auth_methods != auth_methods) + { + server->priv->auth_methods = auth_methods; + + vino_server_update_security_types (server); + + g_object_notify (G_OBJECT (server), "auth-methods"); + } +} + +VinoAuthMethod +vino_server_get_auth_methods (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), VINO_AUTH_INVALID); + + return server->priv->auth_methods; +} + +void +vino_server_set_vnc_password (VinoServer *server, + const char *vnc_password) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->vnc_password) + g_free (server->priv->vnc_password); + + server->priv->vnc_password = g_strdup (vnc_password); + + g_object_notify (G_OBJECT (server), "vnc-password"); +} + +const char * +vino_server_get_vnc_password (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), NULL); + + return server->priv->vnc_password; +} + +const char * +vino_client_get_hostname (VinoClient *client) +{ + return client->rfb_client->host; +} + +void +vino_client_disconnect (VinoClient *client) +{ + rfbCloseClient (client->rfb_client); + rfbClientConnectionGone (client->rfb_client); +} + +int +vino_server_get_port (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), 0); + + return server->priv->rfb_screen->rfbPort; +} + +guint16 +vino_server_get_external_port (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), 0); + + if (server->priv->use_upnp && server->priv->upnp) + { + gint port = vino_upnp_get_external_port (server->priv->upnp); + + if (port > 0) + return port; + } + + return 0; +} + +gchar * +vino_server_get_external_ip (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), 0); + + if (server->priv->use_upnp && server->priv->upnp) + return vino_upnp_get_external_ip (server->priv->upnp); + + return NULL; +} + +gboolean +vino_server_get_lock_screen (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->lock_screen; +} + +void +vino_server_set_lock_screen (VinoServer *server, + gboolean lock_screen) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + lock_screen = lock_screen != FALSE; + + if (server->priv->lock_screen != lock_screen) + { + server->priv->lock_screen = lock_screen; + + g_object_notify (G_OBJECT (server), "lock-screen"); + } +} + +static void +vino_server_set_notify_on_connect (VinoServer *server, + gboolean notify_on_connect) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->notify_on_connect == notify_on_connect) + return; + + server->priv->notify_on_connect = notify_on_connect; + g_object_notify (G_OBJECT (server), "notify-on-connect"); +} + +gboolean +vino_server_get_notify_on_connect (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->notify_on_connect; +} + +VinoStatusIcon * +vino_server_get_status_icon (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), NULL); + + return server->priv->icon; +} + +void +vino_server_set_reject_incoming (VinoServer *server, + gboolean reject) +{ + g_return_if_fail (VINO_IS_SERVER (server)); + + if (server->priv->reject_incoming == reject) + return; + + server->priv->reject_incoming = reject; + g_object_notify (G_OBJECT (server), "reject-incoming"); +} + +gboolean +vino_server_get_reject_incoming (VinoServer *server) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), FALSE); + + return server->priv->reject_incoming; +} diff --git a/server/vino-server.desktop.in.in b/server/vino-server.desktop.in.in new file mode 100644 index 0000000..d3b195d --- /dev/null +++ b/server/vino-server.desktop.in.in @@ -0,0 +1,12 @@ +[Desktop Entry] +_Name=Desktop Sharing +_Comment=GNOME Desktop Sharing Server +_Keywords=vnc;share;remote; +Exec=@LIBEXECDIR@/vino-server +Icon=preferences-desktop-remote-desktop +NoDisplay=true +Terminal=false +Type=Application +X-GNOME-Autostart-Phase=Applications +X-GNOME-AutoRestart=true +X-GNOME-UsesNotifications=true diff --git a/server/vino-server.h b/server/vino-server.h new file mode 100644 index 0000000..0e98880 --- /dev/null +++ b/server/vino-server.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_SERVER_H__ +#define __VINO_SERVER_H__ + +#include <glib-object.h> +#include <gdk/gdk.h> + +#include "vino-types.h" + +G_BEGIN_DECLS + +#define VINO_SERVER_DEFAULT_PORT 5900 +#define VINO_SERVER_MIN_PORT 5000 +#define VINO_SERVER_MAX_PORT 50000 +#define VINO_SERVER_VALID_PORT(p) ((p) > VINO_SERVER_MIN_PORT && (p) < VINO_SERVER_MAX_PORT) + +#define VINO_TYPE_SERVER (vino_server_get_type ()) +#define VINO_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), VINO_TYPE_SERVER, VinoServer)) +#define VINO_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), VINO_TYPE_SERVER, VinoServerClass)) +#define VINO_IS_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINO_TYPE_SERVER)) +#define VINO_IS_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), VINO_TYPE_SERVER)) +#define VINO_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), VINO_TYPE_SERVER, VinoServerClass)) + +typedef struct _VinoServerClass VinoServerClass; +typedef struct _VinoServerPrivate VinoServerPrivate; +typedef struct _VinoClient VinoClient; + +typedef enum +{ + VINO_AUTH_INVALID = 0, + VINO_AUTH_NONE = 1 << 0, + VINO_AUTH_VNC = 1 << 1 +} VinoAuthMethod; + +struct _VinoServer +{ + GObject base; + + VinoServerPrivate *priv; +}; + +struct _VinoServerClass +{ + GObjectClass base_class; +}; + +GType vino_server_get_type (void) G_GNUC_CONST; + +VinoServer *vino_server_new (GdkScreen *screen, + gboolean view_only); +GdkScreen *vino_server_get_screen (VinoServer *server); +gboolean vino_server_get_has_clients (VinoServer *server); +void vino_server_set_on_hold (VinoServer *server, + gboolean on_hold); +gboolean vino_server_get_on_hold (VinoServer *server); +void vino_server_set_prompt_enabled (VinoServer *server, + gboolean enable_prompt); +gboolean vino_server_get_prompt_enabled (VinoServer *server); +void vino_server_set_view_only (VinoServer *server, + gboolean view_only); +gboolean vino_server_get_view_only (VinoServer *server); +void vino_server_set_display_status_icon (VinoServer *server, + gboolean display_status_icon); +void vino_server_set_use_dbus_listener (VinoServer *server, + gboolean use_dbus_listener); +gboolean vino_server_get_use_alternative_port (VinoServer *server); +void vino_server_set_use_alternative_port (VinoServer *server, + gboolean use_alternative_port); +int vino_server_get_alternative_port (VinoServer *server); +void vino_server_set_alternative_port (VinoServer *server, + int alternative_port); +int vino_server_get_port (VinoServer *server); +gchar * vino_server_get_external_ip (VinoServer *server); +guint16 vino_server_get_external_port (VinoServer *server); + +void vino_server_set_network_interface (VinoServer *server, + const char *network_interface); +const char *vino_server_get_network_interface (VinoServer *server); +void vino_server_set_require_encryption (VinoServer *server, + gboolean require_encryption); +gboolean vino_server_get_require_encryption (VinoServer *server); +void vino_server_set_auth_methods (VinoServer *server, + VinoAuthMethod auth_methods); +VinoAuthMethod vino_server_get_auth_methods (VinoServer *server); +void vino_server_set_vnc_password (VinoServer *server, + const char *vnc_password); +const char *vino_server_get_vnc_password (VinoServer *server); +void vino_server_set_lock_screen (VinoServer *server, + gboolean lock_screen); +gboolean vino_server_get_lock_screen (VinoServer *server); + +void vino_server_set_disable_background (VinoServer *server, + gboolean disable_background); +gboolean vino_server_get_disable_background (VinoServer *server); + +void vino_server_set_use_upnp (VinoServer *server, + gboolean use_upnp); +gboolean vino_server_get_use_upnp (VinoServer *server); + +void vino_server_set_disable_xdamage (VinoServer *server, + gboolean disable_xdamage); +gboolean vino_server_get_disable_xdamage (VinoServer *server); +gboolean vino_server_get_notify_on_connect (VinoServer *server); +void vino_server_set_reject_incoming (VinoServer *server, + gboolean reject); +gboolean vino_server_get_reject_incoming (VinoServer *server); + +#include "vino-status-icon.h" +VinoStatusIcon *vino_server_get_status_icon (VinoServer *server); + +const char *vino_client_get_hostname (VinoClient *client); +void vino_client_disconnect (VinoClient *client); + +G_END_DECLS + +#endif /* __VINO_SERVER_H__ */ diff --git a/server/vino-server.service.in b/server/vino-server.service.in new file mode 100644 index 0000000..a48b813 --- /dev/null +++ b/server/vino-server.service.in @@ -0,0 +1,8 @@ +[Unit] +Description=Vino VNC server + +[Service] +Type=dbus +BusName=org.gnome.Vino +ExecStart=@libexecdir@/vino-server +Restart=on-failure diff --git a/server/vino-status-icon.c b/server/vino-status-icon.c new file mode 100644 index 0000000..74900e9 --- /dev/null +++ b/server/vino-status-icon.c @@ -0,0 +1,689 @@ +/* + * Copyright (C) 2006 Jonh Wendell + * Copyright (C) 2007 Mark McLoughlin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Jonh Wendell <wendell@bani.com.br> + * Mark McLoughlin <mark@skynet.ie> + */ + +#include <config.h> +#include <gtk/gtk.h> +#include <gio/gdesktopappinfo.h> +#include <string.h> +#include <libnotify/notify.h> + +#include "vino-status-icon.h" +#include "vino-enums.h" +#include "vino-util.h" + +struct _VinoStatusIconPrivate +{ + GtkMenu *menu; + VinoServer *server; + GSList *clients; + GtkWidget *disconnect_dialog; + VinoStatusIconVisibility visibility; + + NotifyNotification *new_client_notification; +}; + +G_DEFINE_TYPE (VinoStatusIcon, vino_status_icon, GTK_TYPE_STATUS_ICON); + +enum +{ + PROP_0, + PROP_SERVER, + PROP_VISIBILITY +}; + +typedef struct +{ + VinoStatusIcon *icon; + VinoClient *client; +}VinoStatusIconNotify; + +static gboolean vino_status_icon_show_new_client_notification (gpointer user_data); + +static void +vino_status_icon_finalize (GObject *object) +{ + VinoStatusIcon *icon = VINO_STATUS_ICON (object); + + if (icon->priv->new_client_notification) + g_object_unref (icon->priv->new_client_notification); + icon->priv->new_client_notification = NULL; + + if (icon->priv->menu) + gtk_widget_destroy (GTK_WIDGET(icon->priv->menu)); + icon->priv->menu = NULL; + + if (icon->priv->clients) + g_slist_free (icon->priv->clients); + icon->priv->clients = NULL; + + if (icon->priv->disconnect_dialog) + gtk_widget_destroy (icon->priv->disconnect_dialog); + icon->priv->disconnect_dialog = NULL; + + G_OBJECT_CLASS (vino_status_icon_parent_class)->finalize (object); +} + +void +vino_status_icon_update_state (VinoStatusIcon *icon) +{ + char *tooltip; + gboolean visible; + + g_return_if_fail (VINO_IS_STATUS_ICON (icon)); + + visible = !vino_server_get_on_hold (icon->priv->server); + + if (icon->priv->clients != NULL) + { + int n_clients; + + n_clients = g_slist_length (icon->priv->clients); + + tooltip = g_strdup_printf (ngettext ("One person is viewing your desktop", + "%d people are viewing your desktop", + n_clients), + n_clients); + visible = (visible) && ( (icon->priv->visibility == VINO_STATUS_ICON_VISIBILITY_CLIENT) || + (icon->priv->visibility == VINO_STATUS_ICON_VISIBILITY_ALWAYS) ); + } + else + { + tooltip = g_strdup (_("Desktop sharing is enabled")); + visible = visible && (icon->priv->visibility == VINO_STATUS_ICON_VISIBILITY_ALWAYS); + } + + gtk_status_icon_set_tooltip_text (GTK_STATUS_ICON (icon), tooltip); + gtk_status_icon_set_visible (GTK_STATUS_ICON (icon), visible); + + g_free (tooltip); +} + +static void +vino_status_icon_init (VinoStatusIcon *icon) +{ + icon->priv = G_TYPE_INSTANCE_GET_PRIVATE (icon, VINO_TYPE_STATUS_ICON, VinoStatusIconPrivate); +} + +static void +vino_status_icon_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VinoStatusIcon *icon = VINO_STATUS_ICON (object); + + switch (prop_id) + { + case PROP_SERVER: + icon->priv->server = g_value_get_object (value); + break; + case PROP_VISIBILITY: + vino_status_icon_set_visibility (icon, g_value_get_enum (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_status_icon_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VinoStatusIcon *icon = VINO_STATUS_ICON (object); + + switch (prop_id) + { + case PROP_SERVER: + g_value_set_object (value, icon->priv->server); + break; + case PROP_VISIBILITY: + g_value_set_enum (value, icon->priv->visibility); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +VinoStatusIcon * +vino_status_icon_new (VinoServer *server, + GdkScreen *screen) +{ + g_return_val_if_fail (VINO_IS_SERVER (server), NULL); + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return g_object_new (VINO_TYPE_STATUS_ICON, + "icon-name", "preferences-desktop-remote-desktop", + "server", server, + "screen", screen, + NULL); +} + +VinoServer * +vino_status_icon_get_server (VinoStatusIcon *icon) +{ + g_return_val_if_fail (VINO_IS_STATUS_ICON (icon), NULL); + + return icon->priv->server; +} + +static void +vino_status_icon_preferences (VinoStatusIcon *icon) +{ + GdkScreen *screen; + GDesktopAppInfo *info; + GdkAppLaunchContext *context; + GError *error = NULL; + + screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon)); + info = g_desktop_app_info_new ("gnome-sharing-panel.desktop"); + if (info == NULL) + info = g_desktop_app_info_new ("vino-preferences.desktop"); + if (info == NULL) + { + vino_util_show_error (NULL, _("Error displaying preferences"), NULL); + return; + } + context = gdk_display_get_app_launch_context (gdk_screen_get_display (screen)); + if (!g_app_info_launch (G_APP_INFO (info), NULL, G_APP_LAUNCH_CONTEXT (context), &error)) + { + vino_util_show_error (_("Error displaying preferences"), + error->message, + NULL); + g_error_free (error); + } + + g_object_unref (info); + g_object_unref (context); +} + +static void +vino_status_icon_help (VinoStatusIcon *icon) +{ + GdkScreen *screen; + GError *error = NULL; + + screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon)); + if (!gtk_show_uri (screen, + "help:gnome-help/sharing-desktop", + GDK_CURRENT_TIME, + &error)) + { + vino_util_show_error (_("Error displaying help"), + error->message, + NULL); + g_error_free (error); + } +} + +static void +vino_status_icon_about (VinoStatusIcon *icon) +{ + + g_return_if_fail (VINO_IS_STATUS_ICON (icon)); + + static const gchar * const authors[] = { + "Mark McLoughlin <mark@skynet.ie>", + "Calum Benson <calum.benson@sun.com>", + "Federico Mena Quintero <federico@ximian.com>", + "Sebastien Estienne <sebastien.estienne@gmail.com>", + "Shaya Potter <spotter@cs.columbia.edu>", + "Steven Zhang <steven.zhang@sun.com>", + "Srirama Sharma <srirama.sharma@wipro.com>", + "Jonh Wendell <wendell@bani.com.br>", + "David King <amigadave@amigadave.com>", + NULL + }; + static const gchar copyright[] = \ + "Copyright © 2004–2011 Mark McLoughlin\n" \ + "Copyright © 2006–2011 Jonh Wendell\n" \ + "Copyright © 2011 David King"; + + char *license; + char *translators; + + license = _("Licensed under the GNU General Public License Version 2\n\n" + "Vino is free software; you can redistribute it and/or\n" + "modify it under the terms of the GNU General Public License\n" + "as published by the Free Software Foundation; either version 2\n" + "of the License, or (at your option) any later version.\n\n" + "Vino is distributed in the hope that it will be useful,\n" + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" + "GNU General Public License for more details.\n\n" + "You should have received a copy of the GNU General Public License\n" + "along with this program; if not, write to the Free Software\n" + "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n" + "02110-1301, USA.\n"); + + /* Translators comment: put your own name here to appear in the about dialog. */ + translators = _("translator-credits"); + + if (!strcmp (translators, "translator-credits")) + translators = NULL; + + gtk_show_about_dialog (NULL, + "comments", _("Share your desktop with other users"), + "version", PACKAGE_VERSION, + "website", PACKAGE_URL, + "license", license, + "authors", authors, + "copyright", copyright, + "translator-credits", translators, + "logo-icon-name", "preferences-desktop-remote-desktop", + NULL); +} + +static void +vino_status_icon_disconnect_client (VinoStatusIconNotify *a, gint response) +{ + + GSList *l; + GSList *next; + + VinoStatusIcon *icon = a->icon; + VinoClient *client = a->client; + + gtk_widget_destroy (icon->priv->disconnect_dialog); + icon->priv->disconnect_dialog = NULL; + + if (response != GTK_RESPONSE_OK) + { + g_free (a); + return; + } + + if (client) + { + if (g_slist_find (icon->priv->clients, client)) + vino_client_disconnect (client); + } + else + for (l = icon->priv->clients; l; l = next) + { + VinoClient *client = l->data; + + next = l->next; + + vino_client_disconnect (client); + } + + g_free (a); +} + +static void +vino_status_icon_disconnect_confirm (VinoStatusIconNotify *a) +{ + char *primary_msg; + char *secondary_msg; + + VinoStatusIcon *icon = a->icon; + VinoClient *client = a->client; + + if (icon->priv->disconnect_dialog) + { + gtk_window_present (GTK_WINDOW(icon->priv->disconnect_dialog)); + return; + } + + if (client != NULL) + { + /* Translators: %s is a hostname */ + primary_msg = g_strdup_printf + (_("Are you sure you want to disconnect '%s'?"), + vino_client_get_hostname (client)); + secondary_msg = g_strdup_printf + (_("The remote user from '%s' will be disconnected. Are you sure?"), + vino_client_get_hostname (client)); + } + else + { + primary_msg = g_strdup + (_("Are you sure you want to disconnect all clients?")); + secondary_msg = g_strdup + (_("All remote users will be disconnected. Are you sure?")); + } + + icon->priv->disconnect_dialog = gtk_message_dialog_new (NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_CANCEL, + "%s", + primary_msg); + + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (icon->priv->disconnect_dialog), FALSE); + + gtk_dialog_add_button (GTK_DIALOG (icon->priv->disconnect_dialog), _("Disconnect"), GTK_RESPONSE_OK); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (icon->priv->disconnect_dialog), + "%s", secondary_msg); + + g_signal_connect_swapped (icon->priv->disconnect_dialog, "response", + G_CALLBACK (vino_status_icon_disconnect_client), (gpointer) a); + gtk_widget_show_all (GTK_WIDGET(icon->priv->disconnect_dialog)); + + g_free (primary_msg); + g_free (secondary_msg); +} + +static void +vino_status_icon_popup_menu (GtkStatusIcon *status_icon, + guint button, + guint32 timestamp) +{ + VinoStatusIcon *icon = VINO_STATUS_ICON (status_icon); + GtkWidget *item; + GSList *l; + VinoStatusIconNotify *a; + guint n_clients; + + icon->priv->menu = (GtkMenu*) gtk_menu_new (); + + item = gtk_image_menu_item_new_with_mnemonic (_("_Preferences")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_icon_preferences), icon); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + item = gtk_separator_menu_item_new (); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + n_clients = g_slist_length (icon->priv->clients); + if (n_clients > 1) + { + item = gtk_image_menu_item_new_with_label (_("Disconnect all")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_NETWORK, GTK_ICON_SIZE_MENU)); + + a = g_new (VinoStatusIconNotify, 1); + a->icon = icon; + a->client = NULL; + + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_icon_disconnect_confirm), (gpointer) a); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + } + + for (l = icon->priv->clients; l; l = l->next) + { + VinoClient *client = l->data; + char *str; + + a = g_new (VinoStatusIconNotify, 1); + a->icon = icon; + a->client = client; + + /* Translators: %s is a hostname */ + str = g_strdup_printf (_("Disconnect %s"), + vino_client_get_hostname (client)); + + item = gtk_image_menu_item_new_with_label (str); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_NETWORK, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_icon_disconnect_confirm), (gpointer) a); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + g_free (str); + } + + if (n_clients) + { + item = gtk_separator_menu_item_new (); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + } + + item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_icon_help), icon); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + item = gtk_image_menu_item_new_with_mnemonic (_("_About")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_icon_about), icon); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + gtk_menu_popup (GTK_MENU (icon->priv->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, timestamp); + if (button == 0) + gtk_menu_shell_select_first (GTK_MENU_SHELL (icon->priv->menu), FALSE); +} + +static void +vino_status_icon_activate (GtkStatusIcon *icon) +{ + vino_status_icon_preferences (VINO_STATUS_ICON (icon)); +} + +void +vino_status_icon_add_client (VinoStatusIcon *icon, + VinoClient *client) +{ + g_return_if_fail (VINO_IS_STATUS_ICON (icon)); + g_return_if_fail (client != NULL); + + icon->priv->clients = g_slist_append (icon->priv->clients, client); + + vino_status_icon_update_state (icon); + + if (gtk_status_icon_get_visible (GTK_STATUS_ICON (icon))) + { + VinoStatusIconNotify *a; + + a = g_new (VinoStatusIconNotify, 1); + a->icon = icon; + a->client = client; + g_timeout_add_seconds (1, + vino_status_icon_show_new_client_notification, + (gpointer) a); + } +} + +gboolean +vino_status_icon_remove_client (VinoStatusIcon *icon, + VinoClient *client) +{ + g_return_val_if_fail (VINO_IS_STATUS_ICON (icon), TRUE); + g_return_val_if_fail (client != NULL, TRUE); + + if (!icon->priv->clients) + return FALSE; + + icon->priv->clients = g_slist_remove (icon->priv->clients, client); + + vino_status_icon_update_state (icon); + + return icon->priv->clients == NULL; +} + +static void +vino_status_icon_class_init (VinoStatusIconClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkStatusIconClass *status_icon_class = GTK_STATUS_ICON_CLASS (klass); + + gobject_class->finalize = vino_status_icon_finalize; + gobject_class->set_property = vino_status_icon_set_property; + gobject_class->get_property = vino_status_icon_get_property; + + status_icon_class->activate = vino_status_icon_activate; + status_icon_class->popup_menu = vino_status_icon_popup_menu; + + g_object_class_install_property (gobject_class, + PROP_SERVER, + g_param_spec_object ("server", + "Server", + "The server", + VINO_TYPE_SERVER, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + g_object_class_install_property (gobject_class, + PROP_VISIBILITY, + g_param_spec_enum ("visibility", + "Icon visibility", + "When the icon must be shown", + VINO_TYPE_STATUS_ICON_VISIBILITY, + VINO_STATUS_ICON_VISIBILITY_CLIENT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_type_class_add_private (gobject_class, sizeof (VinoStatusIconPrivate)); +} + +static void +vino_status_handle_new_client_notification_closed (VinoStatusIcon *icon) +{ + g_object_unref (icon->priv->new_client_notification); + icon->priv->new_client_notification = NULL; +} + +static gboolean +vino_status_icon_show_new_client_notification (gpointer user_data) +{ +#define NOTIFICATION_TIMEOUT 5 + + GError *error; + const char *summary; + char *body; + + VinoStatusIconNotify *a = (VinoStatusIconNotify *)user_data; + VinoStatusIcon *icon = a->icon; + VinoClient *client = a->client; + + if (vino_server_get_prompt_enabled (icon->priv->server)) + { + g_free (user_data); + return FALSE; + } + + if (!notify_is_initted () && !notify_init (g_get_application_name ())) + { + g_printerr (_("Error initializing libnotify\n")); + g_free (user_data); + return FALSE; + } + + if (g_slist_index (icon->priv->clients, client) == -1) + { + g_free (user_data); + return FALSE; + } + + if (icon->priv->new_client_notification) + { + notify_notification_close (icon->priv->new_client_notification, NULL); + g_object_unref (icon->priv->new_client_notification); + icon->priv->new_client_notification = NULL; + } + + if (vino_server_get_view_only (icon->priv->server)) + { + /* Translators: %s is a hostname */ + summary = _("Another user is viewing your desktop"); + body = g_strdup_printf + (_("A user on the computer '%s' is remotely viewing your desktop."), + vino_client_get_hostname (client)); + } + else + { + /* Translators: %s is a hostname */ + summary = _("Another user is controlling your desktop"); + body = g_strdup_printf + (_("A user on the computer '%s' is remotely controlling " + "your desktop."), vino_client_get_hostname (client)); + } + + icon->priv->new_client_notification = + notify_notification_new (summary, + body, + "preferences-desktop-remote-desktop"); + + g_free (body); + + g_signal_connect_swapped (icon->priv->new_client_notification, "closed", + G_CALLBACK (vino_status_handle_new_client_notification_closed), + icon); + notify_notification_set_hint_string (icon->priv->new_client_notification, + "desktop-entry", "vino-server"); + notify_notification_set_timeout (icon->priv->new_client_notification, + NOTIFICATION_TIMEOUT * 1000); + + error = NULL; + if (vino_server_get_notify_on_connect (icon->priv->server) && !notify_notification_show (icon->priv->new_client_notification, &error)) + { + g_printerr (_("Error while displaying notification bubble: %s\n"), + error->message); + g_error_free (error); + } + + g_free (user_data); + +#undef NOTIFICATION_TIMEOUT + + return FALSE; +} + +void +vino_status_icon_set_visibility (VinoStatusIcon *icon, + VinoStatusIconVisibility visibility) +{ + g_return_if_fail (VINO_IS_STATUS_ICON (icon)); + g_return_if_fail (visibility != VINO_STATUS_ICON_VISIBILITY_INVALID); + + if (visibility != icon->priv->visibility) + { + icon->priv->visibility = visibility; + vino_status_icon_update_state (icon); + } +} + +VinoStatusIconVisibility +vino_status_icon_get_visibility (VinoStatusIcon *icon) +{ + g_return_val_if_fail (VINO_IS_STATUS_ICON (icon), VINO_STATUS_ICON_VISIBILITY_INVALID); + + return icon->priv->visibility; +} diff --git a/server/vino-status-icon.h b/server/vino-status-icon.h new file mode 100644 index 0000000..a01ec53 --- /dev/null +++ b/server/vino-status-icon.h @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2006 Jonh Wendell. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Jonh Wendell <wendell@bani.com.br> + */ + +#ifndef __VINO_STATUS_ICON_H__ +#define __VINO_STATUS_ICON_H__ + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +typedef enum +{ + VINO_STATUS_ICON_VISIBILITY_INVALID = 0, + VINO_STATUS_ICON_VISIBILITY_ALWAYS, + VINO_STATUS_ICON_VISIBILITY_CLIENT, + VINO_STATUS_ICON_VISIBILITY_NEVER +} VinoStatusIconVisibility; + +#define VINO_TYPE_STATUS_ICON (vino_status_icon_get_type ()) +#define VINO_STATUS_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), VINO_TYPE_STATUS_ICON, VinoStatusIcon)) +#define VINO_STATUS_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), VINO_TYPE_STATUS_ICON, VinoStatusIconClass)) +#define VINO_IS_STATUS_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINO_TYPE_STATUS_ICON)) +#define VINO_IS_STATUS_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), VINO_TYPE_STATUS_ICON)) +#define VINO_STATUS_ICON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), VINO_TYPE_STATUS_ICON, VinoStatusIconClass)) + +typedef struct _VinoStatusIcon VinoStatusIcon; +typedef struct _VinoStatusIconClass VinoStatusIconClass; +typedef struct _VinoStatusIconPrivate VinoStatusIconPrivate; + +struct _VinoStatusIcon +{ + GtkStatusIcon base; + + VinoStatusIconPrivate *priv; +}; + +struct _VinoStatusIconClass +{ + GtkStatusIconClass base_class; +}; + +#include "vino-server.h" + +GType vino_status_icon_get_type (void) G_GNUC_CONST; + +VinoStatusIcon *vino_status_icon_new (VinoServer *server, + GdkScreen *screen); + +VinoServer *vino_status_icon_get_server (VinoStatusIcon *icon); + +void vino_status_icon_add_client (VinoStatusIcon *icon, + VinoClient *client); +gboolean vino_status_icon_remove_client (VinoStatusIcon *icon, + VinoClient *client); + +void vino_status_icon_update_state (VinoStatusIcon *icon); +void vino_status_icon_set_visibility (VinoStatusIcon *icon, + VinoStatusIconVisibility visibility); +VinoStatusIconVisibility vino_status_icon_get_visibility (VinoStatusIcon *icon); + +G_END_DECLS + +#endif /* __VINO_STATUS_ICON_H__ */ diff --git a/server/vino-status-tube-icon.c b/server/vino-status-tube-icon.c new file mode 100644 index 0000000..e5cbb11 --- /dev/null +++ b/server/vino-status-tube-icon.c @@ -0,0 +1,437 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#include <config.h> +#include <string.h> +#include <gtk/gtk.h> +#include <gio/gdesktopappinfo.h> +#include <glib/gi18n.h> +#include <libnotify/notify.h> + +#include "vino-status-tube-icon.h" +#include "vino-enums.h" +#include "vino-util.h" + +struct _VinoStatusTubeIconPrivate +{ + GtkMenu *menu; + VinoTubeServer *server; + GtkWidget *disconnect_dialog; + VinoStatusTubeIconVisibility visibility; + + NotifyNotification *new_client_notification; +}; + +G_DEFINE_TYPE (VinoStatusTubeIcon, vino_status_tube_icon, GTK_TYPE_STATUS_ICON); + +enum +{ + PROP_0, + PROP_SERVER, + PROP_VISIBILITY +}; + +static void +vino_status_tube_icon_finalize (GObject *object) +{ + VinoStatusTubeIcon *icon = VINO_STATUS_TUBE_ICON (object); + + if (icon->priv->new_client_notification != NULL) + { + notify_notification_close (icon->priv->new_client_notification, NULL); + g_object_unref (icon->priv->new_client_notification); + icon->priv->new_client_notification = NULL; + } + + if (icon->priv->menu != NULL) + { + gtk_widget_destroy (GTK_WIDGET(icon->priv->menu)); + icon->priv->menu = NULL; + } + + if (icon->priv->disconnect_dialog != NULL) + { + gtk_widget_destroy (icon->priv->disconnect_dialog); + icon->priv->disconnect_dialog = NULL; + } + + G_OBJECT_CLASS (vino_status_tube_icon_parent_class)->finalize (object); +} + +void +vino_status_tube_icon_update_state (VinoStatusTubeIcon *icon) +{ + char *tooltip; + gboolean visible; + + g_return_if_fail (VINO_IS_STATUS_TUBE_ICON (icon)); + + visible = !vino_server_get_on_hold (VINO_SERVER (icon->priv->server)); + + tooltip = g_strdup (_("Desktop sharing is enabled")); + + visible = visible && (icon->priv->visibility == VINO_STATUS_TUBE_ICON_VISIBILITY_ALWAYS); + + gtk_status_icon_set_tooltip_text (GTK_STATUS_ICON (icon), tooltip); + gtk_status_icon_set_visible (GTK_STATUS_ICON (icon), visible); + + g_free (tooltip); +} + +static void +vino_status_tube_icon_init (VinoStatusTubeIcon *icon) +{ + icon->priv = G_TYPE_INSTANCE_GET_PRIVATE (icon, VINO_TYPE_STATUS_TUBE_ICON, VinoStatusTubeIconPrivate); + icon->priv->new_client_notification = NULL; +} + +static void +vino_status_tube_icon_set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + VinoStatusTubeIcon *icon = VINO_STATUS_TUBE_ICON (object); + + switch (prop_id) + { + case PROP_SERVER: + icon->priv->server = g_value_get_object (value); + break; + case PROP_VISIBILITY: + vino_status_tube_icon_set_visibility (icon, g_value_get_enum (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_status_tube_icon_get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + VinoStatusTubeIcon *icon = VINO_STATUS_TUBE_ICON (object); + + switch (prop_id) + { + case PROP_SERVER: + g_value_set_object (value, icon->priv->server); + break; + case PROP_VISIBILITY: + g_value_set_enum (value, icon->priv->visibility); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +VinoStatusTubeIcon* +vino_status_tube_icon_new (VinoTubeServer *server, + GdkScreen *screen) +{ + g_return_val_if_fail (VINO_IS_TUBE_SERVER (server), NULL); + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + + return g_object_new (VINO_TYPE_STATUS_TUBE_ICON, + "icon-name", "preferences-desktop-remote-desktop", + "server", server, "screen", screen, NULL); +} + +static void +vino_status_tube_icon_preferences (VinoStatusTubeIcon *icon) +{ + GdkScreen *screen; + GDesktopAppInfo *info; + GdkAppLaunchContext *context; + GError *error = NULL; + + screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon)); + info = g_desktop_app_info_new ("gnome-sharing-panel.desktop"); + if (info == NULL) + info = g_desktop_app_info_new ("vino-preferences.desktop"); + if (info == NULL) + { + vino_util_show_error (NULL, _("Error displaying preferences"), NULL); + return; + } + context = gdk_display_get_app_launch_context (gdk_screen_get_display (screen)); + if (!g_app_info_launch (G_APP_INFO (info), NULL, G_APP_LAUNCH_CONTEXT (context), &error)) + { + vino_util_show_error (_("Error displaying preferences"), + error->message, + NULL); + g_error_free (error); + } + + g_object_unref (info); + g_object_unref (context); +} + +static void +vino_status_tube_icon_help (VinoStatusTubeIcon *icon) +{ + GdkScreen *screen; + GError *error = NULL; + + screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon)); + if (!gtk_show_uri (screen, "help:gnome-help/sharing-desktop", + GDK_CURRENT_TIME, &error)) + { + vino_util_show_error (_("Error displaying help"), error->message, NULL); + g_error_free (error); + } +} + +static void +vino_status_tube_icon_disconnect_client (VinoStatusTubeIcon *icon, + gint response) +{ + gtk_widget_destroy (icon->priv->disconnect_dialog); + icon->priv->disconnect_dialog = NULL; + + if (response == GTK_RESPONSE_OK) + { + vino_tube_server_close_tube (icon->priv->server); + } +} + +static void +vino_status_tube_icon_disconnect_confirm (VinoStatusTubeIcon *icon) +{ + char *primary_msg; + char *secondary_msg; + + if (icon->priv->disconnect_dialog) + { + gtk_window_present (GTK_WINDOW(icon->priv->disconnect_dialog)); + return; + } + + /* Translators: %s is the alias of the telepathy contact */ + primary_msg = g_strdup_printf + (_("Are you sure you want to disconnect '%s'?"), + vino_tube_server_get_alias (icon->priv->server)); + secondary_msg = g_strdup_printf + (_("The remote user '%s' will be disconnected. Are you sure?"), + vino_tube_server_get_alias (icon->priv->server)); + + icon->priv->disconnect_dialog = gtk_message_dialog_new (NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, + GTK_BUTTONS_CANCEL, "%s", primary_msg); + + gtk_window_set_skip_taskbar_hint (GTK_WINDOW + (icon->priv->disconnect_dialog), FALSE); + + gtk_dialog_add_button (GTK_DIALOG (icon->priv->disconnect_dialog), + _("Disconnect"), GTK_RESPONSE_OK); + + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG + (icon->priv->disconnect_dialog), "%s", secondary_msg); + + g_signal_connect_swapped (icon->priv->disconnect_dialog, "response", + G_CALLBACK (vino_status_tube_icon_disconnect_client), + icon); + + gtk_widget_show_all (GTK_WIDGET(icon->priv->disconnect_dialog)); + + g_free (primary_msg); + g_free (secondary_msg); +} + +static void +vino_status_tube_icon_popup_menu (GtkStatusIcon *status_icon, guint button, + guint32 timestamp) +{ + VinoStatusTubeIcon *icon = VINO_STATUS_TUBE_ICON (status_icon); + GtkWidget *item; + char *str; + + icon->priv->menu = (GtkMenu*) gtk_menu_new (); + + item = gtk_image_menu_item_new_with_mnemonic (_("_Preferences")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_tube_icon_preferences), icon); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + item = gtk_separator_menu_item_new (); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + /* Translators: %s is the alias of the telepathy contact */ + str = g_strdup_printf (_("Disconnect %s"), + vino_tube_server_get_alias (icon->priv->server)); + + item = gtk_image_menu_item_new_with_label (str); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_NETWORK, GTK_ICON_SIZE_MENU)); + + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_tube_icon_disconnect_confirm), icon); + + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + g_free (str); + + item = gtk_separator_menu_item_new (); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + item = gtk_image_menu_item_new_with_mnemonic (_("_Help")); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), + gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); + g_signal_connect_swapped (item, "activate", + G_CALLBACK (vino_status_tube_icon_help), icon); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (icon->priv->menu), item); + + gtk_menu_popup (GTK_MENU (icon->priv->menu), NULL, NULL, + gtk_status_icon_position_menu, icon, + button, timestamp); + if (button == 0) + gtk_menu_shell_select_first (GTK_MENU_SHELL (icon->priv->menu), FALSE); +} + +static void +vino_status_tube_icon_activate (GtkStatusIcon *icon) +{ + vino_status_tube_icon_preferences (VINO_STATUS_TUBE_ICON (icon)); +} + +static void +vino_status_tube_icon_class_init (VinoStatusTubeIconClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkStatusIconClass *status_icon_class = GTK_STATUS_ICON_CLASS (klass); + + gobject_class->finalize = vino_status_tube_icon_finalize; + gobject_class->set_property = vino_status_tube_icon_set_property; + gobject_class->get_property = vino_status_tube_icon_get_property; + + status_icon_class->activate = vino_status_tube_icon_activate; + status_icon_class->popup_menu = vino_status_tube_icon_popup_menu; + + g_object_class_install_property (gobject_class, + PROP_SERVER, + g_param_spec_object ("server", + "Server", + "The server", + VINO_TYPE_SERVER, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + g_object_class_install_property (gobject_class, + PROP_VISIBILITY, + g_param_spec_enum ("visibility", + "Icon visibility", + "When the icon must be shown", + VINO_TYPE_STATUS_TUBE_ICON_VISIBILITY, + VINO_STATUS_TUBE_ICON_VISIBILITY_CLIENT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB)); + + g_type_class_add_private (gobject_class, sizeof (VinoStatusTubeIconPrivate)); +} + +void +vino_status_tube_icon_set_visibility (VinoStatusTubeIcon *icon, + VinoStatusTubeIconVisibility visibility) +{ + g_return_if_fail (VINO_IS_STATUS_TUBE_ICON (icon)); + g_return_if_fail (visibility != VINO_STATUS_TUBE_ICON_VISIBILITY_INVALID); + + if (visibility != icon->priv->visibility) + { + icon->priv->visibility = visibility; + vino_status_tube_icon_update_state (icon); + } +} + +static void +vino_status_tube_icon_show_invalidated_notif_closed + (VinoStatusTubeIcon *icon) +{ + dprintf (TUBE, "Notification was closed"); + vino_tube_server_fire_closed (icon->priv->server); +} + +void +vino_status_tube_icon_show_notif (VinoStatusTubeIcon *icon, + const gchar *summary, const gchar *body, gboolean invalidated) +{ +#define NOTIFICATION_TIMEOUT 5 + + GError *error; + gchar *filename; + + if (!notify_is_initted () && !notify_init (g_get_application_name ())) + { + g_printerr (_("Error initializing libnotify\n")); + return; + } + + if (icon->priv->new_client_notification != NULL) + { + notify_notification_close (icon->priv->new_client_notification, NULL); + g_object_unref (icon->priv->new_client_notification); + icon->priv->new_client_notification = NULL; + } + + filename = vino_tube_server_dup_avatar_filename (icon->priv->server); + + if (filename == NULL) + filename = g_strdup ("stock_person"); + + icon->priv->new_client_notification = + notify_notification_new (summary, body, filename); + + g_free (filename); + + notify_notification_set_hint_string (icon->priv->new_client_notification, + "desktop-entry", "vino-server"); + notify_notification_set_timeout (icon->priv->new_client_notification, + NOTIFICATION_TIMEOUT * 1000); + + if (invalidated) + g_signal_connect_swapped (icon->priv->new_client_notification, "closed", + G_CALLBACK (vino_status_tube_icon_show_invalidated_notif_closed), + icon); + + error = NULL; + if (!notify_notification_show (icon->priv->new_client_notification, &error)) + { + g_printerr (_("Error while displaying notification bubble: %s\n"), + error->message); + g_error_free (error); + } + +#undef NOTIFICATION_TIMEOUT +} + diff --git a/server/vino-status-tube-icon.h b/server/vino-status-tube-icon.h new file mode 100644 index 0000000..2c2f59c --- /dev/null +++ b/server/vino-status-tube-icon.h @@ -0,0 +1,81 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#ifndef __VINO_STATUS_TUBE_ICON_H__ +#define __VINO_STATUS_TUBE_ICON_H__ + +#include <gdk/gdk.h> + +#include "vino-tube-server.h" + +G_BEGIN_DECLS + +typedef enum +{ + VINO_STATUS_TUBE_ICON_VISIBILITY_INVALID = 0, + VINO_STATUS_TUBE_ICON_VISIBILITY_ALWAYS, + VINO_STATUS_TUBE_ICON_VISIBILITY_CLIENT, + VINO_STATUS_TUBE_ICON_VISIBILITY_NEVER +} VinoStatusTubeIconVisibility; + +#define VINO_TYPE_STATUS_TUBE_ICON (vino_status_tube_icon_get_type ()) +#define VINO_STATUS_TUBE_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + VINO_TYPE_STATUS_TUBE_ICON, VinoStatusTubeIcon)) +#define VINO_STATUS_TUBE_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \ + VINO_TYPE_STATUS_TUBE_ICON, VinoStatusTubeIconClass)) +#define VINO_IS_STATUS_TUBE_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + VINO_TYPE_STATUS_TUBE_ICON)) +#define VINO_IS_STATUS_TUBE_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + VINO_TYPE_STATUS_TUBE_ICON)) +#define VINO_STATUS_TUBE_ICON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \ + VINO_TYPE_STATUS_TUBE_ICON, VinoStatusTubeIconClass)) + +typedef struct _VinoStatusTubeIcon VinoStatusTubeIcon; +typedef struct _VinoStatusTubeIconClass VinoStatusTubeIconClass; +typedef struct _VinoStatusTubeIconPrivate VinoStatusTubeIconPrivate; + +struct _VinoStatusTubeIcon +{ + GtkStatusIcon base; + VinoStatusTubeIconPrivate *priv; +}; + +struct _VinoStatusTubeIconClass +{ + GtkStatusIconClass base_class; +}; + +GType vino_status_tube_icon_get_type (void) G_GNUC_CONST; + +VinoStatusTubeIcon* vino_status_tube_icon_new (VinoTubeServer *server, + GdkScreen *screen); + +void vino_status_tube_icon_update_state (VinoStatusTubeIcon *icon); + +void vino_status_tube_icon_set_visibility (VinoStatusTubeIcon *icon, + VinoStatusTubeIconVisibility visibility); + +void vino_status_tube_icon_show_notif (VinoStatusTubeIcon *icon, + const gchar *summary, const gchar *body, gboolean invalidated); +G_END_DECLS + +#endif /* __VINO_STATUS_TUBE_ICON_H__ */ diff --git a/server/vino-tube-server.c b/server/vino-tube-server.c new file mode 100644 index 0000000..0bc3806 --- /dev/null +++ b/server/vino-tube-server.c @@ -0,0 +1,364 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#include <config.h> +#include <glib/gi18n.h> + +#include <telepathy-glib/gtypes.h> +#include <telepathy-glib/channel.h> +#include <telepathy-glib/connection.h> +#include <telepathy-glib/dbus.h> +#include <telepathy-glib/util.h> +#include <telepathy-glib/contact.h> + + +#include "vino-tube-server.h" +#include "vino-dbus-error.h" +#include "vino-util.h" + +G_DEFINE_TYPE (VinoTubeServer, vino_tube_server, VINO_TYPE_SERVER); + +#define VINO_TUBE_SERVER_GET_PRIVATE(obj)\ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), VINO_TYPE_TUBE_SERVER,\ + VinoTubeServerPrivate)) + +struct _VinoTubeServerPrivate +{ + TpChannel *tube; + gulong signal_invalidated_id; + VinoStatusTubeIcon *icon_tube; + TpTubeChannelState state; +}; + +enum +{ + DISCONNECTED, + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_CONNECTION, + PROP_TUBE +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +static void +vino_tube_server_dispose (GObject *object) +{ + VinoTubeServer *server = VINO_TUBE_SERVER (object); + + g_signal_handler_disconnect (G_OBJECT (server->priv->tube), + server->priv->signal_invalidated_id); + + if (server->priv->tube != NULL) + { + g_object_unref (server->priv->tube); + server->priv->tube = NULL; + } + + if (server->priv->icon_tube != NULL) + { + g_object_unref (server->priv->icon_tube); + server->priv->icon_tube = NULL; + } + + if (G_OBJECT_CLASS (vino_tube_server_parent_class)->dispose) + G_OBJECT_CLASS (vino_tube_server_parent_class)->dispose (object); +} + +static void +vino_tube_server_finalize (GObject *object) +{ + dprintf (TUBE, "Destruction of a VinoTubeServer\n"); + + if (G_OBJECT_CLASS (vino_tube_server_parent_class)->finalize) + G_OBJECT_CLASS (vino_tube_server_parent_class)->finalize (object); +} + +static void +vino_tube_server_set_tube (VinoTubeServer *server, + TpChannel *tube) +{ + g_return_if_fail (VINO_IS_TUBE_SERVER (server)); + + server->priv->tube = g_object_ref (tube); +} + +static void +vino_tube_server_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + VinoTubeServer *server = VINO_TUBE_SERVER (object); + + switch (prop_id) + { + case PROP_TUBE: + vino_tube_server_set_tube (server, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_tube_server_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + VinoTubeServer *server = VINO_TUBE_SERVER (object); + + switch (prop_id) + { + case PROP_TUBE: + g_value_set_object (value, server->priv->tube); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +vino_tube_server_init (VinoTubeServer *self) +{ + self->priv = VINO_TUBE_SERVER_GET_PRIVATE (self); + self->priv->tube = NULL; + self->priv->icon_tube = NULL; + self->priv->state = TP_TUBE_CHANNEL_STATE_NOT_OFFERED; +} + +static void +vino_tube_server_class_init (VinoTubeServerClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->dispose = vino_tube_server_dispose; + gobject_class->finalize = vino_tube_server_finalize; + gobject_class->set_property = vino_tube_server_set_property; + gobject_class->get_property = vino_tube_server_get_property; + + signals[DISCONNECTED] = + g_signal_new ("disconnected", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (VinoTubeServerClass, disconnected), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + g_object_class_install_property (gobject_class, + PROP_TUBE, + g_param_spec_object ("tube", + "TpChannel", + "Channel of the stream tube", + TP_TYPE_CHANNEL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + G_PARAM_STATIC_STRINGS)); + + g_type_class_add_private (klass, sizeof (VinoTubeServerPrivate)); +} + +void +vino_tube_server_fire_closed (VinoTubeServer *server) +{ + VinoTubeServer *self = VINO_TUBE_SERVER (server); + + dprintf (TUBE, "Tube is closed\n"); + g_signal_emit (G_OBJECT (self), signals[DISCONNECTED], 0); +} + +void +vino_tube_server_close_tube (VinoTubeServer *server) +{ + VinoTubeServer *self = VINO_TUBE_SERVER (server); + + tp_cli_channel_call_close (self->priv->tube, -1, + NULL, NULL, NULL, NULL); + + vino_tube_server_fire_closed (self); +} + +static void +vino_tube_server_invalidated_cb (TpProxy *proxy, + guint domain, + gint code, + gchar *message, + gpointer server) +{ + VinoTubeServer *self = VINO_TUBE_SERVER (server); + const gchar *summary; + gchar *body; + + summary = _("Share my desktop information"); + + if (self->priv->state == TP_TUBE_CHANNEL_STATE_REMOTE_PENDING) + /* Translators: '%s' is the name of a contact, buddy coming from Empathy */ + body = g_strdup_printf (_("'%s' rejected the desktop sharing invitation."), + vino_tube_server_get_alias (self)); + else + /* Translators: '%s' is the name of a contact, buddy coming from Empathy */ + body = g_strdup_printf (_("'%s' disconnected"), + vino_tube_server_get_alias (self)); + + vino_status_tube_icon_show_notif (self->priv->icon_tube, summary, + (const gchar *)body, TRUE); + + g_free (body); + + self->priv->state = TP_TUBE_CHANNEL_STATE_NOT_OFFERED; +} + +static void +vino_tube_server_state_changed (TpChannel *channel, + guint state, + gpointer object, + GObject *weak_object) +{ + VinoTubeServer *server = VINO_TUBE_SERVER (object); + const gchar *summary; + gchar *body; + + summary = _("Share my desktop information"); + + switch (state) + { + case TP_TUBE_CHANNEL_STATE_OPEN: + /* Translators: '%s' is the name of a contact, buddy coming from Empathy */ + body = g_strdup_printf (_("'%s' is remotely controlling your desktop."), + vino_tube_server_get_alias (server)); + vino_status_tube_icon_show_notif (server->priv->icon_tube, summary, + (const gchar*) body, FALSE); + g_free (body); + server->priv->state = TP_TUBE_STATE_OPEN; + break; + case TP_TUBE_CHANNEL_STATE_REMOTE_PENDING: + /* Translators: '%s' is the name of a contact, buddy coming from Empathy */ + body = g_strdup_printf (_("Waiting for '%s' to connect to the screen."), + vino_tube_server_get_alias (server)); + vino_status_tube_icon_show_notif (server->priv->icon_tube, summary, + (const gchar*) body, FALSE); + g_free (body); + server->priv->state = TP_TUBE_STATE_REMOTE_PENDING; + break; + } +} + +static void +vino_tube_server_offer_cb (TpChannel *proxy, + const GError *error, + gpointer user_data, + GObject *weak_object) +{ + if (error != NULL) + { + dprintf (TUBE, "Impossible to offer the stream tube: %s\n", error->message); + return; + } +} + +gboolean +vino_tube_server_share_with_tube (VinoTubeServer *server, + GError **error) +{ + GHashTable *parameters; + GValue address = {0,}; + gint port; + GdkScreen *screen; + + parameters = g_hash_table_new (g_str_hash, g_str_equal); + + screen = gdk_screen_get_default (); + server->priv->icon_tube = vino_status_tube_icon_new (server, + screen); + + vino_status_tube_icon_set_visibility (server->priv->icon_tube, + VINO_STATUS_TUBE_ICON_VISIBILITY_ALWAYS); + + tp_cli_channel_interface_tube_connect_to_tube_channel_state_changed + (server->priv->tube, vino_tube_server_state_changed, server, + NULL, NULL, error); + + if (error != NULL) + { + dprintf (TUBE, "Failed to connect state channel\n"); + return FALSE; + } + + port = vino_server_get_port (VINO_SERVER (server)); + + dprintf (TUBE, "Creation of a VinoTubeServer, port : %d\n", port); + + server->priv->signal_invalidated_id = g_signal_connect ( + server->priv->tube, "invalidated", + G_CALLBACK (vino_tube_server_invalidated_cb), server); + + g_value_init (&address, TP_STRUCT_TYPE_SOCKET_ADDRESS_IPV4); + g_value_take_boxed (&address, dbus_g_type_specialized_construct + (TP_STRUCT_TYPE_SOCKET_ADDRESS_IPV4)); + dbus_g_type_struct_set (&address, 0, "127.0.0.1", 1, port, G_MAXUINT); + + tp_cli_channel_type_stream_tube_call_offer (server->priv->tube, + -1, TP_SOCKET_ADDRESS_TYPE_IPV4, &address, + TP_SOCKET_ACCESS_CONTROL_LOCALHOST, parameters, + vino_tube_server_offer_cb, server, NULL, NULL); + + g_value_unset (&address); + g_hash_table_destroy (parameters); + + return TRUE; +} + +const gchar* +vino_tube_server_get_alias (VinoTubeServer *self) +{ + TpContact *contact; + + contact = tp_channel_get_target_contact (self->priv->tube); + g_return_val_if_fail (contact != NULL, NULL); + + return tp_contact_get_alias (contact); +} + +gchar* +vino_tube_server_dup_avatar_filename (VinoTubeServer *self) +{ + TpContact *contact; + GFile *file; + + contact = tp_channel_get_target_contact (self->priv->tube); + g_return_val_if_fail (contact != NULL, NULL); + + file = tp_contact_get_avatar_file (contact); + if (file == NULL) + return NULL; + + return g_file_get_path (file); +} diff --git a/server/vino-tube-server.h b/server/vino-tube-server.h new file mode 100644 index 0000000..d8d949b --- /dev/null +++ b/server/vino-tube-server.h @@ -0,0 +1,73 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#ifndef __VINO_TUBE_SERVER_H__ +#define __VINO_TUBE_SERVER_H__ + +#include <glib-object.h> + +#include "vino-types.h" +#include "vino-server.h" +#include "vino-status-tube-icon.h" + +G_BEGIN_DECLS + +#define VINO_TYPE_TUBE_SERVER (vino_tube_server_get_type ()) +#define VINO_TUBE_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + VINO_TYPE_TUBE_SERVER, VinoTubeServer)) +#define VINO_TUBE_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \ + VINO_TYPE_TUBE_SERVER, VinoTubeServerClass)) +#define VINO_IS_TUBE_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + VINO_TYPE_TUBE_SERVER)) +#define VINO_IS_TUBE_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + VINO_TYPE_TUBE_SERVER)) +#define VINO_TUBE_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \ + VINO_TYPE_TUBE_SERVER, VinoTubeServerClass)) + +typedef struct _VinoTubeServerClass VinoTubeServerClass; +typedef struct _VinoTubeServerPrivate VinoTubeServerPrivate; + +struct _VinoTubeServer +{ + VinoServer base; + + VinoTubeServerPrivate *priv; +}; + +struct _VinoTubeServerClass +{ + VinoServerClass base_class; + + void (* disconnected) (VinoTubeServer *server); +}; + +GType vino_tube_server_get_type (void) G_GNUC_CONST; +gboolean vino_tube_server_share_with_tube (VinoTubeServer *server, + GError **error); +const gchar* vino_tube_server_get_alias (VinoTubeServer *self); +gchar* vino_tube_server_dup_avatar_filename (VinoTubeServer *self); +void vino_tube_server_close_tube (VinoTubeServer *server); +void vino_tube_server_fire_closed (VinoTubeServer *server); + +G_END_DECLS + +#endif /* __VINO_TUBE_SERVER_H__ */ \ No newline at end of file diff --git a/server/vino-tube-servers-manager.c b/server/vino-tube-servers-manager.c new file mode 100644 index 0000000..28ae703 --- /dev/null +++ b/server/vino-tube-servers-manager.c @@ -0,0 +1,249 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#include <glib-object.h> +#include <gdk/gdk.h> +#include <dbus/dbus-glib.h> + +#include <telepathy-glib/telepathy-glib.h> + +#include "vino-tube-servers-manager.h" +#include "vino-server.h" +#include "vino-tube-server.h" +#include "vino-dbus-error.h" +#include "vino-status-tube-icon.h" +#include "vino-util.h" + +G_DEFINE_TYPE (VinoTubeServersManager, vino_tube_servers_manager, + G_TYPE_OBJECT); + +#define VINO_TUBE_SERVERS_MANAGER_GET_PRIVATE(obj)\ + (G_TYPE_INSTANCE_GET_PRIVATE ((obj), VINO_TYPE_TUBE_SERVERS_MANAGER,\ + VinoTubeServersManagerPrivate)) + +enum +{ + SIG_TUBE_DISCONNECTED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL]; + +static void handle_channels_cb (TpSimpleHandler *handler, + TpAccount *account, + TpConnection *connection, + GList *channels, + GList *requests_satisfied, + gint64 user_action_time, + TpHandleChannelsContext *context, + gpointer user_data); + +struct _VinoTubeServersManagerPrivate +{ + GSList *vino_tube_servers; + guint alternative_port; + + TpBaseClient *handler; +}; + +static void +vino_tube_servers_manager_dispose (GObject *object) +{ + VinoTubeServersManager *self = VINO_TUBE_SERVERS_MANAGER (object); + GSList *l; + + for (l = self->priv->vino_tube_servers; l; l = l->next) + g_object_unref (l->data); + + g_slist_free (self->priv->vino_tube_servers); + self->priv->vino_tube_servers = NULL; + + dprintf (TUBE, "Destruction of the VinoTubeServersManager\n"); + + if (G_OBJECT_CLASS (vino_tube_servers_manager_parent_class)->dispose) + G_OBJECT_CLASS (vino_tube_servers_manager_parent_class)->dispose (object); +} + +static void +vino_tube_servers_manager_class_init (VinoTubeServersManagerClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + dprintf (TUBE, "Creation of the VinoTubeServersManager\n"); + + gobject_class->dispose = vino_tube_servers_manager_dispose; + + signals[SIG_TUBE_DISCONNECTED] = g_signal_new ("tube-disconnected", + G_OBJECT_CLASS_TYPE (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, + 1, VINO_TYPE_TUBE_SERVER); + + g_type_class_add_private (klass, sizeof (VinoTubeServersManagerPrivate)); +} + +static void +vino_tube_servers_manager_init (VinoTubeServersManager *self) +{ + TpDBusDaemon *dbus; + GError *error = NULL; + TpSimpleClientFactory *factory; + + self->priv = VINO_TUBE_SERVERS_MANAGER_GET_PRIVATE (self); + self->priv->vino_tube_servers = NULL; + self->priv->alternative_port = 26570; + + dbus = tp_dbus_daemon_dup (NULL); + factory = TP_SIMPLE_CLIENT_FACTORY (tp_automatic_client_factory_new (dbus)); + g_object_unref (dbus); + + tp_simple_client_factory_add_contact_features_varargs (factory, + TP_CONTACT_FEATURE_ALIAS, + TP_CONTACT_FEATURE_AVATAR_DATA, + TP_CONTACT_FEATURE_INVALID); + + tp_simple_client_factory_add_channel_features_varargs (factory, + TP_CHANNEL_FEATURE_CONTACTS, + 0); + + self->priv->handler = tp_simple_handler_new_with_factory (factory, FALSE, + FALSE, "Vino", FALSE, handle_channels_cb, self, NULL); + + g_object_unref (factory); + + tp_base_client_take_handler_filter (self->priv->handler, tp_asv_new ( + TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, + TP_IFACE_CHANNEL_TYPE_STREAM_TUBE, + TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, + TP_HANDLE_TYPE_CONTACT, + TP_PROP_CHANNEL_REQUESTED, G_TYPE_BOOLEAN, + TRUE, + TP_PROP_CHANNEL_TYPE_STREAM_TUBE_SERVICE, G_TYPE_STRING, + "rfb", + NULL)); + + if (!tp_base_client_register (self->priv->handler, &error)) + { + dprintf (TUBE, "Failed to register Handler: %s\n", error->message); + g_error_free (error); + } +} + +static void +vino_tube_servers_manager_disconnected_cb (VinoTubeServer *server, + gpointer object) +{ + VinoTubeServersManager *self = VINO_TUBE_SERVERS_MANAGER (object); + self->priv->vino_tube_servers = g_slist_remove + (self->priv->vino_tube_servers, server); + + g_signal_emit (self, signals[SIG_TUBE_DISCONNECTED], 0, server); + g_object_unref (server); +} + +VinoTubeServersManager * +vino_tube_servers_manager_new (void) +{ + return g_object_new (VINO_TYPE_TUBE_SERVERS_MANAGER, NULL); +} + +static void +handle_channels_cb (TpSimpleHandler *handler, + TpAccount *account, + TpConnection *connection, + GList *channels, + GList *requests_satisfied, + gint64 user_action_time, + TpHandleChannelsContext *context, + gpointer user_data) +{ + VinoTubeServersManager *self = user_data; + VinoTubeServer *server; + GdkDisplay *display; + GdkScreen *screen; + /* the server is listenning only on lo as only the tube is supposed to + connect to it */ + gchar * network_interface = "lo"; + GList *l; + TpStreamTubeChannel *channel = NULL; + + for (l = channels; l != NULL; l = g_list_next (l)) + { + TpStreamTubeChannel *chan = l->data; + + if (!TP_IS_STREAM_TUBE_CHANNEL (chan)) + continue; + + if (tp_proxy_get_invalidated (chan) != NULL) + continue; + + if (tp_strdiff (tp_stream_tube_channel_get_service (chan), "rfb")) + continue; + + channel = chan; + break; + } + + if (channel == NULL) + { + /* No stream tube channel ?! */ + GError error = { TP_ERRORS, TP_ERROR_INVALID_ARGUMENT, + "No stream tube channel" }; + + tp_handle_channels_context_fail (context, &error); + return; + } + + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (display); + + server = g_object_new (VINO_TYPE_TUBE_SERVER, + "display-status-icon", 0, + "prompt-enabled", 0, + "view-only", 0, + "network-interface", network_interface, + "use-alternative-port", 1, + "alternative-port", self->priv->alternative_port, + "auth-methods", 1, + "require-encryption", 0, + "vnc-password", NULL, + "on-hold", 0, + "screen", screen, + "lock-screen", 0, + "disable-background", 0, + "use-upnp", 0, + "tube", channel, + NULL); + + self->priv->vino_tube_servers = g_slist_prepend + (self->priv->vino_tube_servers, server); + + g_signal_connect (G_OBJECT (server), "disconnected", G_CALLBACK + (vino_tube_servers_manager_disconnected_cb), self); + + self->priv->alternative_port++; + + vino_tube_server_share_with_tube (server, NULL); + + tp_handle_channels_context_accept (context); +} diff --git a/server/vino-tube-servers-manager.h b/server/vino-tube-servers-manager.h new file mode 100644 index 0000000..5939e07 --- /dev/null +++ b/server/vino-tube-servers-manager.h @@ -0,0 +1,62 @@ +/* + * © 2009, Collabora Ltd + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Arnaud Maillet <arnaud.maillet@collabora.co.uk> + */ + +#ifndef __VINAGRE_TUBE_SERVERS_MANAGER_H__ +#define __VINAGRE_TUBE_SERVERS_MANAGER_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS + +#define VINO_TYPE_TUBE_SERVERS_MANAGER (vino_tube_servers_manager_get_type()) +#define VINO_TUBE_SERVERS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),\ + VINO_TYPE_TUBE_SERVERS_MANAGER, VinoTubeServersManager)) +#define VINO_IS_TUBE_SERVERS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj),\ + VINO_TYPE_TUBE_SERVERS_MANAGER)) +#define VINO_TUBE_SERVERS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST\ + ((klass), VINO_TYPE_TUBE_SERVERS_MANAGER, VinoTubeServersManagerClass)) +#define VINO_IS_TUBE_SERVERS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE \ + ((klass), VINO_TYPE_TUBE_SERVERS_MANAGER)) +#define VINO_TUBE_SERVERS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), VINO_TYPE_TUBE_SERVERS_MANAGER, VinoTubeServersManagerClass)) + +typedef struct _VinoTubeServersManager VinoTubeServersManager; +typedef struct _VinoTubeServersManagerClass VinoTubeServersManagerClass; +typedef struct _VinoTubeServersManagerPrivate VinoTubeServersManagerPrivate; + +struct _VinoTubeServersManager +{ + GObject parent_instance; + VinoTubeServersManagerPrivate *priv; +}; + +struct _VinoTubeServersManagerClass +{ + GObjectClass parent_class; +}; + +GType vino_tube_servers_manager_get_type (void) G_GNUC_CONST; +VinoTubeServersManager* vino_tube_servers_manager_new (void); + +G_END_DECLS + +#endif diff --git a/server/vino-types.h b/server/vino-types.h new file mode 100644 index 0000000..acbb2cb --- /dev/null +++ b/server/vino-types.h @@ -0,0 +1,13 @@ +#ifndef __VINO_TYPES_H__ +#define __VINO_TYPES_H__ + +#include "config.h" + +G_BEGIN_DECLS + +typedef struct _VinoServer VinoServer; +typedef struct _VinoTubeServer VinoTubeServer; + +G_END_DECLS + +#endif \ No newline at end of file diff --git a/server/vino-upnp.c b/server/vino-upnp.c new file mode 100644 index 0000000..9dd3f00 --- /dev/null +++ b/server/vino-upnp.c @@ -0,0 +1,337 @@ +/* + * Copyright (C) 2008,2009 Jonh Wendell + * Copyright © 2010 Codethink Limited + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Jonh Wendell <wendell@bani.com.br> + * Ryan Lortie <desrt@desrt.ca> + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string.h> +#include "miniupnp/miniupnpc.h" +#include "miniupnp/upnpcommands.h" + +#include "vino-upnp.h" +#include "vino-util.h" + +struct _VinoUpnpPrivate +{ + struct UPNPUrls *urls; + struct IGDdatas *data; + char lanaddr[16]; + gboolean have_igd; + int port; + int internal_port; + GNetworkMonitor *netmon; +}; + +G_DEFINE_TYPE (VinoUpnp, vino_upnp, G_TYPE_OBJECT); + +static void network_changed (GNetworkMonitor *monitor, + gboolean available, + gpointer user_data); + +static void +clean_upnp_data (VinoUpnp *upnp) +{ + if (upnp->priv->urls) + { + FreeUPNPUrls (upnp->priv->urls); + g_free (upnp->priv->urls); + upnp->priv->urls = NULL; + } + + if (upnp->priv->data) + { + g_free (upnp->priv->data); + upnp->priv->data = NULL; + } +} + +static gboolean +update_upnp_status (VinoUpnp *upnp) +{ + struct UPNPDev * devlist; + int res; + + if (upnp->priv->have_igd) + return TRUE; + + clean_upnp_data (upnp); + + dprintf (UPNP, "UPnP: Doing the discovery... "); + devlist = upnpDiscover (2000, NULL, NULL, 0); + if (!devlist) + { + dprintf (UPNP, "nothing found, aborting."); + return FALSE; + } + dprintf (UPNP, "found.\n"); + dprintf (UPNP, "UPnP: Looking for a valid IGD... "); + + upnp->priv->urls = g_new0 (struct UPNPUrls, 1); + upnp->priv->data = g_new0 (struct IGDdatas, 1); + + res = UPNP_GetValidIGD (devlist, + upnp->priv->urls, + upnp->priv->data, + upnp->priv->lanaddr, + sizeof (upnp->priv->lanaddr)); + + if (res == 1 || res == 2) + { + dprintf (UPNP, "found: %s\n", upnp->priv->urls->controlURL); + upnp->priv->have_igd = TRUE; + } + else + { + dprintf (UPNP, "none found, aborting.\n"); + upnp->priv->have_igd = FALSE; + } + + freeUPNPDevlist (devlist); + return upnp->priv->have_igd; +} + +static void +vino_upnp_finalize (GObject *object) +{ + VinoUpnp *upnp = VINO_UPNP (object); + + clean_upnp_data (upnp); + + G_OBJECT_CLASS (vino_upnp_parent_class)->finalize (object); +} + +static void +vino_upnp_dispose (GObject *object) +{ + VinoUpnp *upnp = VINO_UPNP (object); + + vino_upnp_remove_port (upnp); + + g_signal_handlers_disconnect_by_func (upnp->priv->netmon, + G_CALLBACK (network_changed), + upnp); + + G_OBJECT_CLASS (vino_upnp_parent_class)->dispose (object); +} + +static void +vino_upnp_class_init (VinoUpnpClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->dispose = vino_upnp_dispose; + gobject_class->finalize = vino_upnp_finalize; + + g_type_class_add_private (gobject_class, sizeof (VinoUpnpPrivate)); +} + +static void +vino_upnp_init (VinoUpnp *upnp) +{ + upnp->priv = G_TYPE_INSTANCE_GET_PRIVATE (upnp, VINO_TYPE_UPNP, VinoUpnpPrivate); + + upnp->priv->urls = NULL; + upnp->priv->data = NULL; + upnp->priv->have_igd = FALSE; + upnp->priv->port = -1; + upnp->priv->internal_port = -1; + + upnp->priv->netmon = g_network_monitor_get_default (); + g_signal_connect (upnp->priv->netmon, "network-changed", + G_CALLBACK (network_changed), upnp); +} + +VinoUpnp * +vino_upnp_new (void) +{ + return VINO_UPNP (g_object_new (VINO_TYPE_UPNP, NULL)); +} + +gchar * +vino_upnp_get_external_ip (VinoUpnp *upnp) +{ + gchar ip[16]; + + g_return_val_if_fail (VINO_IS_UPNP (upnp), NULL); + + if (!update_upnp_status (upnp)) + return NULL; + + UPNP_GetExternalIPAddress (upnp->priv->urls->controlURL, + upnp->priv->data->servicetype, + ip); + if (ip[0]) + if (strcmp (ip, "0.0.0.0") == 0) + return NULL; + else + return g_strdup (ip); + else + return NULL; +} + +int +vino_upnp_add_port (VinoUpnp *upnp, int port) +{ + char *ext_port, *int_port, *desc; + int err, local_port; + char int_client_tmp[16], int_port_tmp[6]; + + g_return_val_if_fail (VINO_IS_UPNP (upnp), -1); + + if (!update_upnp_status (upnp)) + return -1; + + vino_upnp_remove_port (upnp); + + local_port = port; + do + { + ext_port = g_strdup_printf ("%d", local_port); + dprintf (UPNP, "UPnP: Trying to forward port %d...: ", local_port); + UPNP_GetSpecificPortMappingEntry (upnp->priv->urls->controlURL, + upnp->priv->data->servicetype, + ext_port, + "TCP", + int_client_tmp, + int_port_tmp); + if ( (strcmp (int_client_tmp, upnp->priv->lanaddr) == 0) && (strcmp (int_port_tmp, ext_port) == 0) ) + { + dprintf (UPNP, "UPnP: Found a previous redirect\n"); + break; + } + else if (int_client_tmp[0]) + { + dprintf (UPNP, "Failed, this port is already forwarded to %s:%s\n", int_client_tmp, int_port_tmp); + g_free (ext_port); + } + else + { + dprintf (UPNP, "OK, this port is free on the router\n"); + break; + } + + local_port++; + } while (local_port < INT_MAX); + + if (local_port == INT_MAX) + { + dprintf (UPNP, "UPnP: Not forwarding any port, tried so much\n"); + return -1; + } + + int_port = g_strdup_printf ("%d", port); + desc = g_strdup_printf ("VNC: %s@%s", + g_get_user_name (), + g_get_host_name ()); + + err = UPNP_AddPortMapping (upnp->priv->urls->controlURL, + upnp->priv->data->servicetype, + ext_port, + int_port, + upnp->priv->lanaddr, + desc, + "TCP"); + if (err == 0) + { + upnp->priv->port = local_port; + upnp->priv->internal_port = port; + dprintf (UPNP, "UPnP: Successfuly forwarded port %d\n", local_port); + } + else + dprintf (UPNP, "Failed to forward port %d, with status %d\n", local_port, err); + + g_free (ext_port); + g_free (int_port); + g_free (desc); + + return upnp->priv->port; +} + +void +vino_upnp_remove_port (VinoUpnp *upnp) +{ + char *port; + int err; + + g_return_if_fail (VINO_IS_UPNP (upnp)); + + if (upnp->priv->port == -1) + return; + + if (!update_upnp_status (upnp)) + return; + + port = g_strdup_printf ("%d", upnp->priv->port); + err = UPNP_DeletePortMapping (upnp->priv->urls->controlURL, + upnp->priv->data->servicetype, + port, + "TCP"); + if (err == 0) + dprintf (UPNP, "UPnP: Removed forwarded port %d\n", upnp->priv->port); + else + dprintf (UPNP, "UPnP: Failed to remove forwarded port %d with status %d\n", upnp->priv->port, err); + + g_free (port); + upnp->priv->port = -1; + upnp->priv->internal_port = -1; +} + +int +vino_upnp_get_external_port (VinoUpnp *upnp) +{ + g_return_val_if_fail (VINO_IS_UPNP (upnp), -1); + + return upnp->priv->port; +} + +static gboolean +redo_forward (gpointer data) +{ + VinoUpnp *upnp = data; + int port; + + port = upnp->priv->internal_port; + + dprintf (UPNP, "UPnP: Doing the forward again\n"); + upnp->priv->have_igd = FALSE; + vino_upnp_remove_port (upnp); + vino_upnp_add_port (upnp, port); + + return FALSE; +} + +static void +network_changed (GNetworkMonitor *network_monitor, + gboolean network_available, + gpointer user_data) +{ + VinoUpnp *upnp = user_data; + + dprintf (UPNP, "UPnP: Got the 'network changed' signal. Available = %s\n", + network_available ? "TRUE" : "FALSE"); + + if (network_available && (upnp->priv->internal_port != -1)) + g_timeout_add (2000, redo_forward, upnp); +} diff --git a/server/vino-upnp.h b/server/vino-upnp.h new file mode 100644 index 0000000..806e753 --- /dev/null +++ b/server/vino-upnp.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2008 Jonh Wendell. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Jonh Wendell <wendell@bani.com.br> + */ + +#ifndef __VINO_UPNP_H__ +#define __VINO_IPNP_H__ + +#include <glib.h> +#include <glib-object.h> + +G_BEGIN_DECLS + +#define VINO_TYPE_UPNP (vino_upnp_get_type ()) +#define VINO_UPNP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), VINO_TYPE_UPNP, VinoUpnp)) +#define VINO_UPNP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), VINO_TYPE_UPNP, VinoUpnpClass)) +#define VINO_IS_UPNP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), VINO_TYPE_UPNP)) +#define VINO_IS_UPNP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), VINO_TYPE_UPNP)) +#define VINO_UPNP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), VINO_TYPE_UPNP, VinoUpnpClass)) + +typedef struct _VinoUpnp VinoUpnp; +typedef struct _VinoUpnpClass VinoUpnpClass; +typedef struct _VinoUpnpPrivate VinoUpnpPrivate; + +struct _VinoUpnp +{ + GObject base; + VinoUpnpPrivate *priv; +}; + +struct _VinoUpnpClass +{ + GObjectClass base_class; +}; + +GType vino_upnp_get_type (void) G_GNUC_CONST; + +VinoUpnp *vino_upnp_new (void); +gchar *vino_upnp_get_external_ip (VinoUpnp *upnp); +int vino_upnp_get_external_port (VinoUpnp *upnp); +int vino_upnp_add_port (VinoUpnp *upnp, int port); +void vino_upnp_remove_port (VinoUpnp *upnp); + +G_END_DECLS + +#endif /* __VINO_UPNP_H__ */ diff --git a/server/vino-util.c b/server/vino-util.c new file mode 100644 index 0000000..aefa873 --- /dev/null +++ b/server/vino-util.c @@ -0,0 +1,239 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * Copyright (C) 2006-2010 Jonh Wendell <wendell@bani.com.br> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Jonh Wendell <wendell@bani.com.br> + * Mark McLoughlin <mark@skynet.ie> + */ + +#include "config.h" + +#include "vino-util.h" + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <netdb.h> +#include <sys/socket.h> +#include <net/if.h> +#include <arpa/inet.h> +#include <netinet/in.h> +#include <gtk/gtk.h> + +#ifdef HAVE_IFADDRS_H +#include <ifaddrs.h> +#else +#include "libvncserver/ifaddr/ifaddrs.h" +#endif + +#ifdef RFC2553 +#define ADDR_FAMILY_MEMBER ss_family +#else +#define ADDR_FAMILY_MEMBER sa_family +#endif + +#ifdef GNOME_ENABLE_DEBUG +VinoDebugFlags _vino_debug_flags = VINO_DEBUG_NONE; + +void +vino_setup_debug_flags (void) +{ + const char *env_str; + static GDebugKey debug_keys [] = + { + { "polling", VINO_DEBUG_POLLING }, + { "rfb", VINO_DEBUG_RFB }, + { "input", VINO_DEBUG_INPUT }, + { "prefs", VINO_DEBUG_PREFS }, + { "tls", VINO_DEBUG_TLS }, + { "mdns", VINO_DEBUG_MDNS }, + { "prompt", VINO_DEBUG_PROMPT }, + { "dbus", VINO_DEBUG_DBUS }, + { "upnp", VINO_DEBUG_UPNP }, + { "tube", VINO_DEBUG_TUBE } + }; + + env_str = g_getenv ("VINO_SERVER_DEBUG"); + + if (env_str) + _vino_debug_flags |= g_parse_debug_string (env_str, + debug_keys, + G_N_ELEMENTS (debug_keys)); +} +#endif /* GNOME_ENABLE_DEBUG */ + +static struct VinoStockItem +{ + char *stock_id; + char *stock_icon_id; + char *label; +} vino_stock_items [] = { + { VINO_STOCK_ALLOW, GTK_STOCK_OK, N_("_Allow") }, + { VINO_STOCK_REFUSE, GTK_STOCK_CANCEL, N_("_Refuse") }, +}; + +void +vino_init_stock_items (void) +{ + static gboolean initialized = FALSE; + GtkIconFactory *factory; + GtkStockItem *items; + int i; + + if (initialized) + return; + + factory = gtk_icon_factory_new (); + gtk_icon_factory_add_default (factory); + + items = g_new (GtkStockItem, G_N_ELEMENTS (vino_stock_items)); + + for (i = 0; i < G_N_ELEMENTS (vino_stock_items); i++) + { + GtkIconSet *icon_set; + + items [i].stock_id = g_strdup (vino_stock_items [i].stock_id); + items [i].label = g_strdup (vino_stock_items [i].label); + items [i].modifier = 0; + items [i].keyval = 0; + items [i].translation_domain = g_strdup (GETTEXT_PACKAGE); + + /* FIXME: does this take into account the theme? */ + icon_set = gtk_icon_factory_lookup_default (vino_stock_items [i].stock_icon_id); + gtk_icon_factory_add (factory, vino_stock_items [i].stock_id, icon_set); + } + + gtk_stock_add_static (items, G_N_ELEMENTS (vino_stock_items)); + + g_object_unref (factory); + + initialized = TRUE; +} + +void +vino_util_show_error (const gchar *title, const gchar *message, GtkWindow *parent) +{ + GtkWidget *d; + gchar *t; + + if (title) + t = g_strdup (title); + else + t = g_strdup (_("An error has occurred:")); + + d = gtk_message_dialog_new (parent, + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", + t); + g_free (t); + + if (message) + gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (d), + "%s", + message); + + g_signal_connect_swapped (d, + "response", + G_CALLBACK (gtk_widget_destroy), + d); + gtk_widget_show_all (GTK_WIDGET(d)); +} + +gchar * +vino_util_get_local_hostname (const gchar *server_iface) +{ + char *retval, buf[INET6_ADDRSTRLEN]; + struct ifaddrs *myaddrs, *ifa; + void *sin; + GHashTable *ipv4, *ipv6; + GHashTableIter iter; + gpointer key, value; + + retval = NULL; + ipv4 = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); + ipv6 = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); + + getifaddrs (&myaddrs); + for (ifa = myaddrs; ifa != NULL; ifa = ifa->ifa_next) + { + if (ifa->ifa_addr == NULL || ifa->ifa_name == NULL || (ifa->ifa_flags & IFF_UP) == 0) + continue; + + switch (ifa->ifa_addr->ADDR_FAMILY_MEMBER) + { + case AF_INET: + sin = &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr; + inet_ntop (AF_INET, sin, buf, INET6_ADDRSTRLEN); + g_hash_table_insert (ipv4, + ifa->ifa_name, + g_strdup (buf)); + break; + + case AF_INET6: + sin = &((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr; + inet_ntop (AF_INET6, sin, buf, INET6_ADDRSTRLEN); + g_hash_table_insert (ipv6, + ifa->ifa_name, + g_strdup (buf)); + break; + default: continue; + } + } + + if (server_iface && server_iface[0] != '\0') + { + if ((retval = g_strdup (g_hash_table_lookup (ipv4, server_iface)))) + goto the_end; + if ((retval = g_strdup (g_hash_table_lookup (ipv6, server_iface)))) + goto the_end; + } + + g_hash_table_iter_init (&iter, ipv4); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + if (strncmp (key, "lo", 2) == 0) + continue; + retval = g_strdup (value); + goto the_end; + } + + g_hash_table_iter_init (&iter, ipv6); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + if (strncmp (key, "lo", 2) == 0) + continue; + retval = g_strdup (value); + goto the_end; + } + + if ((retval = g_strdup (g_hash_table_lookup (ipv4, "lo")))) + goto the_end; + if ((retval = g_strdup (g_hash_table_lookup (ipv6, "lo")))) + goto the_end; + + the_end: + freeifaddrs (myaddrs); + g_hash_table_destroy (ipv4); + g_hash_table_destroy (ipv6); + + return retval; +} diff --git a/server/vino-util.h b/server/vino-util.h new file mode 100644 index 0000000..6750136 --- /dev/null +++ b/server/vino-util.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Authors: + * Mark McLoughlin <mark@skynet.ie> + */ + +#ifndef __VINO_UTIL_H__ +#define __VINO_UTIL_H__ + +#include <config.h> +#include <libintl.h> +#include <glib.h> +#include <glib/gi18n.h> +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define VINO_STOCK_ALLOW "vino-allow" +#define VINO_STOCK_REFUSE "vino-refuse" + +typedef enum +{ + VINO_DEBUG_NONE = 0, + VINO_DEBUG_POLLING = 1 << 0, + VINO_DEBUG_RFB = 1 << 1, + VINO_DEBUG_INPUT = 1 << 2, + VINO_DEBUG_PREFS = 1 << 3, + VINO_DEBUG_TLS = 1 << 4, + VINO_DEBUG_MDNS = 1 << 5, + VINO_DEBUG_PROMPT = 1 << 6, + VINO_DEBUG_DBUS = 1 << 7, + VINO_DEBUG_UPNP = 1 << 8, + VINO_DEBUG_TUBE = 1 << 9 +} VinoDebugFlags; + +#ifdef GNOME_ENABLE_DEBUG + +#include <stdio.h> + +extern VinoDebugFlags _vino_debug_flags; + +#ifdef G_HAVE_ISO_VARARGS +# define dprintf(type, ...) G_STMT_START { \ + if (_vino_debug_flags & VINO_DEBUG_##type) \ + fprintf (stderr, __VA_ARGS__); \ + } G_STMT_END +#elif defined(G_HAVE_GNUC_VARARGS) +# define dprintf(type, args...) G_STMT_START { \ + if (_vino_debug_flags & VINO_DEBUG_##type) \ + fprintf (stderr, args); \ + } G_STMT_END +#endif + +void vino_setup_debug_flags (void); + +#else /* if !defined (GNOME_ENABLE_DEBUG) */ + +#ifdef G_HAVE_ISO_VARARGS +# define dprintf(...) +#elif defined(G_HAVE_GNUC_VARARGS) +# define dprintf(args...) +#endif + +#endif /* GNOME_ENABLE_DEBUG */ + +void vino_init_stock_items (void); + +void vino_util_show_error (const gchar *title, + const gchar *message, + GtkWindow *parent); + +gchar *vino_util_get_local_hostname (const gchar *server_iface); + + +G_END_DECLS + +#endif /* __VINO_UTIL_H__ */ diff --git a/vino.doap b/vino.doap new file mode 100644 index 0000000..4ec8e7f --- /dev/null +++ b/vino.doap @@ -0,0 +1,33 @@ +<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:foaf="http://xmlns.com/foaf/0.1/" + xmlns:gnome="http://api.gnome.org/doap-extensions#" + xmlns="http://usefulinc.com/ns/doap#"> + + <name xml:lang="en">Vino</name> + <shortdesc xml:lang="en">GNOME Desktop Sharing Server</shortdesc> + <description>Vino is a Virtual Network Computing (VNC) server for GNOME, that + allows you to share your desktop with remote clients.</description> + <homepage rdf:resource="https://wiki.gnome.org/Projects/Vino" /> + <download-page rdf:resource="http://download.gnome.org/sources/vino/" /> + <bug-database rdf:resource="https://bugzilla.gnome.org/browse.cgi?product=vino" /> + + <category rdf:resource="http://api.gnome.org/doap-extensions#core" /> + <programming-language>C</programming-language> + + <maintainer> + <foaf:Person> + <foaf:name>David King</foaf:name> + <foaf:mbox rdf:resource="mailto:amigadave@amigadave.com" /> + <foaf:seeAlso rdf:resource="http://amigadave.com/foaf.rdf#david" /> + <gnome:userid>davidk</gnome:userid> + </foaf:Person> + </maintainer> + <maintainer> + <foaf:Person> + <foaf:name>Mark McLoughlin</foaf:name> + <foaf:mbox rdf:resource="mailto:mark@skynet.ie" /> + <gnome:userid>markmc</gnome:userid> + </foaf:Person> + </maintainer> +</Project>