From 212b4b8677fc86c6912460b20eb043afba4ecfef Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Tue, 26 Nov 2013 23:58:53 +0100 Subject: [PATCH] Imported Upstream version 1.4.16_pre1 --- COPYING | 848 ++-- INSTALL | 5 +- Makefile.am | 11 +- Makefile.in | 78 +- NEWS | 26 + THANKS | 8 + aclocal.m4 | 6690 +++++++++++++++++++++++++++- build-aux/config.guess | 60 +- build-aux/config.sub | 66 +- build-aux/depcomp | 33 +- build-aux/install-sh | 222 +- config.h.in | 3 + configure | 231 +- configure.in | 5 +- contrib/check_linux_raid.pl | 12 +- gl/Makefile.in | 19 +- lib/Makefile.in | 19 +- lib/tests/Makefile.in | 19 +- lib/utils_disk.c | 13 + lib/utils_disk.h | 4 + m4/np_mysqlclient.m4 | 6 + nagios-plugins.spec | 140 +- nagios-plugins.spec.in | 199 + perlmods/Makefile | 196 +- perlmods/Makefile.in | 4 +- perlmods/Nagios-Plugin-0.34.tar.gz | Bin 44846 -> 0 bytes perlmods/Nagios-Plugin-0.36.tar.gz | Bin 0 -> 45008 bytes pkg/solaris/pkginfo | 8 +- pkg/solaris/pkginfo.in | 2 +- pkg/solaris/preinstall | 35 + pkg/solaris/solpkg | 15 +- plugins-root/Makefile.in | 19 +- plugins-root/check_icmp.c | 2 +- plugins-scripts/Makefile.in | 4 +- plugins-scripts/check_disk_smb.pl | 4 +- plugins-scripts/check_sensors.sh | 31 +- plugins-scripts/t/check_disk_smb.t | 96 + plugins-scripts/utils.sh.in | 85 + plugins/Makefile.am | 2 +- plugins/Makefile.in | 25 +- plugins/check_by_ssh.c | 11 +- plugins/check_disk.c | 175 +- plugins/check_http.c | 77 +- plugins/check_ldap.c | 10 +- plugins/check_nt.c | 7 +- plugins/check_ping.c | 36 +- plugins/check_procs.c | 11 +- plugins/check_radius.c | 2 +- plugins/check_smtp.c | 37 +- plugins/check_snmp.c | 32 +- plugins/check_ssh.c | 11 +- plugins/check_tcp.c | 5 +- plugins/check_users.c | 68 +- plugins/common.h | 6 + plugins/sslutils.c | 177 +- plugins/t/check_by_ssh.t | 13 +- plugins/t/check_http.t | 2 +- plugins/t/check_snmp.t | 9 +- plugins/tests/check_http.t | 41 +- plugins/tests/check_procs.t | 6 +- plugins/tests/check_snmp.t | 31 +- plugins/tests/check_snmp_agent.pl | 7 +- po/de.gmo | Bin 8167 -> 7823 bytes po/de.po | 1166 ++--- po/fr.gmo | Bin 98491 -> 97588 bytes po/fr.po | 1140 ++--- po/nagios-plugins.pot | 1155 ++--- release | 2 +- tap/Makefile.in | 19 +- 69 files changed, 10803 insertions(+), 2698 deletions(-) create mode 100644 nagios-plugins.spec.in delete mode 100644 perlmods/Nagios-Plugin-0.34.tar.gz create mode 100644 perlmods/Nagios-Plugin-0.36.tar.gz create mode 100755 pkg/solaris/preinstall create mode 100644 plugins-scripts/t/check_disk_smb.t diff --git a/COPYING b/COPYING index d60c31a..94a9ed0 100644 --- a/COPYING +++ b/COPYING @@ -1,285 +1,626 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + 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 + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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. +them 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. + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. 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. +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. - 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. + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. - 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. + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. 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". + TERMS AND CONDITIONS -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. + 0. Definitions. - 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. + "This License" refers to version 3 of the GNU General Public License. -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. + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. - 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: + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. - 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. + A "covered work" means either the unmodified Program or a work based +on the Program. - 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. + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. -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. + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. -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. + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. - 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: + 1. Source Code. - 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, + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. - 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, + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. - 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 "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. -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. + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. -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. + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. - 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. + The Corresponding Source for a work in source code form is that +same work. - 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 + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey 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; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of 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 + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If 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. +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying 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. + 13. Use with the GNU Affero General Public License. -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. + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. -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. + 14. Revised Versions 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 + The Free Software Foundation may publish revised and/or new versions of +the GNU 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. + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public 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. + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. - NO WARRANTY + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. - 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. + 15. Disclaimer of Warranty. - 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. + 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. - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +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. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + 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 @@ -287,15 +628,15 @@ 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 +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) - This program is free software; you can redistribute it and/or modify + 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 + 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, @@ -304,37 +645,30 @@ the "copyright" line and a pointer to where the full notice is found. 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 - + along with this program. If not, see . 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: + If the program does terminal interaction, 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'. + Copyright (C) + This program 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. +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". -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: + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 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. + The GNU 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 Lesser General +Public License instead of this License. But first, please read +. diff --git a/INSTALL b/INSTALL index 5458714..d3c5b40 100644 --- a/INSTALL +++ b/INSTALL @@ -2,7 +2,7 @@ Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006 Free Software Foundation, Inc. +2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -67,6 +67,9 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. + 6. Often, you can also type `make uninstall' to remove the installed + files again. + Compilers and Options ===================== diff --git a/Makefile.am b/Makefile.am index b6e5f2e..cbca5d7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,7 +16,7 @@ localedir = $(datadir)/locale DEFS = -DLOCALEDIR=\"$(localedir)\" dist-hook: - make THANKS nagios-plugins.spec pkg/fedora/nagios-plugins.spec + $(MAKE) THANKS echo ${VERSION} >$(distdir)/release install-root: @@ -28,13 +28,6 @@ test test-debug: cd plugins && $(MAKE) $@ cd plugins-scripts && $(MAKE) $@ -nagios-plugins.spec: nagios-plugins.spec.in - sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;s/^%%{requires}$$//" $? > $@ - -pkg/fedora/nagios-plugins.spec: nagios-plugins.spec.in - $(top_srcdir)/mkinstalldirs pkg/fedora - sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;/^# Requires$$/r $(top_srcdir)/pkg/fedora/requires" $? > $@ - # Solaris pkgmk BUILDDIR = build-solaris PACKDIR = build-pkg @@ -45,7 +38,9 @@ solpkg: if [ ! -d $(PACKDIR) ] ; then mkdir $(PACKDIR); fi $(MAKE) all $(MAKE) DESTDIR=$$PWD/$(BUILDDIR) install + $(INSTALL) plugins-root/pst3 $(BUILDDIR)$(libexecdir) $(INSTALL) pkg/solaris/pkginfo $(BUILDDIR) + $(INSTALL) pkg/solaris/preinstall $(BUILDDIR) cd $(BUILDDIR) && $(PERL) ../$(PKGSCRIPT) ../$(PACKDIR) THANKS: THANKS.in diff --git a/Makefile.in b/Makefile.in index 2dd7ee8..a107cae 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -34,13 +34,14 @@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/command.cfg.in \ - $(srcdir)/config.h.in $(srcdir)/test.pl.in \ - $(top_srcdir)/configure $(top_srcdir)/pkg/solaris/pkginfo.in \ - ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS THANKS \ - build-aux/compile build-aux/config.guess \ - build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ - build-aux/install-sh build-aux/ltmain.sh build-aux/missing \ - build-aux/mkinstalldirs config.rpath mkinstalldirs + $(srcdir)/config.h.in $(srcdir)/nagios-plugins.spec.in \ + $(srcdir)/test.pl.in $(top_srcdir)/configure \ + $(top_srcdir)/pkg/solaris/pkginfo.in ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS THANKS build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/depcomp build-aux/install-sh \ + build-aux/ltmain.sh build-aux/missing build-aux/mkinstalldirs \ + config.rpath mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/np_mysqlclient.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ @@ -138,7 +139,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = command.cfg test.pl pkg/solaris/pkginfo +CONFIG_CLEAN_FILES = nagios-plugins.spec command.cfg test.pl \ + pkg/solaris/pkginfo SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ @@ -1057,6 +1059,8 @@ $(srcdir)/config.h.in: $(am__configure_deps) distclean-hdr: -rm -f config.h stamp-h1 +nagios-plugins.spec: $(top_builddir)/config.status $(srcdir)/nagios-plugins.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ command.cfg: $(top_builddir)/config.status $(srcdir)/command.cfg.in cd $(top_builddir) && $(SHELL) ./config.status $@ test.pl: $(top_builddir)/config.status $(srcdir)/test.pl.in @@ -1148,8 +1152,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1174,8 +1178,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1185,13 +1189,12 @@ ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique @@ -1265,6 +1268,10 @@ dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) @@ -1291,6 +1298,8 @@ distcheck: dist GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ @@ -1442,22 +1451,22 @@ uninstall-am: .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ - dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \ - distclean 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-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ + distcheck distclean 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-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am dist-hook: - make THANKS nagios-plugins.spec pkg/fedora/nagios-plugins.spec + $(MAKE) THANKS echo ${VERSION} >$(distdir)/release install-root: @@ -1469,19 +1478,14 @@ test test-debug: cd plugins && $(MAKE) $@ cd plugins-scripts && $(MAKE) $@ -nagios-plugins.spec: nagios-plugins.spec.in - sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;s/^%%{requires}$$//" $? > $@ - -pkg/fedora/nagios-plugins.spec: nagios-plugins.spec.in - $(top_srcdir)/mkinstalldirs pkg/fedora - sed "s/%%{VERSION}/${VERSION}/;s/%%{RELEASE}/${RELEASE}/;/^# Requires$$/r $(top_srcdir)/pkg/fedora/requires" $? > $@ - solpkg: if [ ! -d $(BUILDDIR) ] ; then mkdir $(BUILDDIR); fi if [ ! -d $(PACKDIR) ] ; then mkdir $(PACKDIR); fi $(MAKE) all $(MAKE) DESTDIR=$$PWD/$(BUILDDIR) install + $(INSTALL) plugins-root/pst3 $(BUILDDIR)$(libexecdir) $(INSTALL) pkg/solaris/pkginfo $(BUILDDIR) + $(INSTALL) pkg/solaris/preinstall $(BUILDDIR) cd $(BUILDDIR) && $(PERL) ../$(PKGSCRIPT) ../$(PACKDIR) THANKS: THANKS.in diff --git a/NEWS b/NEWS index ff92401..7452a6b 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,31 @@ This file documents the major additions and syntax changes between releases. +... + ENHANCEMENTS + check_nt UPTIME accepts warning/critical thresholds (Ryan Kelly) + check_disk_smb now allows spaces in share names (#990948, #1370031, Debian #601699) + check_http now uses standard threshold functions (enables floating point and ranges) + check_http now checks for and prints the certificate cn (hostname) in SSL certificate checks (Stéphane Urbanovski) + check_http now supports an optional -S/--ssl value to choose the SSL protocol version (#3066166 - Jason Lunn) + Add perfdata to check_ssh (#3244097 - Marco Beck) + New option to check_smtp to ignore failures when sending QUIT (#3358348 - Duncan Ferguson) + New check_by_ssh -F option which allows for specifying an alternative ssh_config(5) file (#2895334 - Sven Nierlein) + check_sensors now detects faulty sensors unless --ignore-fault is specified (Jan Wagner) + utils.sh now provides a check_range function (Alex Griffin) + Improved the performance of check_users (Marc Remy) + Updated Nagios::Plugin perl module + + FIXES + Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603) + check_disk_smb now handles NT_STATUS_ACCESS_DENIED properly (Debian #601696) + Make check_snmp work more like v1.4.14 with regard to using special values (Timeticks, STRING) as numeric thresholds + Fix check_ldap overriding the port when --ssl was specified after -p + Fix check_procs where regex input of '|' would get displayed in output - now replaced with ',' + Fix segfault in check_host when hostname returns multiple IP addresses (Sebastian Harl) + Fix check_smtp and check_tcp where duplicate messages were displayed for certificate errors + Fix check_ping's parsing of the output of Debian's ping6(1) implementation (#1894850 - Matej Vela) + Disable RFC4507 support, to work around SSL negotiation issues with (at least) some Tomcat versions + 1.4.15 27th July 2010 ENHANCEMENTS New check_ntp_peer -m and -n options to check the number of usable time sources ("truechimers") diff --git a/THANKS b/THANKS index 63cab6a..df564f1 100644 --- a/THANKS +++ b/THANKS @@ -23,6 +23,7 @@ Michael Bakker Nobuhiro Ban John Barbuto Jeremy Baumgartner +Marco Beck Andreas Behal Lutz Behnke Marlo Bell @@ -99,12 +100,14 @@ Aravind Gottipati Kev Green Steve Greenland Olaf Greis +Alex Griffin Chris Grim Steven Grimm Sebastien Guay Jon Hallett Steve Hanselman Ask Bjoern Hansen +Sebastian Harl Michael Haro Olli Hauer Gunnar Hellekson @@ -124,6 +127,7 @@ Nikita Kalabukhov Frank Kannemann Roy Sigurd Karlsbakk Jason Kau +Ryan Kelly Bo Kersey Konstantin Khomoutov Serhan Kiymaz @@ -145,6 +149,7 @@ Craig Leres Jan Lipphaus Larry Low Jacob Lundqvist +Jason Lunn Guenther Mair Pawel Malachowski Michael Markstaller @@ -197,6 +202,7 @@ Olivier 'Babar' Raginel Phil Randal Abid Rasheed Jeremy Reed +Marc Remy Alessandro Ren Joe Rhett Cliff Rice @@ -242,10 +248,12 @@ Ibere Tizio Julien Touche Kyle Tucker Jerome Tytgat +Stéphane Urbanovski Matthias Urlichs Matteo HCE Valsasna Jon Vandegrift Laurent Vaslin +Matej Vela Carole Verdon Ludse Verhoeven Robert August Vincent diff --git a/aclocal.m4 b/aclocal.m4 index affb499..0507386 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.10 -*- Autoconf -*- +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008 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. @@ -11,12 +11,6667 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -m4_if(m4_PACKAGE_VERSION, [2.61],, -[m4_fatal([this file was generated for autoconf 2.61. -You have another version of autoconf. If you want to use that, -you should regenerate the build system entirely.], [63])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(AC_AUTOCONF_VERSION, [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +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'.])]) -# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 52 Debian 1.5.26-4+lenny1 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +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 "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[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 avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# 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 + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +_LT_REQUIRED_DARWIN_CHECKS + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])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_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_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. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[AC_REQUIRE([LT_AC_PROG_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 +# -------------------------- +# Check for some things on darwin +AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + + 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. + echo "int foo(void){return 1;}" > conftest.c + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib ${wl}-single_module conftest.c + if test -f libconftest.dylib; then + lt_cv_apple_cc_single_mod=yes + rm -rf libconftest.dylib* + fi + rm conftest.c + 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" + ]) + case $host_os in + rhapsody* | darwin1.[[0123]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) + # 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 "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; 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" != ":"; then + _lt_dsymutil="~$DSYMUTIL \$lib || :" + else + _lt_dsymutil= + fi + ;; + esac +]) + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# 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. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +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 "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && 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 which ABI we are using. + 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 which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; 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* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + 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*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|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" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + 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_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + 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*) LD="${LD-ld} -m elf64_sparc" ;; + *) + 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* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # 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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_REQUIRE([LT_AC_PROG_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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# 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*) + # 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; + ;; + + 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; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # 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 + ;; + + 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"; 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 + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + 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 +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#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 + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=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; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +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_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; 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*) + 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 + ]) + ;; + + *) + 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 "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && 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_AC_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 "x$lt_cv_dlopen_self" = xyes; 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_AC_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 +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_AC_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 .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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 +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_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 +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[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 +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +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" +m4_if($1,[],[ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then + # 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 -e 's/;/ /g'` + else + lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # 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` + 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" + else + 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; } +}'` + sys_lib_search_path_spec=`echo $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +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 + 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 + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; 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 + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.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}' + else + # 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' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $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' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # 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}${versuffix}$shared_ext ${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 + 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 + ;; + +freebsd1*) + dynamic_linker=no + ;; + +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[[123]]*) 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} $libname${shared_ext}' + 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 + ;; + +gnu*) + version_type=linux + 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 + 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 "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + 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' + ;; + +interix[[3-9]]*) + version_type=linux + 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 "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + 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 + # 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 + + # Append ld.so.conf contents 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;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $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' + ;; + +netbsdelf*-gnu) + version_type=linux + 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='NetBSD ld.elf_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 + 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=linux + 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 + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + 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 + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +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 + 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 "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + 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 + 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=freebsd-elf + 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 + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + 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' + ;; + +uts4*) + version_type=linux + 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 "$dynamic_linker" = no && can_build_shared=no + +AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec], +[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"]) +sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec], +[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"]) +sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognize shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_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="ifelse([$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 <&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 + +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 +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognize a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_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 + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 &1 /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 + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +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 + ;; + +gnu*) + 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]) 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 Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + 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=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 + ;; + +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 + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +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 +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible 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 + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + 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 + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-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_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[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_AC_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_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + 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 "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= +_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_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(int, char *[[]]) { return(0); }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_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_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++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_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 "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; 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 + # need to do runtime linking. + 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 + ;; + 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_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; 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_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_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_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_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 (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + if test "$GXX" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_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_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_AC_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_AC_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}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_AC_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_AC_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 + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_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 $output_objdir/$soname = $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) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_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; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_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_AC_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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux* | k*bsd*-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_AC_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_AC_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; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_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' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + osf3*) + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -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 \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_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 -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 \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_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 can NOT 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. + # 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. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +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 +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([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. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +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... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + # + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) +case " $_LT_AC_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac +])# AC_LIBTOOL_POSTDEP_PREDEP + +# AC_LIBTOOL_LANG_F77_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) +AC_DEFUN([_LT_AC_LANG_F77_CONFIG], +[AC_REQUIRE([AC_PROG_F77]) +AC_LANG_PUSH(Fortran 77) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_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_AC_TAGVAR(objext, $1)=$objext + +# 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_AC_SYS_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" +CC=${F77-"f77"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + 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 "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +_LT_AC_TAGVAR(GCC, $1)="$G77" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_F77_CONFIG + + +# AC_LIBTOOL_LANG_GCJ_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) +AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], +[AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_AC_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_AC_SYS_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" +CC=${GCJ-"gcj"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_GCJ_CONFIG + + +# AC_LIBTOOL_LANG_RC_CONFIG +# ------------------------- +# Ensure that the configuration vars for the Windows resource compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) +AC_DEFUN([_LT_AC_LANG_RC_CONFIG], +[AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_AC_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_AC_SYS_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" +CC=${RC-"windres"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_RC_CONFIG + + +# AC_LIBTOOL_CONFIG([TAGNAME]) +# ---------------------------- +# If TAGNAME is not passed, then 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 +# TAGNAME from the matching tagged config vars. +AC_DEFUN([AC_LIBTOOL_CONFIG], +[# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + _LT_AC_TAGVAR(compiler, $1) \ + _LT_AC_TAGVAR(CC, $1) \ + _LT_AC_TAGVAR(LD, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ + _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ + _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ + _LT_AC_TAGVAR(old_archive_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ + _LT_AC_TAGVAR(predep_objects, $1) \ + _LT_AC_TAGVAR(postdep_objects, $1) \ + _LT_AC_TAGVAR(predeps, $1) \ + _LT_AC_TAGVAR(postdeps, $1) \ + _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ + _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \ + _LT_AC_TAGVAR(archive_cmds, $1) \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ + _LT_AC_TAGVAR(postinstall_cmds, $1) \ + _LT_AC_TAGVAR(postuninstall_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ + _LT_AC_TAGVAR(allow_undefined_flag, $1) \ + _LT_AC_TAGVAR(no_undefined_flag, $1) \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ + _LT_AC_TAGVAR(hardcode_automatic, $1) \ + _LT_AC_TAGVAR(module_cmds, $1) \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) \ + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ + _LT_AC_TAGVAR(fix_srcfile_path, $1) \ + _LT_AC_TAGVAR(exclude_expsyms, $1) \ + _LT_AC_TAGVAR(include_expsyms, $1); do + + case $var in + _LT_AC_TAGVAR(old_archive_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ + _LT_AC_TAGVAR(archive_cmds, $1) | \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\[$]0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` + ;; + esac + +ifelse([$1], [], + [cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + AC_MSG_NOTICE([creating $ofile])], + [cfgfile="$ofile"]) + + cat <<__EOF__ >> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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. + +# 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//" + +# 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# 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 + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# 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 + +# 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 + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# 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 + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The directories searched by this compiler when creating a shared +# library +compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# 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 + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# 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 in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\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 "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # 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" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([LT_AC_PROG_SED]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# 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]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux* | k*bsd*-gnu) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + 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 + +# 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 + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, 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. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $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 < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" + CFLAGS="$lt_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 "$pipe_works" = yes; 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 +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $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_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # 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*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_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 + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + 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_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + 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 AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_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_AC_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= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # 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 "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[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 "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_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 (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_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_AC_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_AC_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* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + *) + tmp_sharedflag='-shared' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_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 + _LT_AC_TAGVAR(link_all_deplibs, $1)=no + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $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_AC_TAGVAR(ld_shlibs, $1)=no + cat <&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. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** 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 + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; 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 AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | 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 + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + 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_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; 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_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_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_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # 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. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_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_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_AC_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_AC_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}" + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_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 "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_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~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_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' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_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 "$GCC" = yes; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_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 can NOT 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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) + $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_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + + +# Cheap backport of AS_EXECUTABLE_P and required macros +# from Autoconf 2.59; we should not use $as_executable_p directly. + +# _AS_TEST_PREPARE +# ---------------- +m4_ifndef([_AS_TEST_PREPARE], +[m4_defun([_AS_TEST_PREPARE], +[if test -x / >/dev/null 2>&1; then + as_executable_p='test -x' +else + as_executable_p='test -f' +fi +])])# _AS_TEST_PREPARE + +# AS_EXECUTABLE_P +# --------------- +# Check whether a file is executable. +m4_ifndef([AS_EXECUTABLE_P], +[m4_defun([AS_EXECUTABLE_P], +[AS_REQUIRE([_AS_TEST_PREPARE])dnl +$as_executable_p $1[]dnl +])])# AS_EXECUTABLE_P + +# 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. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_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 $lt_ac_count -gt 10 && 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]) +]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -31,7 +6686,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.10' 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.10], [], +m4_if([$1], [1.10.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -47,8 +6702,10 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10])dnl -_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) +[AM_AUTOMAKE_VERSION([1.10.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -320,7 +6977,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # 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 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue @@ -380,13 +7037,13 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006 Free Software Foundation, Inc. +# 2005, 2006, 2008 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. -# serial 12 +# serial 13 # 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. @@ -491,16 +7148,17 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC], # 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 - $1 | $1:* ) + $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # @@ -806,7 +7464,7 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])]) # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- -# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) diff --git a/build-aux/config.guess b/build-aux/config.guess index 396482d..f32079a 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-07-02' +timestamp='2008-01-23' # 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 @@ -56,8 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -161,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 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 @@ -329,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) @@ -531,7 +532,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) 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 @@ -780,7 +781,7 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -790,12 +791,18 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + 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 ;; @@ -829,7 +836,14 @@ EOF echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + 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-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -950,6 +964,9 @@ EOF x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -1208,6 +1225,15 @@ EOF 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 ;; @@ -1458,9 +1484,9 @@ 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://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + 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 diff --git a/build-aux/config.sub b/build-aux/config.sub index fab0aa3..6759825 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-09-20' +timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -72,8 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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." @@ -245,12 +245,12 @@ case $basic_machine in | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ + | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -324,7 +324,7 @@ case $basic_machine in | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ @@ -369,10 +369,14 @@ case $basic_machine in | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # 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) @@ -443,6 +447,14 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos @@ -475,8 +487,8 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -668,6 +680,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -683,6 +703,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -809,6 +833,14 @@ case $basic_machine in 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 ;; @@ -925,6 +957,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -1014,6 +1049,10 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1219,7 +1258,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1414,6 +1453,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; diff --git a/build-aux/depcomp b/build-aux/depcomp index ca5ea4e..e5f9736 100755 --- a/build-aux/depcomp +++ b/build-aux/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2006-10-15.18 +scriptversion=2007-03-29.01 -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -215,34 +215,39 @@ aix) # 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. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 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 -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - if test $stat -eq 0; then : else - rm -f "$tmpdepfile" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done if test -f "$tmpdepfile"; then - outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile diff --git a/build-aux/install-sh b/build-aux/install-sh index 4fbbae7..a5897de 100755 --- a/build-aux/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2006-10-14.15 +scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -48,7 +48,7 @@ IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" +doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else @@ -58,34 +58,49 @@ fi # Put in absolute file names if you don't have them in your path; # or use environment vars. -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" +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_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' -posix_glob= posix_mkdir= # Desired mode of installed file. mode=0755 +chgrpcmd= chmodcmd=$chmodprog chowncmd= -chgrpcmd= -stripcmd= +mvcmd=$mvprog rmcmd="$rmprog -f" -mvcmd="$mvprog" +stripcmd= + src= dst= dir_arg= -dstarg= +dst_arg= + +copy_on_change=false no_target_directory= -usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... @@ -95,65 +110,55 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --c (ignored) --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. ---help display this help and exit. ---version display version info and exit. + --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 CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG " while test $# -ne 0; do case $1 in - -c) shift - continue;; + -c) ;; - -d) dir_arg=true - shift - continue;; + -C) copy_on_change=true;; + + -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - shift - shift case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac - continue;; + shift;; -o) chowncmd="$chownprog $2" - shift - shift - continue;; + shift;; - -s) stripcmd=$stripprog - shift - continue;; + -s) stripcmd=$stripprog;; - -t) dstarg=$2 - shift - shift - continue;; + -t) dst_arg=$2 + shift;; - -T) no_target_directory=true - shift - continue;; + -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; @@ -165,21 +170,22 @@ while test $# -ne 0; do *) break;; esac + shift done -if test $# -ne 0 && test -z "$dir_arg$dstarg"; then +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 "$dstarg"; then + if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" + set fnord "$@" "$dst_arg" shift # fnord fi shift # arg - dstarg=$arg + dst_arg=$arg done fi @@ -224,7 +230,7 @@ for src do # Protect names starting with `-'. case $src in - -*) src=./$src ;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -242,22 +248,22 @@ do exit 1 fi - if test -z "$dstarg"; then + if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi - dst=$dstarg + dst=$dst_arg # Protect names starting with `-'. case $dst in - -*) dst=./$dst ;; + -*) dst=./$dst;; esac # 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 -n "$no_target_directory"; then - echo "$0: $dstarg: Is a directory" >&2 + echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst @@ -378,26 +384,19 @@ do # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix=/ ;; - -*) prefix=./ ;; - *) prefix= ;; + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; esac - case $posix_glob in - '') - if (set -f) 2>/dev/null; then - posix_glob=true - else - posix_glob=false - fi ;; - esac + eval "$initialize_posix_glob" oIFS=$IFS IFS=/ - $posix_glob && set -f + $posix_glob set -f set fnord $dstdir shift - $posix_glob && set +f + $posix_glob set +f IFS=$oIFS prefixes= @@ -459,41 +458,54 @@ do # 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"; } && + { 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"; } && - # Now 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. + # 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` && - # 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. - { - if test -f "$dst"; then - $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 - } - else - : - fi - } && + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - } || exit 1 + 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 diff --git a/config.h.in b/config.h.in index a9297de..62c03da 100644 --- a/config.h.in +++ b/config.h.in @@ -535,6 +535,9 @@ /* Define to 1 if you have the `mprotect' function. */ #undef HAVE_MPROTECT +/* Define to 1 if you have the header file. */ +#undef HAVE_MP_H + /* Defined if mysqlclient is found and can compile */ #undef HAVE_MYSQLCLIENT diff --git a/configure b/configure index a93e57d..744a78a 100755 --- a/configure +++ b/configure @@ -2750,7 +2750,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_config_files="$ac_config_files gl/Makefile" +ac_config_files="$ac_config_files gl/Makefile nagios-plugins.spec" ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; do @@ -13886,6 +13886,211 @@ if test $ac_cv_lib_m_floor = yes; then fi +for ac_header in mp.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ echo "$as_me:$LINENO: checking for pow in -lbsd" >&5 +echo $ECHO_N "checking for pow in -lbsd... $ECHO_C" >&6; } +if test "${ac_cv_lib_bsd_pow+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* 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 pow (); +int +main () +{ +return pow (); + ; + return 0; +} +_ACEOF +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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_bsd_pow=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_bsd_pow=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_pow" >&5 +echo "${ECHO_T}$ac_cv_lib_bsd_pow" >&6; } +if test $ac_cv_lib_bsd_pow = yes; then + MATHLIBS="$MATHLIBS -lbsd" +fi + + # Check whether --enable-libtap was given. if test "${enable_libtap+set}" = set; then @@ -15391,6 +15596,12 @@ fi fi np_mysql_libs="`$np_mysql_config --libs`" np_mysql_cflags="`$np_mysql_config --cflags`" + # On Solaris, cflags may contain -xstrconst, which is not acceptable to the + # gcc compiler. In this case, use the include flags as the cflags + echo $np_mysql_cflags | grep -- -xstrconst > /dev/null 2> /dev/null + if test $? -eq 0 -a "$CC" = "gcc" ; then + np_mysql_cflags="`$np_mysql_config --include`" + fi _savedcppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $np_mysql_include" @@ -56405,6 +56616,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "gl/Makefile") CONFIG_FILES="$CONFIG_FILES gl/Makefile" ;; + "nagios-plugins.spec") CONFIG_FILES="$CONFIG_FILES nagios-plugins.spec" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; @@ -58047,21 +58259,22 @@ echo "$as_me: $ac_file is unchanged" >&6;} fi rm -f "$tmp/out12" # 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 - $ac_file | $ac_file:* ) + $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done -echo "timestamp for $ac_file" >`$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 || -echo X$ac_file | +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 || +echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -58098,7 +58311,7 @@ echo "$as_me: executing $ac_file commands" >&6;} # 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 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + 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\(//\)[^/]' \| \ diff --git a/configure.in b/configure.in index bdd4431..e8fc789 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,8 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT(nagios-plugins,1.4.15) AC_CONFIG_SRCDIR(NPTest.pm) -AC_CONFIG_FILES(gl/Makefile) +AC_CONFIG_FILES([gl/Makefile + nagios-plugins.spec]) AC_CONFIG_AUX_DIR(build-aux) AM_INIT_AUTOMAKE([1.8.3]) AM_CONFIG_HEADER(config.h) @@ -162,6 +163,8 @@ dnl dnl check for math-related functions needing -lm AC_CHECK_HEADERS(math.h) AC_CHECK_LIB(m,floor,MATHLIBS="-lm") +AC_CHECK_HEADERS(mp.h) +AC_CHECK_LIB(bsd,pow,MATHLIBS="$MATHLIBS -lbsd") AC_SUBST(MATHLIBS) dnl Check if we buils local libtap diff --git a/contrib/check_linux_raid.pl b/contrib/check_linux_raid.pl index d2e5b46..77e75f6 100644 --- a/contrib/check_linux_raid.pl +++ b/contrib/check_linux_raid.pl @@ -71,7 +71,8 @@ while(defined $nextdev){ } elsif (/^($nextdev)\s*:/) { $device=$1; $devices{$device}=$device; - if (/active/) { + if (/\sactive/) { + $status{$device} = ''; # Shall be filled later if available $active{$device} = 1; } } @@ -80,7 +81,11 @@ while(defined $nextdev){ } foreach my $k (sort keys %devices){ - if ($status{$k} =~ /_/) { + if (!exists($status{$k})) { + $msg .= sprintf " %s inactive with no status information.", + $devices{$k}; + $code = max_state($code, "CRITICAL"); + } elsif ($status{$k} =~ /_/) { if (defined $recovery{$k}) { $msg .= sprintf " %s status=%s, recovery=%s, finish=%s.", $devices{$k}, $status{$k}, $recovery{$k}, $finish{$k}; @@ -94,10 +99,11 @@ foreach my $k (sort keys %devices){ $code = max_state($code, "OK"); } else { if ($active{$k}) { - $msg .= sprintf " %s active with no status information.\n", + $msg .= sprintf " %s active with no status information.", $devices{$k}; $code = max_state($code, "OK"); } else { + # This should't run anymore, but is left as a catch-all $msg .= sprintf " %s does not exist.\n", $devices{$k}; $code = max_state($code, "CRITICAL"); } diff --git a/gl/Makefile.in b/gl/Makefile.in index 30347ea..6113d48 100644 --- a/gl/Makefile.in +++ b/gl/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -154,7 +154,7 @@ am_libgnu_a_OBJECTS = base64.$(OBJEXT) close-hook.$(OBJEXT) \ xalloc-die.$(OBJEXT) xstrndup.$(OBJEXT) libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) LTLIBRARIES = $(noinst_LTLIBRARIES) -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1345,8 +1345,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1371,8 +1371,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1382,13 +1382,12 @@ ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique diff --git a/lib/Makefile.in b/lib/Makefile.in index 026ebf1..89e2ed9 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -142,7 +142,7 @@ am__libnagiosplug_a_SOURCES_DIST = utils_base.c utils_disk.c \ am_libnagiosplug_a_OBJECTS = utils_base.$(OBJEXT) utils_disk.$(OBJEXT) \ utils_tcp.$(OBJEXT) utils_cmd.$(OBJEXT) $(am__objects_1) libnagiosplug_a_OBJECTS = $(am_libnagiosplug_a_OBJECTS) -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1156,8 +1156,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1182,8 +1182,8 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1193,13 +1193,12 @@ ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique diff --git a/lib/tests/Makefile.in b/lib/tests/Makefile.in index 8bfe6d9..944002f 100644 --- a/lib/tests/Makefile.in +++ b/lib/tests/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -185,7 +185,7 @@ test_utils_OBJECTS = test_utils.$(OBJEXT) test_utils_LDADD = $(LDADD) test_utils_DEPENDENCIES = $(top_srcdir)/lib/libnagiosplug.a \ $(top_srcdir)/gl/libgnu.a -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1172,8 +1172,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1185,8 +1185,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1196,13 +1196,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique diff --git a/lib/utils_disk.c b/lib/utils_disk.c index 3d20f4d..5be2b2c 100644 --- a/lib/utils_disk.c +++ b/lib/utils_disk.c @@ -58,6 +58,19 @@ np_add_parameter(struct parameter_list **list, const char *name) new_path->usedinodes_percent = NULL; new_path->freeinodes_percent = NULL; new_path->group = NULL; + new_path->dfree_pct = -1; + new_path->dused_pct = -1; + new_path->total = 0; + new_path->available = 0; + new_path->available_to_root = 0; + new_path->used = 0; + new_path->dused_units = 0; + new_path->dfree_units = 0; + new_path->dtotal_units = 0; + new_path->inodes_total = 0; + new_path->inodes_free = 0; + new_path->dused_inodes_percent = 0; + new_path->dfree_inodes_percent = 0; if (current == NULL) { *list = new_path; diff --git a/lib/utils_disk.h b/lib/utils_disk.h index f99b905..83a3763 100644 --- a/lib/utils_disk.h +++ b/lib/utils_disk.h @@ -24,6 +24,10 @@ struct parameter_list char *group; struct mount_entry *best_match; struct parameter_list *name_next; + uintmax_t total, available, available_to_root, used, inodes_free, inodes_total; + double dfree_pct, dused_pct; + double dused_units, dfree_units, dtotal_units; + double dused_inodes_percent, dfree_inodes_percent; }; void np_add_name (struct name_list **list, const char *name); diff --git a/m4/np_mysqlclient.m4 b/m4/np_mysqlclient.m4 index 9bbe63c..cd36c4f 100644 --- a/m4/np_mysqlclient.m4 +++ b/m4/np_mysqlclient.m4 @@ -42,6 +42,12 @@ AC_DEFUN([np_mysqlclient], fi np_mysql_libs="`$np_mysql_config --libs`" np_mysql_cflags="`$np_mysql_config --cflags`" + # On Solaris, cflags may contain -xstrconst, which is not acceptable to the + # gcc compiler. In this case, use the include flags as the cflags + echo $np_mysql_cflags | grep -- -xstrconst > /dev/null 2> /dev/null + if test $? -eq 0 -a "$CC" = "gcc" ; then + np_mysql_cflags="`$np_mysql_config --include`" + fi dnl Test a mysql_init. Some systems have mysql_config, but no headers _savedcppflags="$CPPFLAGS" diff --git a/nagios-plugins.spec b/nagios-plugins.spec index f2dde1c..cd3a864 100644 --- a/nagios-plugins.spec +++ b/nagios-plugins.spec @@ -1,3 +1,20 @@ +# Macros +%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0") +%define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0") +%define isredhatfamily %(test -f /etc/redhat-release && echo "1" || echo "0") + +%if %{isaix} + %define _prefix /opt/nagios +# %define _defaultdocdir %{_datadir}/doc +%else + %define _libexecdir %{_exec_prefix}/lib/nagios/plugins +%endif +%define _sysconfdir /etc/nagios + +%define npusr nagios +%define nphome /opt/nagios +%define npgrp nagios + Name: nagios-plugins Version: 1.4.15 Release: 1 @@ -9,7 +26,13 @@ URL: http://nagiosplug.sourceforge.net/ Source0: http://dl.sf.net/sourceforge/nagiosplug/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +%define npdir %{_builddir}/%{name}-%{version} + +%if %{isaix} +Prefix: %{_prefix} +%else Prefix: %{_prefix}/lib/nagios/plugins +%endif Packager: Karl DeBisschop Vendor: Nagios Plugin Development Group Provides: nagios-plugins @@ -19,6 +42,60 @@ Obsoletes: nagios-plugins-custom nagios-plugins-extras # Requires +%if %{isaix} +Requires: fping +Requires: gawk +Requires: net-snmp +Requires: net-snmp-perl +Requires: net-snmp-utils +Requires: openldap +Requires: openssl +Requires: perl +Requires: python +Requires: openssl +BuildRequires: fping +BuildRequires: gawk +BuildRequires: net-snmp +BuildRequires: net-snmp-perl +BuildRequires: net-snmp-utils +BuildRequires: openldap-devel +%endif +%if %{isredhatfamily} +Requires: bind-utils +Requires: coreutils +Requires: fping +Requires: gawk +Requires: grep +Requires: iputils +Requires: mysql +Requires: net-snmp-utils +Requires: ntp +Requires: openldap +Requires: openssl +Requires: openssh-clients +Requires: perl +Requires: postgresql-libs +Requires: procps +Requires: python +Requires: samba-client +Requires: shadow-utils +Requires: traceroute +Requires: /usr/bin/mailq +BuildRequires: bind-utils +BuildRequires: coreutils +BuildRequires: iputils +BuildRequires: mysql-devel +BuildRequires: net-snmp-utils +BuildRequires: net-tools +BuildRequires: ntp +BuildRequires: openldap-devel +BuildRequires: openssh-clients +BuildRequires: openssl-devel +BuildRequires: postgresql-devel +BuildRequires: procps +BuildRequires: samba-client +BuildRequires: /usr/bin/mailq +%endif %description @@ -37,38 +114,79 @@ contains those plugins. %build -./configure \ +%{?isaix: MAKE=gmake} ./configure \ --prefix=%{_prefix} \ --exec-prefix=%{_exec_prefix} \ ---libexecdir=%{_exec_prefix}/lib/nagios/plugins \ ---sysconfdir=%{_sysconfdir}/nagios \ +--libexecdir=%{_libexecdir} \ +--sysconfdir=%{_sysconfdir} \ --datadir=%{_datadir} \ --with-cgiurl=/nagios/cgi-bin +ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-before +ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-before +ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-before make %{?_smp_mflags} +ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-after +ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-after +ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-after +%pre +# Create `nagios' group on the system if necessary +%if %{isaix} +lsgroup %{npgrp} > /dev/null 2> /dev/null +if [ $? -eq 2 ] ; then + mkgroup %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process. +fi +%endif +%if %{islinux} +getent group %{npgrp} > /dev/null 2> /dev/null +if [ $? -ne 0 ] ; then + groupadd %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process. +fi +%endif + +# Create `nagios' user on the system if necessary +%if %{isaix} +lsuser %{npusr} > /dev/null 2> /dev/null +if [ $? -eq 2 ] ; then + useradd -d %{nphome} -c "%{npusr}" -g %{npgrp} %{npusr} || \ + %nnmmsg Unexpected error adding user "%{npusr}". Aborting install process. +fi +%endif +%if %{islinux} +getent passwd %{npusr} > /dev/null 2> /dev/null +if [ $? -ne 0 ] ; then + useradd -r -d %{nshome} -c "%{npusr}" -g %{npgrp} %{npusr} || \ + %nnmmsg Unexpected error adding user "%{npusr}". Aborting install process. +fi +%endif %install rm -rf $RPM_BUILD_ROOT make AM_INSTALL_PROGRAM_FLAGS="" DESTDIR=${RPM_BUILD_ROOT} install -install -d ${RPM_BUILD_ROOT}/etc/nagios -install -m 664 command.cfg ${RPM_BUILD_ROOT}/etc/nagios +build-aux/install-sh -c -d ${RPM_BUILD_ROOT}%{_sysconfdir} +build-aux/install-sh -c -m 664 command.cfg ${RPM_BUILD_ROOT}%{_sysconfdir} %find_lang %{name} - +echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-before %{npdir}/ls-plugins-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%defattr(755,root,root)" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-root-before %{npdir}/ls-plugins-root-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-scripts-before %{npdir}/ls-plugins-scripts-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%{_libexecdir}/utils.pm" >> %{name}.lang +echo "%{_libexecdir}/utils.sh" >> %{name}.lang %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang -%defattr(-,root,root) -%config(missingok,noreplace) /etc/nagios/command.cfg +%config(missingok,noreplace) %{_sysconfdir}/command.cfg %doc CODING COPYING FAQ INSTALL LEGAL README REQUIREMENTS SUPPORT THANKS %doc ChangeLog command.cfg -%defattr(775,root,root) -%dir %{_exec_prefix}/lib/nagios/plugins +%if ! %{isaix} %{_datadir}/locale/de/LC_MESSAGES/nagios-plugins.mo %{_datadir}/locale/fr/LC_MESSAGES/nagios-plugins.mo -%{_exec_prefix}/lib/nagios/plugins +%endif %changelog * Mon May 23 2005 Sean Finney - cvs head diff --git a/nagios-plugins.spec.in b/nagios-plugins.spec.in new file mode 100644 index 0000000..17a44c3 --- /dev/null +++ b/nagios-plugins.spec.in @@ -0,0 +1,199 @@ +# Macros +%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0") +%define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0") +%define isredhatfamily %(test -f /etc/redhat-release && echo "1" || echo "0") + +%if %{isaix} + %define _prefix /opt/nagios +# %define _defaultdocdir %{_datadir}/doc +%else + %define _libexecdir %{_exec_prefix}/lib/nagios/plugins +%endif +%define _sysconfdir /etc/nagios + +%define npusr nagios +%define nphome /opt/nagios +%define npgrp nagios + +Name: nagios-plugins +Version: @PACKAGE_VERSION@ +Release: @RELEASE@ +Summary: Host/service/network monitoring program plugins for Nagios + +Group: Applications/System +License: GPL +URL: http://nagiosplug.sourceforge.net/ +Source0: http://dl.sf.net/sourceforge/nagiosplug/%{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%define npdir %{_builddir}/%{name}-%{version} + +%if %{isaix} +Prefix: %{_prefix} +%else +Prefix: %{_prefix}/lib/nagios/plugins +%endif +Packager: Karl DeBisschop +Vendor: Nagios Plugin Development Group +Provides: nagios-plugins + +%{!?custom:%global custom 0} +Obsoletes: nagios-plugins-custom nagios-plugins-extras + + +# Requires +%if %{isaix} +Requires: fping +Requires: gawk +Requires: net-snmp +Requires: net-snmp-perl +Requires: net-snmp-utils +Requires: openldap +Requires: openssl +Requires: perl +Requires: python +Requires: openssl +BuildRequires: fping +BuildRequires: gawk +BuildRequires: net-snmp +BuildRequires: net-snmp-perl +BuildRequires: net-snmp-utils +BuildRequires: openldap-devel +%endif +%if %{isredhatfamily} +Requires: bind-utils +Requires: coreutils +Requires: fping +Requires: gawk +Requires: grep +Requires: iputils +Requires: mysql +Requires: net-snmp-utils +Requires: ntp +Requires: openldap +Requires: openssl +Requires: openssh-clients +Requires: perl +Requires: postgresql-libs +Requires: procps +Requires: python +Requires: samba-client +Requires: shadow-utils +Requires: traceroute +Requires: /usr/bin/mailq +BuildRequires: bind-utils +BuildRequires: coreutils +BuildRequires: iputils +BuildRequires: mysql-devel +BuildRequires: net-snmp-utils +BuildRequires: net-tools +BuildRequires: ntp +BuildRequires: openldap-devel +BuildRequires: openssh-clients +BuildRequires: openssl-devel +BuildRequires: postgresql-devel +BuildRequires: procps +BuildRequires: samba-client +BuildRequires: /usr/bin/mailq +%endif + + +%description + +Nagios is a program that will monitor hosts and services on your +network, and to email or page you when a problem arises or is +resolved. Nagios runs on a unix server as a background or daemon +process, intermittently running checks on various services that you +specify. The actual service checks are performed by separate "plugin" +programs which return the status of the checks to Nagios. This package +contains those plugins. + + +%prep +%setup -q + + +%build +%{?isaix: MAKE=gmake} ./configure \ +--prefix=%{_prefix} \ +--exec-prefix=%{_exec_prefix} \ +--libexecdir=%{_libexecdir} \ +--sysconfdir=%{_sysconfdir} \ +--datadir=%{_datadir} \ +--with-cgiurl=/nagios/cgi-bin +ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-before +ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-before +ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-before +make %{?_smp_mflags} +ls -1 %{npdir}/plugins > %{npdir}/ls-plugins-after +ls -1 %{npdir}/plugins-root > %{npdir}/ls-plugins-root-after +ls -1 %{npdir}/plugins-scripts > %{npdir}/ls-plugins-scripts-after + +%pre +# Create `nagios' group on the system if necessary +%if %{isaix} +lsgroup %{npgrp} > /dev/null 2> /dev/null +if [ $? -eq 2 ] ; then + mkgroup %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process. +fi +%endif +%if %{islinux} +getent group %{npgrp} > /dev/null 2> /dev/null +if [ $? -ne 0 ] ; then + groupadd %{npgrp} || %nnmmsg Unexpected error adding group "%{npgrp}". Aborting install process. +fi +%endif + +# Create `nagios' user on the system if necessary +%if %{isaix} +lsuser %{npusr} > /dev/null 2> /dev/null +if [ $? -eq 2 ] ; then + useradd -d %{nphome} -c "%{npusr}" -g %{npgrp} %{npusr} || \ + %nnmmsg Unexpected error adding user "%{npusr}". Aborting install process. +fi +%endif +%if %{islinux} +getent passwd %{npusr} > /dev/null 2> /dev/null +if [ $? -ne 0 ] ; then + useradd -r -d %{nshome} -c "%{npusr}" -g %{npgrp} %{npusr} || \ + %nnmmsg Unexpected error adding user "%{npusr}". Aborting install process. +fi +%endif + +%install +rm -rf $RPM_BUILD_ROOT +make AM_INSTALL_PROGRAM_FLAGS="" DESTDIR=${RPM_BUILD_ROOT} install +build-aux/install-sh -c -d ${RPM_BUILD_ROOT}%{_sysconfdir} +build-aux/install-sh -c -m 664 command.cfg ${RPM_BUILD_ROOT}%{_sysconfdir} +%find_lang %{name} +echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-before %{npdir}/ls-plugins-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%defattr(755,root,root)" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-root-before %{npdir}/ls-plugins-root-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%defattr(755,%{npusr},%{npgrp})" >> %{name}.lang +comm -13 %{npdir}/ls-plugins-scripts-before %{npdir}/ls-plugins-scripts-after | egrep -v "\.o$|^\." | gawk -v libexecdir=%{_libexecdir} '{printf( "%s/%s\n", libexecdir, $0);}' >> %{name}.lang +echo "%{_libexecdir}/utils.pm" >> %{name}.lang +echo "%{_libexecdir}/utils.sh" >> %{name}.lang + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files -f %{name}.lang +%config(missingok,noreplace) %{_sysconfdir}/command.cfg +%doc CODING COPYING FAQ INSTALL LEGAL README REQUIREMENTS SUPPORT THANKS +%doc ChangeLog command.cfg +%if ! %{isaix} +%{_datadir}/locale/de/LC_MESSAGES/nagios-plugins.mo +%{_datadir}/locale/fr/LC_MESSAGES/nagios-plugins.mo +%endif + +%changelog +* Mon May 23 2005 Sean Finney - cvs head +- just include the nagios plugins directory, which will automatically include + all generated plugins (which keeps the build from failing on systems that + don't have all build-dependencies for every plugin) +* Tue Mar 04 2004 Karl DeBisschop - 1.4.0alpha1 +- extensive rewrite to facilitate processing into various distro-compatible specs +* Tue Mar 04 2004 Karl DeBisschop - 1.4.0alpha1 +- extensive rewrite to facilitate processing into various distro-compatible specs diff --git a/perlmods/Makefile b/perlmods/Makefile index 9a27861..9267ee0 100644 --- a/perlmods/Makefile +++ b/perlmods/Makefile @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # perlmods/Makefile. Generated from Makefile.in by configure. # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -29,8 +29,8 @@ POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : -build_triplet = i386-apple-darwin9.8.0 -host_triplet = i386-apple-darwin9.8.0 +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu subdir = perlmods DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -132,23 +132,23 @@ CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run aclocal-1.10 +ACLOCAL = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run aclocal-1.10 ALLOCA = ALLOCA_H = alloca.h -AMTAR = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run tar +AMTAR = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run tar APPLE_UNIVERSAL_BUILD = 0 AR = ar -ASM_SYMBOL_PREFIX = "_" -AUTOCONF = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run autoconf -AUTOHEADER = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run autoheader -AUTOMAKE = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run automake-1.10 -AWK = awk +ASM_SYMBOL_PREFIX = "" +AUTOCONF = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run autoconf +AUTOHEADER = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run autoheader +AUTOMAKE = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run automake-1.10 +AWK = mawk BASENAME = /usr/bin/basename -BITSIZEOF_PTRDIFF_T = 32 -BITSIZEOF_SIG_ATOMIC_T = 32 -BITSIZEOF_SIZE_T = 32 -BITSIZEOF_WCHAR_T = 32 -BITSIZEOF_WINT_T = 32 +BITSIZEOF_PTRDIFF_T = +BITSIZEOF_SIG_ATOMIC_T = +BITSIZEOF_SIZE_T = +BITSIZEOF_WCHAR_T = +BITSIZEOF_WINT_T = CC = gcc CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 @@ -158,12 +158,12 @@ CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps DEPLIBS = -DSYMUTIL = dsymutil +DSYMUTIL = DUMPBIN = -ECHO_C = \c -ECHO_N = +ECHO_C = +ECHO_N = -n ECHO_T = -EGREP = /usr/bin/grep -E +EGREP = /bin/grep -E EMULTIHOP_HIDDEN = EMULTIHOP_VALUE = ENOLINK_HIDDEN = @@ -172,21 +172,21 @@ EOVERFLOW_HIDDEN = EOVERFLOW_VALUE = ERRNO_H = EXEEXT = -EXTRAS = check_ldap check_mysql check_mysql_query check_procs check_nagios check_dns check_hpjd check_snmp check_by_ssh check_dig check_nt +EXTRAS = check_pgsql check_ldap check_ide_smart check_mysql check_mysql_query check_procs check_nagios check_dns check_hpjd check_snmp check_by_ssh check_swap check_dig check_apt check_nt EXTRAS_ROOT = EXTRA_NETOBJS = EXTRA_TEST = -FGREP = /usr/bin/grep -F +FGREP = /bin/grep -F FLOAT_H = -FLOORF_LIBM = +FLOORF_LIBM = -lm GETADDRINFO_LIB = GETHOSTNAME_LIB = GETLOADAVG_LIBS = GETOPT_H = getopt.h GETTEXT_MACRO_VERSION = 0.18 -GLIBC21 = no -GMSGFMT = /opt/local/bin/msgfmt -GMSGFMT_015 = /opt/local/bin/msgfmt +GLIBC21 = yes +GMSGFMT = /usr/bin/msgfmt +GMSGFMT_015 = /usr/bin/msgfmt GNULIB_ACCEPT = 0 GNULIB_ACCEPT4 = 0 GNULIB_ACOSL = 0 @@ -407,7 +407,7 @@ GNULIB_WCSRTOMBS = 0 GNULIB_WCTOB = 0 GNULIB_WCWIDTH = 0 GNULIB_WRITE = 1 -GREP = /usr/bin/grep +GREP = /bin/grep HAVE_ACCEPT4 = 1 HAVE_ACOSL = 1 HAVE_ARPA_INET_H = 1 @@ -425,7 +425,7 @@ HAVE_DECL_ATANL = 1 HAVE_DECL_CEILF = 1 HAVE_DECL_CEILL = 1 HAVE_DECL_COSL = 1 -HAVE_DECL_ENVIRON = 0 +HAVE_DECL_ENVIRON = 1 HAVE_DECL_EXPL = 1 HAVE_DECL_FLOORF = 1 HAVE_DECL_FLOORL = 1 @@ -456,8 +456,8 @@ HAVE_DECL_SINL = 1 HAVE_DECL_SNPRINTF = 1 HAVE_DECL_SQRTL = 1 HAVE_DECL_STRDUP = 1 -HAVE_DECL_STRNDUP = 0 -HAVE_DECL_STRNLEN = 0 +HAVE_DECL_STRNDUP = 1 +HAVE_DECL_STRNLEN = 1 HAVE_DECL_STRSIGNAL = 1 HAVE_DECL_STRTOK_R = 1 HAVE_DECL_TANL = 1 @@ -550,9 +550,9 @@ HAVE_RENAMEAT = 1 HAVE_RPMATCH = 1 HAVE_SA_FAMILY_T = 1 HAVE_SETENV = 1 -HAVE_SIGNED_SIG_ATOMIC_T = 1 -HAVE_SIGNED_WCHAR_T = 1 -HAVE_SIGNED_WINT_T = 1 +HAVE_SIGNED_SIG_ATOMIC_T = +HAVE_SIGNED_WCHAR_T = +HAVE_SIGNED_WINT_T = HAVE_SINL = 1 HAVE_SLEEP = 1 HAVE_SQRTL = 1 @@ -568,13 +568,13 @@ HAVE_STRTOD = 1 HAVE_STRTOLL = 1 HAVE_STRTOULL = 1 HAVE_STRUCT_ADDRINFO = 1 -HAVE_STRUCT_RANDOM_DATA = 0 +HAVE_STRUCT_RANDOM_DATA = 1 HAVE_STRUCT_SOCKADDR_STORAGE = 1 HAVE_STRVERSCMP = 1 HAVE_SYMLINK = 1 HAVE_SYMLINKAT = 1 -HAVE_SYS_BITYPES_H = 0 -HAVE_SYS_INTTYPES_H = 0 +HAVE_SYS_BITYPES_H = +HAVE_SYS_INTTYPES_H = HAVE_SYS_LOADAVG_H = 0 HAVE_SYS_PARAM_H = 0 HAVE_SYS_SOCKET_H = 1 @@ -613,10 +613,10 @@ INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INTLLIBS = -INTL_MACOSX_LIBS = -Wl,-framework -Wl,CoreFoundation +INTL_MACOSX_LIBS = KMEM_GROUP = KRBINCLUDE = -LD = /usr/libexec/gcc/i686-apple-darwin9/4.0.1/ld +LD = /usr/bin/ld -m elf_x86_64 LDAPINCLUDE = -I/usr/include/ldap LDAPLIBS = -lldap -llber LDFLAGS = -L. @@ -625,29 +625,29 @@ LIBGNU_LIBDEPS = LIBGNU_LTLIBDEPS = LIBICONV = -liconv LIBINTL = -LIBOBJS = ${LIBOBJDIR}error$U.o +LIBOBJS = LIBS = -lpthread -ldl LIBSOCKET = LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIPO = lipo +LIPO = LN_S = ln -s LOCALCHARSET_TESTS_ENVIRONMENT = CHARSETALIASDIR="$(top_builddir)/gl" -LOCALE_FR = fr_FR.ISO8859-1 -LOCALE_FR_UTF8 = fr_FR.UTF-8 -LOCALE_JA = ja_JP.eucJP -LOCALE_ZH_CN = zh_CN.GB18030 +LOCALE_FR = none +LOCALE_FR_UTF8 = none +LOCALE_JA = none +LOCALE_ZH_CN = none LTLIBICONV = -liconv LTLIBINTL = -LTLIBOBJS = ${LIBOBJDIR}error$U.lo -MAKEINFO = ${SHELL} /tmp/nagiosplugins/build-aux/missing --run makeinfo +LTLIBOBJS = +MAKEINFO = ${SHELL} /home/nagiosplugins/staging/nagiosplugins/build-aux/missing --run makeinfo MATHLIBS = -lm -MKDIR_P = ../build-aux/install-sh -c -d -MSGFMT = /opt/local/bin/msgfmt -MSGFMT_015 = /opt/local/bin/msgfmt -MSGMERGE = /opt/local/bin/msgmerge -MYSQLCFLAGS = -I/usr/local/mysql/include -Os -arch i386 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL -MYSQLINCLUDE = -I/usr/local/mysql/include -MYSQLLIBS = -L/usr/local/mysql/lib -lmysqlclient -lz -lm +MKDIR_P = /bin/mkdir -p +MSGFMT = /usr/bin/msgfmt +MSGFMT_015 = /usr/bin/msgfmt +MSGMERGE = /usr/bin/msgmerge +MYSQLCFLAGS = -I/usr/include/mysql -DBIG_JOINS=1 -fPIC +MYSQLINCLUDE = -I/usr/include/mysql +MYSQLLIBS = -L/usr/lib/mysql -lmysqlclient NEED_SETGID = false NETINET_IN_H = NEXT_ARPA_INET_H = @@ -692,13 +692,13 @@ NEXT_TIME_H = NEXT_UNISTD_H = NEXT_WCHAR_H = NEXT_WCTYPE_H = -NM = /usr/bin/nm -p -NMEDIT = nmedit +NM = /usr/bin/nm -B +NMEDIT = NP_RELEASE = 1.4.15 -OBJDUMP = false +OBJDUMP = objdump OBJEXT = o -OTOOL = otool -OTOOL64 = : +OTOOL = +OTOOL64 = PACKAGE = nagios-plugins PACKAGE_BUGREPORT = PACKAGE_NAME = nagios-plugins @@ -706,21 +706,21 @@ PACKAGE_STRING = nagios-plugins 1.4.15 PACKAGE_TARNAME = nagios-plugins PACKAGE_VERSION = 1.4.15 PATH_SEPARATOR = : -PATH_TO_APTGET = +PATH_TO_APTGET = /usr/bin/apt-get PATH_TO_DIG = /usr/bin/dig PATH_TO_FPING = PATH_TO_LMSTAT = PATH_TO_LSPS = PATH_TO_MAILQ = /usr/bin/mailq PATH_TO_NSLOOKUP = /usr/bin/nslookup -PATH_TO_PING = /sbin/ping -PATH_TO_PING6 = /sbin/ping6 +PATH_TO_PING = /bin/ping +PATH_TO_PING6 = /bin/ping6 PATH_TO_PS = /bin/ps PATH_TO_QMAIL_QSTAT = PATH_TO_QSTAT = PATH_TO_QUAKESTAT = -PATH_TO_RPCINFO = /usr/sbin/rpcinfo -PATH_TO_SMBCLIENT = /usr/bin/smbclient +PATH_TO_RPCINFO = /usr/bin/rpcinfo +PATH_TO_SMBCLIENT = PATH_TO_SNMPGET = /usr/bin/snmpget PATH_TO_SNMPGETNEXT = /usr/bin/snmpgetnext PATH_TO_SSH = /usr/bin/ssh @@ -730,11 +730,11 @@ PATH_TO_UPTIME = /usr/bin/uptime PATH_TO_WHO = /usr/bin/who PERL = /usr/bin/perl PERLMODS_DIR = -PGINCLUDE = -PGLIBS = -PKG_ARCH = i386 +PGINCLUDE = -I/usr/include/postgresql +PGLIBS = -L/lib -lpq -lcrypt +PKG_ARCH = unknown PLUGIN_TEST = t/check_by_ssh.t t/check_cluster.t t/check_dig.t t/check_disk.t t/check_dns.t t/check_dummy.t t/check_fping.t t/check_ftp.t t/check_hpjd.t t/check_http.t t/check_imap.t t/check_jabber.t t/check_load.t t/check_mysql.t t/check_mysql_query.t t/check_nagios.t t/check_ntp.t t/check_ping.t t/check_pop.t t/check_procs.t t/check_smtp.t t/check_snmp.t t/check_swap.t t/check_tcp.t t/check_time.t t/check_udp.t t/check_users.t t/negate.t -POSUB = +POSUB = po POW_LIB = PRAGMA_SYSTEM_HEADER = #pragma GCC system_header PST3CFLAGS = @@ -808,7 +808,7 @@ REPLACE_NANOSLEEP = GNULIB_PORTCHECK REPLACE_NL_LANGINFO = 0 REPLACE_NULL = 0 REPLACE_OBSTACK_PRINTF = 0 -REPLACE_OPEN = 1 +REPLACE_OPEN = 0 REPLACE_OPENAT = 0 REPLACE_PERROR = 0 REPLACE_POPEN = 0 @@ -825,13 +825,13 @@ REPLACE_RMDIR = 0 REPLACE_ROUND = 0 REPLACE_ROUNDF = 0 REPLACE_ROUNDL = 0 -REPLACE_SETENV = 1 +REPLACE_SETENV = 0 REPLACE_SIGNBIT = 0 REPLACE_SIGNBIT_USING_GCC = 0 REPLACE_SLEEP = 0 REPLACE_SNPRINTF = 0 REPLACE_SPRINTF = 0 -REPLACE_STAT = 1 +REPLACE_STAT = 0 REPLACE_STDIO_WRITE_FUNCS = 0 REPLACE_STPNCPY = 0 REPLACE_STRCASESTR = 0 @@ -866,22 +866,22 @@ REPLACE_WCSRTOMBS = 0 REPLACE_WCTOB = 0 REPLACE_WCWIDTH = 0 REPLACE_WRITE = 0 -REV_DATESTAMP = 2010.07.27.21.48 -REV_TIMESTAMP = 20100727214823 -SCRIPT_TEST = t/check_file_age.t t/check_ifoperstatus.t t/check_ifstatus.t t/check_rpc.t t/utils.t -SED = /usr/bin/sed +REV_DATESTAMP = 2012.06.11.23.00 +REV_TIMESTAMP = 20120611230042 +SCRIPT_TEST = t/check_disk_smb.t t/check_file_age.t t/check_ifoperstatus.t t/check_ifstatus.t t/check_rpc.t t/utils.t +SED = /bin/sed SERVENT_LIB = SET_MAKE = SH = /bin/sh SHELL = /bin/sh SIG_ATOMIC_T_SUFFIX = -SIZE_T_SUFFIX = ul -SOCKETLIBS = -lresolv +SIZE_T_SUFFIX = +SOCKETLIBS = -lnsl -lresolv SSLINCLUDE = -I/usr/include SSLLIBS = -lssl -lcrypto STDBOOL_H = STDDEF_H = -STDINT_H = stdint.h +STDINT_H = STRIP = strip SUPPORT = Send email to nagios-users@lists.sourceforge.net if you have questions\nregarding use of this software. To submit patches or suggest improvements,\nsend email to nagiosplug-devel@lists.sourceforge.net.\nPlease include version information with all correspondence (when possible,\nuse output from the --version option of the plugin itself).\n SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = 0 @@ -889,18 +889,18 @@ TIME_H_DEFINES_STRUCT_TIMESPEC = 1 UNDEFINE_STRTOK_R = 0 UNISTD_H_HAVE_WINSOCK2_H = 0 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = 0 -USE_NLS = no +USE_NLS = yes VERSION = 1.4.15 WARRANTY = The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\ncopies of the plugins under the terms of the GNU General Public License.\nFor more information about these matters, see the file named COPYING.\n WCHAR_T_SUFFIX = WINT_T_SUFFIX = -XGETTEXT = /opt/local/bin/xgettext -XGETTEXT_015 = /opt/local/bin/xgettext +XGETTEXT = /usr/bin/xgettext +XGETTEXT_015 = /usr/bin/xgettext XGETTEXT_EXTRA_OPTIONS = --flag=error:3:c-format --flag=error_at_line:5:c-format --flag=asprintf:2:c-format --flag=vasprintf:2:c-format -abs_builddir = /tmp/nagiosplugins/perlmods -abs_srcdir = /tmp/nagiosplugins/perlmods -abs_top_builddir = /tmp/nagiosplugins -abs_top_srcdir = /tmp/nagiosplugins +abs_builddir = /home/nagiosplugins/staging/nagiosplugins/perlmods +abs_srcdir = /home/nagiosplugins/staging/nagiosplugins/perlmods +abs_top_builddir = /home/nagiosplugins/staging/nagiosplugins +abs_top_srcdir = /home/nagiosplugins/staging/nagiosplugins ac_ct_CC = gcc ac_ct_DUMPBIN = am__include = include @@ -909,11 +909,11 @@ am__quote = am__tar = ${AMTAR} chof - "$$tardir" am__untar = ${AMTAR} xf - bindir = ${exec_prefix}/bin -build = i386-apple-darwin9.8.0 +build = x86_64-unknown-linux-gnu build_alias = -build_cpu = i386 -build_os = darwin9.8.0 -build_vendor = apple +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown builddir = . check_tcp_ssl = check_simap check_spop check_jabber check_nntps check_ssmtp datadir = ${datarootdir} @@ -921,28 +921,28 @@ datarootdir = ${prefix}/share docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} dvidir = ${docdir} exec_prefix = ${prefix} -gl_LIBOBJS = asnprintf.o basename.o basename-lgpl.o c-strtod.o cloexec.o creat-safer.o dirname.o dirname-lgpl.o dup-safer.o error.o fcntl.o fd-safer.o fsusage.o getopt.o getopt1.o mountlist.o open.o open-safer.o pipe-safer.o printf-args.o printf-parse.o regex.o safe-read.o safe-write.o setenv.o sha1.o stat.o stripslash.o strndup.o strnlen.o vasnprintf.o xmalloc.o -gl_LTLIBOBJS = asnprintf.lo basename.lo basename-lgpl.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dirname-lgpl.lo dup-safer.lo error.lo fcntl.lo fd-safer.lo fsusage.lo getopt.lo getopt1.lo mountlist.lo open.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo regex.lo safe-read.lo safe-write.lo setenv.lo sha1.lo stat.lo stripslash.lo strndup.lo strnlen.lo vasnprintf.lo xmalloc.lo +gl_LIBOBJS = asnprintf.o basename.o basename-lgpl.o c-strtod.o cloexec.o creat-safer.o dirname.o dirname-lgpl.o dup-safer.o fcntl.o fd-safer.o fsusage.o getopt.o getopt1.o mountlist.o open-safer.o pipe-safer.o printf-args.o printf-parse.o regex.o safe-read.o safe-write.o sha1.o stripslash.o vasnprintf.o xmalloc.o +gl_LTLIBOBJS = asnprintf.lo basename.lo basename-lgpl.lo c-strtod.lo cloexec.lo creat-safer.lo dirname.lo dirname-lgpl.lo dup-safer.lo fcntl.lo fd-safer.lo fsusage.lo getopt.lo getopt1.lo mountlist.lo open-safer.lo pipe-safer.lo printf-args.lo printf-parse.lo regex.lo safe-read.lo safe-write.lo sha1.lo stripslash.lo vasnprintf.lo xmalloc.lo gltests_LIBOBJS = gltests_LTLIBOBJS = gltests_WITNESS = IN_NAGIOS_PLUGINS_GNULIB_TESTS -host = i386-apple-darwin9.8.0 +host = x86_64-unknown-linux-gnu host_alias = -host_cpu = i386 -host_os = darwin9.8.0 -host_vendor = apple +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown htmldir = ${docdir} includedir = ${prefix}/include infodir = ${datarootdir}/info -install_sh = $(SHELL) /tmp/nagiosplugins/build-aux/install-sh +install_sh = $(SHELL) /home/nagiosplugins/staging/nagiosplugins/build-aux/install-sh libdir = ${exec_prefix}/lib libexecdir = ${exec_prefix}/libexec localedir = ${datarootdir}/locale localstatedir = ${prefix}/var -lt_ECHO = /bin/echo +lt_ECHO = echo mandir = ${datarootdir}/man -mkdir_p = $(top_builddir)/build-aux/install-sh -c -d -np_mysql_config = /usr/local/mysql/bin/mysql_config +mkdir_p = /bin/mkdir -p +np_mysql_config = /usr/bin/mysql_config oldincludedir = /usr/include pdfdir = ${docdir} prefix = /usr/local/nagios diff --git a/perlmods/Makefile.in b/perlmods/Makefile.in index dcad73b..00e13be 100644 --- a/perlmods/Makefile.in +++ b/perlmods/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. diff --git a/perlmods/Nagios-Plugin-0.34.tar.gz b/perlmods/Nagios-Plugin-0.34.tar.gz deleted file mode 100644 index d3182d24875f149406832b53628882afa8f8f5b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44846 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 /dev/null 2> /dev/null +result=$? +if [ $result -eq 2 ] ; then + echo "Group $group does not exist. Creating..." + if [ $gid -ne -1 ] ; then + /usr/sbin/groupadd -g $gid $group + else + /usr/sbin/groupadd $group + fi +elif [ $result -ne 0 ] ; then + echo "An error occurred determining the existence of the groug $group. Terminating." + exit 1; +fi + +/usr/bin/getent passwd $user > /dev/null 2> /dev/null +result=$? +if [ $result -eq 2 ] ; then + echo "User $user does not exist. Creating..." + if [ $uid -ne -1 ] ; then + /usr/sbin/useradd -u $uid -g $group $user + else + /usr/sbin/useradd -g $group $user + fi +elif [ $result -ne 0 ] ; then + echo "An error occurred determining the existence of the user $user. Terminating." + exit 1; +fi + diff --git a/pkg/solaris/solpkg b/pkg/solaris/solpkg index 41d8e17..a21176e 100755 --- a/pkg/solaris/solpkg +++ b/pkg/solaris/solpkg @@ -8,6 +8,7 @@ $pkgmk = "/usr/bin/pkgmk"; $pkgtrans = "/usr/bin/pkgtrans"; $prototype = "prototype"; $pkginfo = "pkginfo"; +$preinstall = "preinstall"; $egrep = "/usr/bin/egrep"; # Sanity check @@ -24,17 +25,24 @@ open (PREPROTO,"$find . -print |$egrep -v \"^\.(/usr(/local)?|/opt)?\$\" | $pkgp open (PROTO,">$prototype") || die "Unable to write file prototype ($!)\n"; print PROTO "i pkginfo=./$pkginfo\n"; +print PROTO "i preinstall=./$preinstall\n"; while () { # Read in the prototype information chomp; $thisline = $_; if ($thisline =~ " prototype " - or $thisline =~ " pkginfo ") { + or $thisline =~ " pkginfo " + or $thisline =~ " preinstall ") { # Don't do anything as they aren't important + } elsif ($thisline =~ "pst3") { + # Needs to be installed SUID root + ($dir, $none, $file, $mode, $user, $group) = split / /,$thisline; + print PROTO "$dir $none $file 4755 root bin\n"; + } elsif ($thisline =~ "^[fd] ") { # Change the ownership of files and directories ($dir, $none, $file, $mode, $user, $group) = split / /,$thisline; - print PROTO "$dir $none $file $mode bin bin\n"; + print PROTO "$dir $none $file $mode $user bin\n"; } else { # Symlinks and other stuff should be printed also print PROTO "$thisline\n"; @@ -58,6 +66,7 @@ while () { $thisline = $_; ($var,$value) = split /=/,$thisline; if ("$var" eq "NAME" + or "$var" eq "PKG" or "$var" eq "VERSION" or "$var" eq "ARCH") { $tmp = lc($var); @@ -77,5 +86,5 @@ $packagename = "$name-$version-$os-$arch-local"; print "Building package\n"; system ("$pkgmk -o -r `pwd` -d $pkgdevice"); -system ("(cd $pkgdevice && $pkgtrans -s `pwd` ../$packagename)"); +system ("(cd $pkgdevice && $pkgtrans -s `pwd` ../$packagename $pkg)"); print "Done. ($packagename)\n"; diff --git a/plugins-root/Makefile.in b/plugins-root/Makefile.in index df2e7c7..45dcdac 100644 --- a/plugins-root/Makefile.in +++ b/plugins-root/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -147,7 +147,7 @@ pst3_LDADD = $(LDADD) pst3_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(pst3_CFLAGS) $(CFLAGS) $(pst3_LDFLAGS) \ $(LDFLAGS) -o $@ -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1133,8 +1133,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1146,8 +1146,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1157,13 +1157,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c index 6d8ba09..fe8fc56 100644 --- a/plugins-root/check_icmp.c +++ b/plugins-root/check_icmp.c @@ -621,7 +621,7 @@ main(int argc, char **argv) } host = list; - table = malloc(sizeof(struct rta_host **) * (argc - 1)); + table = malloc(sizeof(struct rta_host **) * targets); i = 0; while(host) { host->id = i*packets; diff --git a/plugins-scripts/Makefile.in b/plugins-scripts/Makefile.in index 76d659a..a069afc 100644 --- a/plugins-scripts/Makefile.in +++ b/plugins-scripts/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. diff --git a/plugins-scripts/check_disk_smb.pl b/plugins-scripts/check_disk_smb.pl index 7c81fc2..6783543 100755 --- a/plugins-scripts/check_disk_smb.pl +++ b/plugins-scripts/check_disk_smb.pl @@ -67,7 +67,7 @@ my $host = $1 if ($opt_H =~ /^([-_.A-Za-z0-9 ]+\$?)$/); ($host) || usage("Invalid host: $opt_H\n"); ($opt_s) || ($opt_s = shift @ARGV) || usage("Share volume not specified\n"); -my $share = $1 if ($opt_s =~ /^([-_.A-Za-z0-9]+\$?)$/); +my $share = $1 if ($opt_s =~ /^([-_.A-Za-z0-9 ]+\$?)$/); ($share) || usage("Invalid share: $opt_s\n"); defined($opt_u) || ($opt_u = shift @ARGV) || ($opt_u = "guest"); @@ -239,7 +239,7 @@ if (/\s*(\d*) blocks of size (\d*)\. (\d*) blocks available/) { $answer = "Result from smbclient not suitable\n"; $state = "UNKNOWN"; foreach (@lines) { - if (/(Access denied|NT_STATUS_LOGON_FAILURE)/) { + if (/(Access denied|NT_STATUS_LOGON_FAILURE|NT_STATUS_ACCESS_DENIED)/) { $answer = "Access Denied\n"; $state = "CRITICAL"; last; diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index ae80fc4..ffaa974 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -10,7 +10,7 @@ REVISION="@NP_VERSION@" print_usage() { - echo "Usage: $PROGNAME" + echo "Usage: $PROGNAME" [--ignore-fault] } print_help() { @@ -21,25 +21,25 @@ print_help() { echo "This plugin checks hardware status using the lm_sensors package." echo "" support - exit 0 + exit $STATE_OK } case "$1" in --help) print_help - exit 0 + exit $STATE_OK ;; -h) print_help - exit 0 + exit $STATE_OK ;; --version) - print_revision $PROGNAME $REVISION - exit 0 + print_revision $PROGNAME $REVISION + exit $STATE_OK ;; -V) print_revision $PROGNAME $REVISION - exit 0 + exit $STATE_OK ;; *) sensordata=`sensors 2>&1` @@ -49,17 +49,20 @@ case "$1" in fi if test ${status} -eq 127; then echo "SENSORS UNKNOWN - command not found (did you install lmsensors?)" - exit -1 - elif test ${status} -ne 0 ; then + exit $STATE_UNKNOWN + elif test ${status} -ne 0; then echo "WARNING - sensors returned state $status" - exit 1 + exit $STATE_WARNING fi if echo ${sensordata} | egrep ALARM > /dev/null; then echo SENSOR CRITICAL - Sensor alarm detected! - exit 2 - else - echo sensor ok - exit 0 + exit $STATE_CRITICAL + elif echo ${sensordata} | egrep FAULT > /dev/null \ + && test "$1" != "-i" -a "$1" != "--ignore-fault"; then + echo SENSOR UNKNOWN - Sensor reported fault + exit $STATE_UNKNOWN fi + echo sensor ok + exit $STATE_OK ;; esac diff --git a/plugins-scripts/t/check_disk_smb.t b/plugins-scripts/t/check_disk_smb.t new file mode 100644 index 0000000..bd43c9c --- /dev/null +++ b/plugins-scripts/t/check_disk_smb.t @@ -0,0 +1,96 @@ +#! /usr/bin/perl -w -I .. +# +# test cases for check_disk_smb +# + +use strict; +use Test::More; +use NPTest; + +my $tests = 14; +plan tests => $tests; +my $res; + +my $plugin = "check_disk_smb"; +SKIP: { + skip "$plugin is not created", $tests if ( ! -x $plugin ); + my $auth = ""; + + my $host = getTestParameter("NP_HOST_SMB", "A host providing an SMB Service", + "localhost"); + + my $smb_share = getTestParameter("NP_SMB_SHARE", + "An SMB share name the host provides", + "public"); + + my $smb_share_spc = getTestParameter("NP_SMB_SHARE_SPC", + "An SMB share name containing one or more spaces the host provides", + "pub lic"); + + my $smb_share_deny = getTestParameter("NP_SMB_SHARE_DENY", + "An access denying SMB share name the host provides", + "private"); + + my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", + "The hostname of system not responsive to network requests", "10.0.0.1" ); + + my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", + "An invalid (not known to DNS) hostname", + "nosuchhost" ); + my $user = getTestParameter( "NP_SMB_VALID_USER", "A valid smb user", "" ); + my $pass = getTestParameter( "NP_SMB_VALID_USER_PASS", "A valid password for valid smb user", "" ); + $auth .= "-u $user " if ($user); + $auth .= "-p $pass " if ($pass); + + + + $res = NPTest->testCmd( "./$plugin" ); + is( $res->return_code, 3, "No arguments" ); + + $res = NPTest->testCmd( "./$plugin -H fakehostname" ); + is( $res->return_code, 3, "No share specified" ); + + $res = NPTest->testCmd( "./$plugin -H fakehostname -s share -w 100G -c 101G" ); + is( $res->return_code, 3, "warn is less than critical" ); + + SKIP: { + skip "no smb host defined", 6 if ( ! $host ); + + SKIP: { + skip "no share name defined", 2 if ( ! $smb_share ); + $res = NPTest->testCmd( "./$plugin -H $host $auth -s $smb_share -w 2k -c 1k" ); + cmp_ok( $res->return_code, '==', 0, "Exit OK if $smb_share has > 1k free space"); + like($res->output, '/free/i', "String contains the word 'free'"); + + $res = NPTest->testCmd( "./$plugin -H $host $auth -s $smb_share -w 10001G -c 10000G" ); + cmp_ok( $res->return_code, '==', 2, "Exit CRIT if $smb_share has < 10000G free space"); + like($res->output, '/free/i', "String contains the word 'free'"); + + $res = NPTest->testCmd( "./$plugin -H $host $auth -s $smb_share -w 10000G -c 1k" ); + cmp_ok( $res->return_code, '==', 1, "Exit WARN if $smb_share has > 10000G and <1k free space"); + like($res->output, '/free/i', "String contains the word 'free'"); + } + + SKIP: { + skip "no share name containing spaces defined", 2 if ( ! $smb_share_spc ); + $res = NPTest->testCmd( "./$plugin -H $host $auth -s '$smb_share_spc' -w 2k -c 1k" ); + cmp_ok( $res->return_code, '==', 0, "Exit OK if '$smb_share_spc' has > 1k free space"); + like($res->output, '/free/i', "String contains the word 'free'"); + + } + SKIP: { + skip "no share name without permissions ", 2 if ( ! $smb_share_deny ); + $res = NPTest->testCmd( "./$plugin -H $host $auth -s $smb_share_deny -w 2k -c 1k" ); + cmp_ok( $res->return_code, '==', 2, "Exit CRIT if $smb_share_deny has > 1k free space"); + unlike($res->output, '/free/i', "String does not contain the word 'free'"); + + } + } + + SKIP: { + skip "no non responsive host defined", 1 if ( ! $host_nonresponsive ); + $res = NPTest->testCmd( "./$plugin -H $host_nonresponsive -s np_foobar "); + cmp_ok( $res->return_code, '==', 3, "Exit UNKNOWN with non responsive host" ); + } + +} diff --git a/plugins-scripts/utils.sh.in b/plugins-scripts/utils.sh.in index b30b908..5fae6ad 100644 --- a/plugins-scripts/utils.sh.in +++ b/plugins-scripts/utils.sh.in @@ -21,3 +21,88 @@ support() { $ECHO "@SUPPORT@" | sed -e 's/\n/ /g' } +# +# check_range takes a value and a range string, returning successfully if an +# alert should be raised based on the range. +# +check_range() { + local v range yes no err decimal start end cmp match + v="$1" + range="$2" + + # whether to raise an alert or not + yes=0 + no=1 + err=2 + + # regex to match a decimal number + decimal="-?([0-9]+\.?[0-9]*|[0-9]*\.[0-9]+)" + + # compare numbers (including decimals), returning true/false + cmp() { awk "BEGIN{ if ($1) exit(0); exit(1)}"; } + + # returns successfully if the string in the first argument matches the + # regex in the second + match() { echo "$1" | grep -E -q -- "$2"; } + + # make sure value is valid + if ! match "$v" "^$decimal$"; then + echo "${0##*/}: check_range: invalid value" >&2 + unset -f cmp match + return "$err" + fi + + # make sure range is valid + if ! match "$range" "^@?(~|$decimal)(:($decimal)?)?$"; then + echo "${0##*/}: check_range: invalid range" >&2 + unset -f cmp match + return "$err" + fi + + # check for leading @ char, which negates the range + if match $range '^@'; then + range=${range#@} + yes=1 + no=0 + fi + + # parse the range string + if ! match "$range" ':'; then + start=0 + end="$range" + else + start="${range%%:*}" + end="${range#*:}" + fi + + # do the comparison, taking positive ("") and negative infinity ("~") + # into account + if [ "$start" != "~" ] && [ "$end" != "" ]; then + if cmp "$start <= $v" && cmp "$v <= $end"; then + unset -f cmp match + return "$no" + else + unset -f cmp match + return "$yes" + fi + elif [ "$start" != "~" ] && [ "$end" = "" ]; then + if cmp "$start <= $v"; then + unset -f cmp match + return "$no" + else + unset -f cmp match + return "$yes" + fi + elif [ "$start" = "~" ] && [ "$end" != "" ]; then + if cmp "$v <= $end"; then + unset -f cmp match + return "$no" + else + unset -f cmp match + return "$yes" + fi + else + unset -f cmp match + return "$no" + fi +} diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 36a28b0..3a2afc1 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -101,7 +101,7 @@ check_tcp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS) check_time_LDADD = $(NETLIBS) check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) check_ups_LDADD = $(NETLIBS) -check_users_LDADD = $(BASEOBJS) popen.o +check_users_LDADD = $(BASEOBJS) check_by_ssh_LDADD = $(NETLIBS) check_ide_smart_LDADD = $(BASEOBJS) negate_LDADD = $(BASEOBJS) diff --git a/plugins/Makefile.in b/plugins/Makefile.in index 057a075..fd01738 100644 --- a/plugins/Makefile.in +++ b/plugins/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -239,7 +239,7 @@ negate_SOURCES = negate.c negate_OBJECTS = negate.$(OBJEXT) urlize_SOURCES = urlize.c urlize_OBJECTS = urlize.$(OBJEXT) -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1159,7 +1159,7 @@ check_tcp_LDADD = $(SSLOBJS) $(NETLIBS) $(SSLLIBS) check_time_LDADD = $(NETLIBS) check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) check_ups_LDADD = $(NETLIBS) -check_users_LDADD = $(BASEOBJS) popen.o +check_users_LDADD = $(BASEOBJS) check_by_ssh_LDADD = $(NETLIBS) check_ide_smart_LDADD = $(BASEOBJS) negate_LDADD = $(BASEOBJS) @@ -1246,8 +1246,8 @@ install-libexecPROGRAMS: $(libexec_PROGRAMS) || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \ else :; fi; \ done @@ -1493,8 +1493,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1506,8 +1506,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1517,13 +1517,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique diff --git a/plugins/check_by_ssh.c b/plugins/check_by_ssh.c index ff27b39..8752016 100644 --- a/plugins/check_by_ssh.c +++ b/plugins/check_by_ssh.c @@ -187,6 +187,7 @@ process_arguments (int argc, char **argv) {"use-ipv6", no_argument, 0, '6'}, {"ssh-option", required_argument, 0, 'o'}, {"quiet", no_argument, 0, 'q'}, + {"configfile", optional_argument, 0, 'F'}, {0, 0, 0, 0} }; @@ -198,7 +199,7 @@ process_arguments (int argc, char **argv) strcpy (argv[c], "-t"); while (1) { - c = getopt_long (argc, argv, "Vvh1246fqt:H:O:p:i:u:l:C:S::E::n:s:o:", longopts, + c = getopt_long (argc, argv, "Vvh1246fqt:H:O:p:i:u:l:C:S::E::n:s:o:F:", longopts, &option); if (c == -1 || c == EOF) @@ -306,6 +307,10 @@ process_arguments (int argc, char **argv) case 'q': /* Tell the ssh command to be quiet */ comm_append("-q"); break; + case 'F': /* ssh configfile */ + comm_append("-F"); + comm_append(optarg); + break; default: /* help */ usage5(); } @@ -418,6 +423,8 @@ print_help (void) printf (" %s\n", _("short name of host in nagios configuration [optional]")); printf (" %s\n","-o, --ssh-option=OPTION"); printf (" %s\n", _("Call ssh with '-o OPTION' (may be used multiple times) [optional]")); + printf (" %s\n","-F, --configfile"); + printf (" %s\n", _("Tell ssh to use this configfile [optional]")); printf (" %s\n","-q, --quiet"); printf (" %s\n", _("Tell ssh to suppress warning and diagnostic messages [optional]")); printf (UT_WARN_CRIT); @@ -454,6 +461,6 @@ print_usage (void) printf (" %s -H -C [-fqv] [-1|-2] [-4|-6]\n" " [-S [lines]] [-E [lines]] [-t timeout] [-i identity]\n" " [-l user] [-n name] [-s servicelist] [-O outputfile]\n" - " [-p port] [-o ssh-option]\n", + " [-p port] [-o ssh-option] [-F configfile]\n", progname); } diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 851d800..f889764 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -122,6 +122,8 @@ void print_help (void); void print_usage (void); double calculate_percent(uintmax_t, uintmax_t); void stat_path (struct parameter_list *p); +void get_stats (struct parameter_list *p, struct fs_usage *fsp); +void get_path_stats (struct parameter_list *p, struct fs_usage *fsp); double w_dfp = -1.0; double c_dfp = -1.0; @@ -148,6 +150,7 @@ char *crit_freeinodes_percent = NULL; int path_selected = FALSE; char *group = NULL; struct stat *stat_buf; +struct name_list *seen = NULL; int @@ -160,10 +163,6 @@ main (int argc, char **argv) char *perf; char *preamble; double inode_space_pct; - uintmax_t total, available, available_to_root, used; - double dfree_pct = -1, dused_pct = -1; - double dused_units, dfree_units, dtotal_units; - double dused_inodes_percent, dfree_inodes_percent; double warning_high_tide; double critical_high_tide; int temp_result; @@ -171,7 +170,6 @@ main (int argc, char **argv) struct mount_entry *me; struct fs_usage fsp, tmpfsp; struct parameter_list *temp_list, *path; - struct name_list *seen = NULL; preamble = strdup (" - free space:"); output = strdup (""); @@ -237,45 +235,8 @@ main (int argc, char **argv) /* Remove filesystems already seen */ if (np_seen_name(seen, me->me_mountdir)) { continue; - } else { - if (path->group != NULL) { - /* find all group members */ - fsp.fsu_blocksize = 0; - fsp.fsu_blocks = 0; - fsp.fsu_bfree = 0; - fsp.fsu_bavail = 0; - fsp.fsu_files = 0; - fsp.fsu_ffree = 0; - - - for (temp_list = path_select_list; temp_list; temp_list=temp_list->name_next) { - if (temp_list->group && ! (strcmp(temp_list->group, path->group))) { - - stat_path(path); - get_fs_usage (temp_list->best_match->me_mountdir, temp_list->best_match->me_devname, &tmpfsp); - - /* possibly differing blocksizes if disks are grouped. Calculating average */ - fsp.fsu_blocksize = (fsp.fsu_blocksize * fsp.fsu_blocks + tmpfsp.fsu_blocksize * tmpfsp.fsu_blocks) / \ - (fsp.fsu_blocks + tmpfsp.fsu_blocks); /* Size of a block. */ - fsp.fsu_blocks += tmpfsp.fsu_blocks; /* Total blocks. */ - fsp.fsu_bfree += tmpfsp.fsu_bfree; /* Free blocks available to superuser. */ - /* Gnulib workaround - see comment about it a few lines below */ - fsp.fsu_bavail += (tmpfsp.fsu_bavail > tmpfsp.fsu_bfree ? 0 : tmpfsp.fsu_bavail); /* Free blocks available to non-superuser. */ - fsp.fsu_files += tmpfsp.fsu_files; /* Total file nodes. */ - fsp.fsu_ffree += tmpfsp.fsu_ffree; /* Free file nodes. */ - - if (verbose >= 3) - printf("Group %s: add %llu blocks (%s) \n", path->group, tmpfsp.fsu_bavail, temp_list->name); - /* printf("Group %s: add %u blocks (%s)\n", temp_list->name); *//* path->group, tmpfsp.fsu_bavail, temp_list->name); */ - - np_add_name(&seen, temp_list->best_match->me_mountdir); - } - } - /* modify devname and mountdir for output */ - me->me_mountdir = me->me_devname = path->group; - } else - np_add_name(&seen, me->me_mountdir); - } + } + np_add_name(&seen, me->me_mountdir); if (path->group == NULL) { /* Skip remote filesystems if we're not interested in them */ @@ -301,55 +262,36 @@ main (int argc, char **argv) } if (fsp.fsu_blocks && strcmp ("none", me->me_mountdir)) { - total = fsp.fsu_blocks; - /* 2007-12-08 - Workaround for Gnulib reporting insanely high available - * space on BSD (the actual value should be negative but fsp.fsu_bavail - * is unsigned) */ - available = fsp.fsu_bavail > fsp.fsu_bfree ? 0 : fsp.fsu_bavail; - available_to_root = fsp.fsu_bfree; - used = total - available_to_root; - - if (verbose >= 3) - printf ("For %s, total=%llu, available=%llu, available_to_root=%llu, used=%llu, fsp.fsu_files=%llu, fsp.fsu_ffree=%llu\n", - me->me_mountdir, total, available, available_to_root, used, fsp.fsu_files, fsp.fsu_ffree); - - dused_pct = calculate_percent( used, used + available ); /* used + available can never be > uintmax */ - - dfree_pct = 100 - dused_pct; - dused_units = used*fsp.fsu_blocksize/mult; - dfree_units = available*fsp.fsu_blocksize/mult; - dtotal_units = total*fsp.fsu_blocksize/mult; - dused_inodes_percent = calculate_percent(fsp.fsu_files - fsp.fsu_ffree, fsp.fsu_files); - dfree_inodes_percent = 100 - dused_inodes_percent; + get_stats (path, &fsp); if (verbose >= 3) { printf ("For %s, used_pct=%g free_pct=%g used_units=%g free_units=%g total_units=%g used_inodes_pct=%g free_inodes_pct=%g fsp.fsu_blocksize=%llu mult=%llu\n", - me->me_mountdir, dused_pct, dfree_pct, dused_units, dfree_units, dtotal_units, dused_inodes_percent, dfree_inodes_percent, fsp.fsu_blocksize, mult); + me->me_mountdir, path->dused_pct, path->dfree_pct, path->dused_units, path->dfree_units, path->dtotal_units, path->dused_inodes_percent, path->dfree_inodes_percent, fsp.fsu_blocksize, mult); } /* Threshold comparisons */ - temp_result = get_status(dfree_units, path->freespace_units); + temp_result = get_status(path->dfree_units, path->freespace_units); if (verbose >=3) printf("Freespace_units result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); - temp_result = get_status(dfree_pct, path->freespace_percent); + temp_result = get_status(path->dfree_pct, path->freespace_percent); if (verbose >=3) printf("Freespace%% result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); - temp_result = get_status(dused_units, path->usedspace_units); + temp_result = get_status(path->dused_units, path->usedspace_units); if (verbose >=3) printf("Usedspace_units result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); - temp_result = get_status(dused_pct, path->usedspace_percent); + temp_result = get_status(path->dused_pct, path->usedspace_percent); if (verbose >=3) printf("Usedspace_percent result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); - temp_result = get_status(dused_inodes_percent, path->usedinodes_percent); + temp_result = get_status(path->dused_inodes_percent, path->usedinodes_percent); if (verbose >=3) printf("Usedinodes_percent result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); - temp_result = get_status(dfree_inodes_percent, path->freeinodes_percent); + temp_result = get_status(path->dfree_inodes_percent, path->freeinodes_percent); if (verbose >=3) printf("Freeinodes_percent result=%d\n", temp_result); disk_result = max_state( disk_result, temp_result ); @@ -365,26 +307,26 @@ main (int argc, char **argv) critical_high_tide = UINT_MAX; if (path->freespace_units->warning != NULL) { - warning_high_tide = dtotal_units - path->freespace_units->warning->end; + warning_high_tide = path->dtotal_units - path->freespace_units->warning->end; } if (path->freespace_percent->warning != NULL) { - warning_high_tide = abs( min( (double) warning_high_tide, (double) (1.0 - path->freespace_percent->warning->end/100)*dtotal_units )); + warning_high_tide = abs( min( (double) warning_high_tide, (double) (1.0 - path->freespace_percent->warning->end/100)*path->dtotal_units )); } if (path->freespace_units->critical != NULL) { - critical_high_tide = dtotal_units - path->freespace_units->critical->end; + critical_high_tide = path->dtotal_units - path->freespace_units->critical->end; } if (path->freespace_percent->critical != NULL) { - critical_high_tide = abs( min( (double) critical_high_tide, (double) (1.0 - path->freespace_percent->critical->end/100)*dtotal_units )); + critical_high_tide = abs( min( (double) critical_high_tide, (double) (1.0 - path->freespace_percent->critical->end/100)*path->dtotal_units )); } /* Nb: *_high_tide are unset when == UINT_MAX */ asprintf (&perf, "%s %s", perf, perfdata ((!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, - dused_units, units, + path->dused_units, units, (warning_high_tide != UINT_MAX ? TRUE : FALSE), warning_high_tide, (critical_high_tide != UINT_MAX ? TRUE : FALSE), critical_high_tide, TRUE, 0, - TRUE, dtotal_units)); + TRUE, path->dtotal_units)); if (disk_result==STATE_OK && erronly && !verbose) continue; @@ -392,13 +334,13 @@ main (int argc, char **argv) asprintf (&output, "%s %s %.0f %s (%.0f%%", output, (!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, - dfree_units, + path->dfree_units, units, - dfree_pct); - if (dused_inodes_percent < 0) { + path->dfree_pct); + if (path->dused_inodes_percent < 0) { asprintf(&output, "%s inode=-);", output); } else { - asprintf(&output, "%s inode=%.0f%%);", output, dfree_inodes_percent ); + asprintf(&output, "%s inode=%.0f%%);", output, path->dfree_inodes_percent ); } /* TODO: Need to do a similar debug line @@ -996,3 +938,74 @@ stat_path (struct parameter_list *p) die (STATE_CRITICAL, _("%s %s: %s\n"), p->name, _("is not accessible"), strerror(errno)); } } + + +void +get_stats (struct parameter_list *p, struct fs_usage *fsp) { + struct parameter_list *p_list; + struct fs_usage tmpfsp; + int first = 1; + + if (p->group == NULL) { + get_path_stats(p,fsp); + } else { + /* find all group members */ + for (p_list = path_select_list; p_list; p_list=p_list->name_next) { + if (p_list->group && ! (strcmp(p_list->group, p->group))) { + stat_path(p_list); + get_fs_usage (p_list->best_match->me_mountdir, p_list->best_match->me_devname, &tmpfsp); + get_path_stats(p_list, &tmpfsp); + if (verbose >= 3) + printf("Group %s: adding %llu blocks sized %llu, (%s) used_units=%g free_units=%g total_units=%g fsu_blocksize=%llu mult=%llu\n", + p_list->group, tmpfsp.fsu_bavail, tmpfsp.fsu_blocksize, p_list->best_match->me_mountdir, p_list->dused_units, p_list->dfree_units, + p_list->dtotal_units, mult); + + /* prevent counting the first FS of a group twice since its parameter_list entry + * is used to carry the information of all file systems of the entire group */ + if (! first) { + p->total += p_list->total; + p->available += p_list->available; + p->available_to_root += p_list->available_to_root; + p->used += p_list->used; + + p->dused_units += p_list->dused_units; + p->dfree_units += p_list->dfree_units; + p->dtotal_units += p_list->dtotal_units; + p->inodes_total += p_list->inodes_total; + p->inodes_free += p_list->inodes_free; + } + first = 0; + } + if (verbose >= 3) + printf("Group %s now has: used_units=%g free_units=%g total_units=%g fsu_blocksize=%llu mult=%llu\n", + p->group, tmpfsp.fsu_bavail, tmpfsp.fsu_blocksize, p->best_match->me_mountdir, p->dused_units, + p->dfree_units, p->dtotal_units, mult); + } + /* modify devname and mountdir for output */ + p->best_match->me_mountdir = p->best_match->me_devname = p->group; + } + /* finally calculate percentages for either plain FS or summed up group */ + p->dused_pct = calculate_percent( p->used, p->used + p->available ); /* used + available can never be > uintmax */ + p->dfree_pct = 100 - p->dused_pct; + p->dused_inodes_percent = calculate_percent(p->inodes_total - p->inodes_free, p->inodes_total); + p->dfree_inodes_percent = 100 - p->dused_inodes_percent; + +} + +void +get_path_stats (struct parameter_list *p, struct fs_usage *fsp) { + p->total = fsp->fsu_blocks; + /* 2007-12-08 - Workaround for Gnulib reporting insanely high available + * space on BSD (the actual value should be negative but fsp->fsu_bavail + * is unsigned) */ + p->available = fsp->fsu_bavail > fsp->fsu_bfree ? 0 : fsp->fsu_bavail; + p->available_to_root = fsp->fsu_bfree; + p->used = p->total - p->available_to_root; + + p->dused_units = p->used*fsp->fsu_blocksize/mult; + p->dfree_units = p->available*fsp->fsu_blocksize/mult; + p->dtotal_units = p->total*fsp->fsu_blocksize/mult; + p->inodes_total = fsp->fsu_files; /* Total file nodes. */ + p->inodes_free = fsp->fsu_ffree; /* Free file nodes. */ + np_add_name(&seen, p->best_match->me_mountdir); +} diff --git a/plugins/check_http.c b/plugins/check_http.c index f08ad17..315848f 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c @@ -34,7 +34,7 @@ /* splint -I. -I../../plugins -I../../lib/ -I/usr/kerberos/include/ ../../plugins/check_http.c */ const char *progname = "check_http"; -const char *copyright = "1999-2008"; +const char *copyright = "1999-2011"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" @@ -59,6 +59,7 @@ enum { #ifdef HAVE_SSL int check_cert = FALSE; int days_till_exp; +int ssl_version; char *randbuff; X509 *server_cert; # define my_recv(buf, len) ((use_ssl) ? np_net_ssl_read(buf, len) : read(sd, buf, len)) @@ -101,10 +102,9 @@ int server_expect_yn = 0; char server_expect[MAX_INPUT_BUFFER] = HTTP_EXPECT; char string_expect[MAX_INPUT_BUFFER] = ""; char output_string_search[30] = ""; -double warning_time = 0; -int check_warning_time = FALSE; -double critical_time = 0; -int check_critical_time = FALSE; +char *warning_thresholds = NULL; +char *critical_thresholds = NULL; +thresholds *thlds; char user_auth[MAX_INPUT_BUFFER] = ""; char proxy_auth[MAX_INPUT_BUFFER] = ""; int display_html = FALSE; @@ -189,7 +189,7 @@ process_arguments (int argc, char **argv) STD_LONG_OPTS, {"link", no_argument, 0, 'L'}, {"nohtml", no_argument, 0, 'n'}, - {"ssl", no_argument, 0, 'S'}, + {"ssl", optional_argument, 0, 'S'}, {"sni", no_argument, 0, SNI_OPTION}, {"post", required_argument, 0, 'P'}, {"method", required_argument, 0, 'j'}, @@ -235,7 +235,7 @@ process_arguments (int argc, char **argv) } while (1) { - c = getopt_long (argc, argv, "Vvh46t:c:w:A:k:H:P:j:T:I:a:b:e:p:s:R:r:u:f:C:nlLSm:M:N", longopts, &option); + c = getopt_long (argc, argv, "Vvh46t:c:w:A:k:H:P:j:T:I:a:b:e:p:s:R:r:u:f:C:nlLS::m:M:N", longopts, &option); if (c == -1 || c == EOF) break; @@ -258,20 +258,10 @@ process_arguments (int argc, char **argv) socket_timeout = atoi (optarg); break; case 'c': /* critical time threshold */ - if (!is_nonnegative (optarg)) - usage2 (_("Critical threshold must be integer"), optarg); - else { - critical_time = strtod (optarg, NULL); - check_critical_time = TRUE; - } + critical_thresholds = optarg; break; case 'w': /* warning time threshold */ - if (!is_nonnegative (optarg)) - usage2 (_("Warning threshold must be integer"), optarg); - else { - warning_time = strtod (optarg, NULL); - check_warning_time = TRUE; - } + warning_thresholds = optarg; break; case 'A': /* User Agent String */ asprintf (&user_agent, "User-Agent: %s", optarg); @@ -305,6 +295,13 @@ process_arguments (int argc, char **argv) usage4 (_("Invalid option - SSL is not available")); #endif use_ssl = TRUE; + if (optarg == NULL || c != 'S') + ssl_version = 0; + else { + ssl_version = atoi(optarg); + if (ssl_version < 1 || ssl_version > 3) + usage4 (_("Invalid option - Valid values for SSL Version are 1 (TLSv1), 2 (SSLv2) or 3 (SSLv3)")); + } if (specify_port == FALSE) server_port = HTTPS_PORT; break; @@ -478,8 +475,10 @@ process_arguments (int argc, char **argv) server_address = strdup (host_name); } - if (check_critical_time && critical_time>(double)socket_timeout) - socket_timeout = (int)critical_time + 1; + set_thresholds(&thlds, warning_thresholds, critical_thresholds); + + if (critical_thresholds && thlds->critical->end>(double)socket_timeout) + socket_timeout = (int)thlds->critical->end + 1; if (http_method == NULL) http_method = strdup ("GET"); @@ -807,7 +806,9 @@ check_http (void) die (STATE_CRITICAL, _("HTTP CRITICAL - Unable to open TCP socket\n")); #ifdef HAVE_SSL if (use_ssl == TRUE) { - np_net_ssl_init_with_hostname(sd, (use_sni ? host_name : NULL)); + result = np_net_ssl_init_with_hostname_and_version(sd, (use_sni ? host_name : NULL), ssl_version); + if (result != STATE_OK) + return result; if (check_cert == TRUE) { result = np_net_ssl_check_cert(days_till_exp); np_net_ssl_cleanup(); @@ -1099,10 +1100,7 @@ check_http (void) (display_html ? "" : ""), perfd_time (elapsed_time), perfd_size (page_len)); - if (check_critical_time == TRUE && elapsed_time > critical_time) - result = STATE_CRITICAL; - if (check_warning_time == TRUE && elapsed_time > warning_time) - result = max_state_alt(STATE_WARNING, result); + result = max_state_alt(get_status(elapsed_time, thlds), result); die (result, "HTTP %s: %s\n", state_text(result), msg); /* die failed? */ @@ -1284,8 +1282,8 @@ server_port_check (int ssl_flag) char *perfd_time (double elapsed_time) { return fperfdata ("time", elapsed_time, "s", - check_warning_time, warning_time, - check_critical_time, critical_time, + thlds->warning?TRUE:FALSE, thlds->warning?thlds->warning->end:0, + thlds->critical?TRUE:FALSE, thlds->critical?thlds->critical->end:0, TRUE, 0, FALSE, 0); } @@ -1335,13 +1333,14 @@ print_help (void) printf (UT_IPv46); #ifdef HAVE_SSL - printf (" %s\n", "-S, --ssl"); - printf (" %s\n", _("Connect via SSL. Port defaults to 443")); + printf (" %s\n", "-S, --ssl=VERSION"); + printf (" %s\n", _("Connect via SSL. Port defaults to 443. VERSION is optional, and prevents")); + printf (" %s\n", _("auto-negotiation (1 = TLSv1, 2 = SSLv2, 3 = SSLv3).")); printf (" %s\n", "--sni"); - printf (" %s\n", _("Enable SSL/TLS hostname extension support (SNI)")); + printf (" %s\n", _("Enable SSL/TLS hostname extension support (SNI)")); printf (" %s\n", "-C, --certificate=INTEGER"); - printf (" %s\n", _("Minimum number of days a certificate has to be valid. Port defaults to 443")); - printf (" %s\n", _("(when this option is used the URL is not checked.)\n")); + printf (" %s\n", _("Minimum number of days a certificate has to be valid. Port defaults to 443")); + printf (" %s\n", _("(when this option is used the URL is not checked.)\n")); #endif printf (" %s\n", "-e, --expect=STRING"); @@ -1378,16 +1377,16 @@ print_help (void) printf (" %s\n", "-a, --authorization=AUTH_PAIR"); printf (" %s\n", _("Username:password on sites with basic authentication")); printf (" %s\n", "-b, --proxy-authorization=AUTH_PAIR"); - printf (" %s\n", _("Username:password on proxy-servers with basic authentication")); + printf (" %s\n", _("Username:password on proxy-servers with basic authentication")); printf (" %s\n", "-A, --useragent=STRING"); printf (" %s\n", _("String to be sent in http header as \"User Agent\"")); printf (" %s\n", "-k, --header=STRING"); - printf (" %s\n", _(" Any other tags to be sent in http header. Use multiple times for additional headers")); + printf (" %s\n", _("Any other tags to be sent in http header. Use multiple times for additional headers")); printf (" %s\n", "-L, --link"); printf (" %s\n", _("Wrap output in HTML link (obsoleted by urlize)")); printf (" %s\n", "-f, --onredirect="); printf (" %s\n", _("How to handle redirected pages. sticky is like follow but stick to the")); - printf (" %s\n", _("specified IP address. stickyport also ensure post stays the same.")); + printf (" %s\n", _("specified IP address. stickyport also ensures port stays the same.")); printf (" %s\n", "-m, --pagesize=INTEGER<:INTEGER>"); printf (" %s\n", _("Minimum page size required (bytes) : Maximum page size required (bytes)")); @@ -1412,6 +1411,10 @@ print_help (void) printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); printf (" %s\n", _("certificate is still valid for the specified number of days.")); printf ("\n"); + printf (" %s\n", _("Please note that this plugin does not check if the presented server")); + printf (" %s\n", _("certificate matches the hostname of the server, or if the certificate")); + printf (" %s\n", _("has a valid chain of trust to one of the locally installed CAs.")); + printf ("\n"); printf ("%s\n", _("Examples:")); printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl -H www.verisign.com"); printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); @@ -1441,6 +1444,6 @@ print_usage (void) printf (" [-b proxy_auth] [-f ]\n"); printf (" [-e ] [-s string] [-l] [-r | -R ]\n"); printf (" [-P string] [-m :] [-4|-6] [-N] [-M ]\n"); - printf (" [-A string] [-k string] [-S] [--sni] [-C ] [-T ]\n"); + printf (" [-A string] [-k string] [-S ] [--sni] [-C ] [-T ]\n"); printf (" [-j method]\n"); } diff --git a/plugins/check_ldap.c b/plugins/check_ldap.c index b933ff2..f83f139 100644 --- a/plugins/check_ldap.c +++ b/plugins/check_ldap.c @@ -58,7 +58,7 @@ char *ld_host = NULL; char *ld_base = NULL; char *ld_passwd = NULL; char *ld_binddn = NULL; -int ld_port = DEFAULT_PORT; +int ld_port = -1; #ifdef HAVE_LDAP_SET_OPTION int ld_protocol = DEFAULT_PROTOCOL; #endif @@ -247,7 +247,7 @@ process_arguments (int argc, char **argv) {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'V'}, {"timeout", required_argument, 0, 't'}, - {"host", required_argument, 0, 'H'}, + {"hostname", required_argument, 0, 'H'}, {"base", required_argument, 0, 'b'}, {"attr", required_argument, 0, 'a'}, {"bind", required_argument, 0, 'D'}, @@ -341,7 +341,8 @@ process_arguments (int argc, char **argv) case 'S': if (! starttls) { ssl_on_connect = TRUE; - ld_port = LDAPS_PORT; + if (ld_port == -1) + ld_port = LDAPS_PORT; } else usage_va(_("%s cannot be combined with %s"), "-S/--ssl", "-T/--starttls"); break; @@ -364,6 +365,9 @@ process_arguments (int argc, char **argv) if (ld_base == NULL && argv[c]) ld_base = strdup (argv[c++]); + if (ld_port == -1) + ld_port = DEFAULT_PORT; + return validate_arguments (); } diff --git a/plugins/check_nt.c b/plugins/check_nt.c index 32d4ff6..60806bb 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c @@ -203,7 +203,12 @@ int main(int argc, char **argv){ uphours = (uptime % 86400) / 3600; upminutes = ((uptime % 86400) % 3600) / 60; asprintf(&output_message,_("System Uptime - %u day(s) %u hour(s) %u minute(s)"),updays,uphours, upminutes); - return_code=STATE_OK; + if (check_critical_value==TRUE && uptime <= critical_value) + return_code=STATE_CRITICAL; + else if (check_warning_value==TRUE && uptime <= warning_value) + return_code=STATE_WARNING; + else + return_code=STATE_OK; break; case CHECK_USEDDISKSPACE: diff --git a/plugins/check_ping.c b/plugins/check_ping.c index ecdd618..1367e90 100644 --- a/plugins/check_ping.c +++ b/plugins/check_ping.c @@ -432,6 +432,7 @@ run_ping (const char *cmd, const char *addr) { char buf[MAX_INPUT_BUFFER]; int result = STATE_UNKNOWN; + int match; if ((child_process = spopen (cmd)) == NULL) die (STATE_UNKNOWN, _("Could not open pipe: %s\n"), cmd); @@ -448,28 +449,29 @@ run_ping (const char *cmd, const char *addr) result = max_state (result, error_scan (buf, addr)); /* get the percent loss statistics */ - if(sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d errors, %d%% packet loss",&pl)==1 || - sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d duplicates, %d%% packet loss", &pl) == 1 || - sscanf(buf,"%*d packets transmitted, %*d received, +%*d duplicates, %d%% packet loss", &pl) == 1 || - sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% packet loss",&pl)==1 || - sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% loss, time",&pl)==1 || - sscanf(buf,"%*d packets transmitted, %*d received, %d%% loss, time", &pl)==1 || - sscanf(buf,"%*d packets transmitted, %*d received, %d%% packet loss, time", &pl)==1 || - sscanf(buf,"%*d packets transmitted, %*d received, +%*d errors, %d%% packet loss", &pl) == 1 || - sscanf(buf,"%*d packets transmitted %*d received, +%*d errors, %d%% packet loss", &pl) == 1 + match = 0; + if((sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d duplicates, %d%% packet loss%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d received, +%*d duplicates, %d%% packet loss%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% packet loss%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% loss, time%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d received, %d%% loss, time%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d received, %d%% packet loss, time%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted, %*d received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) || + (sscanf(buf,"%*d packets transmitted %*d received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) ) continue; /* get the round trip average */ else - if(sscanf(buf,"round-trip min/avg/max = %*f/%f/%*f",&rta)==1 || - sscanf(buf,"round-trip min/avg/max/mdev = %*f/%f/%*f/%*f",&rta)==1 || - sscanf(buf,"round-trip min/avg/max/sdev = %*f/%f/%*f/%*f",&rta)==1 || - sscanf(buf,"round-trip min/avg/max/stddev = %*f/%f/%*f/%*f",&rta)==1 || - sscanf(buf,"round-trip min/avg/max/std-dev = %*f/%f/%*f/%*f",&rta)==1 || - sscanf(buf,"round-trip (ms) min/avg/max = %*f/%f/%*f",&rta)==1 || - sscanf(buf,"round-trip (ms) min/avg/max/stddev = %*f/%f/%*f/%*f",&rta)==1 || - sscanf(buf,"rtt min/avg/max/mdev = %*f/%f/%*f/%*f ms",&rta)==1) + if((sscanf(buf,"round-trip min/avg/max = %*f/%f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip min/avg/max/mdev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip min/avg/max/sdev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip min/avg/max/stddev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip min/avg/max/std-dev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip (ms) min/avg/max = %*f/%f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"round-trip (ms) min/avg/max/stddev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || + (sscanf(buf,"rtt min/avg/max/mdev = %*f/%f/%*f/%*f ms%n",&rta,&match) && match)) continue; } diff --git a/plugins/check_procs.c b/plugins/check_procs.c index 2151fb3..d875a61 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c @@ -318,6 +318,8 @@ process_arguments (int argc, char **argv) int err; int cflags = REG_NOSUB | REG_EXTENDED; char errbuf[MAX_INPUT_BUFFER]; + char *temp_string; + int i=0; static struct option longopts[] = { {"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'}, @@ -450,7 +452,14 @@ process_arguments (int argc, char **argv) regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER); die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf); } - asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), optarg); + /* Strip off any | within the regex optarg */ + temp_string = strdup(optarg); + while(temp_string[i]!='\0'){ + if(temp_string[i]=='|') + temp_string[i]=','; + i++; + } + asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), temp_string); options |= EREG_ARGS; break; case 'r': /* RSS */ diff --git a/plugins/check_radius.c b/plugins/check_radius.c index 61d84fb..c2c93ee 100644 --- a/plugins/check_radius.c +++ b/plugins/check_radius.c @@ -211,7 +211,7 @@ main (int argc, char **argv) if (result == OK_RC) die (STATE_OK, _("Auth OK")); (void)snprintf(msg, sizeof(msg), _("Unexpected result code %d"), result); - die (STATE_UNKNOWN, msg); + die (STATE_UNKNOWN, "%s", msg); } diff --git a/plugins/check_smtp.c b/plugins/check_smtp.c index 3da724b..494bc2c 100644 --- a/plugins/check_smtp.c +++ b/plugins/check_smtp.c @@ -114,6 +114,7 @@ enum { TCP_PROTOCOL = 1, UDP_PROTOCOL = 2, }; +int ignore_send_quit_failure = FALSE; int @@ -129,6 +130,9 @@ main (int argc, char **argv) char *error_msg = ""; struct timeval tv; + /* Catch pipe errors in read/write - sometimes occurs when writing QUIT */ + (void) signal (SIGPIPE, SIG_IGN); + setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); @@ -183,7 +187,7 @@ main (int argc, char **argv) /* return a WARNING status if we couldn't read any data */ if (recvlines(buffer, MAX_INPUT_BUFFER) <= 0) { printf (_("recv() failed\n")); - result = STATE_WARNING; + return STATE_WARNING; } else { if (verbose) @@ -197,7 +201,7 @@ main (int argc, char **argv) else printf (_("Invalid SMTP response received from host on port %d: %s\n"), server_port, buffer); - result = STATE_WARNING; + return STATE_WARNING; } } @@ -272,9 +276,6 @@ main (int argc, char **argv) # ifdef USE_OPENSSL if ( check_cert ) { result = np_net_ssl_check_cert(days_till_exp); - if(result != STATE_OK){ - printf ("%s\n", _("CRITICAL - Cannot retrieve server certificate.")); - } my_close(); return result; } @@ -476,6 +477,7 @@ process_arguments (int argc, char **argv) {"help", no_argument, 0, 'h'}, {"starttls",no_argument,0,'S'}, {"certificate",required_argument,0,'D'}, + {"ignore-quit-failure",no_argument,0,'q'}, {0, 0, 0, 0} }; @@ -492,7 +494,7 @@ process_arguments (int argc, char **argv) } while (1) { - c = getopt_long (argc, argv, "+hVv46t:p:f:e:c:w:H:C:R:SD:F:A:U:P:", + c = getopt_long (argc, argv, "+hVv46t:p:f:e:c:w:H:C:R:SD:F:A:U:P:q", longopts, &option); if (c == -1 || c == EOF) @@ -579,6 +581,9 @@ process_arguments (int argc, char **argv) case 'v': /* verbose */ verbose++; break; + case 'q': + ignore_send_quit_failure++; /* ignore problem sending QUIT */ + break; case 't': /* timeout */ if (is_intnonneg (optarg)) { socket_timeout = atoi (optarg); @@ -662,8 +667,20 @@ void smtp_quit(void) { int bytes; + int n; + + n = my_send(SMTP_QUIT, strlen(SMTP_QUIT)); + if(n < 0) { + if(ignore_send_quit_failure) { + if(verbose) { + printf(_("Connection closed by server before sending QUIT command\n")); + } + return; + } + die (STATE_UNKNOWN, + _("Connection closed by server before sending QUIT command\n")); + } - my_send(SMTP_QUIT, strlen(SMTP_QUIT)); if (verbose) printf(_("sent %s\n"), "QUIT"); @@ -797,7 +814,9 @@ print_help (void) printf (" %s\n", _("SMTP AUTH username")); printf (" %s\n", "-P, --authpass=STRING"); printf (" %s\n", _("SMTP AUTH password")); - + printf (" %s\n", "-q, --ignore-quit-failure"); + printf (" %s\n", _("Ignore failure when sending QUIT command to server")); + printf (UT_WARN_CRIT); printf (UT_TIMEOUT, DEFAULT_SOCKET_TIMEOUT); @@ -821,6 +840,6 @@ print_usage (void) printf ("%s\n", _("Usage:")); printf ("%s -H host [-p port] [-e expect] [-C command] [-f from addr]", progname); printf ("[-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout]\n"); - printf ("[-F fqdn] [-S] [-D days] [-v] [-4|-6]\n"); + printf ("[-F fqdn] [-S] [-D days] [-v] [-4|-6] [-q]\n"); } diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index f32a26e..4cd3805 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -169,7 +169,6 @@ main (int argc, char **argv) char *state_string=NULL; size_t response_length, current_length, string_length; char *temp_string=NULL; - int is_numeric=0; time_t current_time; double temp_double; time_t duration; @@ -335,29 +334,24 @@ main (int argc, char **argv) /* We strip out the datatype indicator for PHBs */ if (strstr (response, "Gauge: ")) { show = strstr (response, "Gauge: ") + 7; - is_numeric++; } else if (strstr (response, "Gauge32: ")) { show = strstr (response, "Gauge32: ") + 9; - is_numeric++; } else if (strstr (response, "Counter32: ")) { show = strstr (response, "Counter32: ") + 11; - is_numeric++; is_counter=1; if(!calculate_rate) strcpy(type, "c"); } else if (strstr (response, "Counter64: ")) { show = strstr (response, "Counter64: ") + 11; - is_numeric++; is_counter=1; if(!calculate_rate) strcpy(type, "c"); } else if (strstr (response, "INTEGER: ")) { show = strstr (response, "INTEGER: ") + 9; - is_numeric++; } else if (strstr (response, "STRING: ")) { show = strstr (response, "STRING: ") + 8; @@ -396,15 +390,17 @@ main (int argc, char **argv) } } - else if (strstr (response, "Timeticks: ")) + else if (strstr (response, "Timeticks: ")) { show = strstr (response, "Timeticks: "); + } else show = response; iresult = STATE_DEPENDENT; /* Process this block for numeric comparisons */ - if (is_numeric) { + /* Make some special values,like Timeticks numeric only if a threshold is defined */ + if (thlds[i]->warning || thlds[i]->critical || calculate_rate) { ptr = strpbrk (show, "0123456789"); if (ptr == NULL) die (STATE_UNKNOWN,_("No valid data returned")); @@ -744,7 +740,7 @@ process_arguments (int argc, char **argv) labels[nlabels - 1] = optarg; ptr = thisarg (optarg); labels[nlabels - 1] = ptr; - if (strstr (ptr, "'") == ptr) + if (ptr[0] == '\'') labels[nlabels - 1] = ptr + 1; while (ptr && (ptr = nextarg (ptr))) { if (nlabels >= labels_size) { @@ -753,9 +749,9 @@ process_arguments (int argc, char **argv) if (labels == NULL) die (STATE_UNKNOWN, _("Could not reallocate labels\n")); } - labels++; + nlabels++; ptr = thisarg (ptr); - if (strstr (ptr, "'") == ptr) + if (ptr[0] == '\'') labels[nlabels - 1] = ptr + 1; else labels[nlabels - 1] = ptr; @@ -773,7 +769,7 @@ process_arguments (int argc, char **argv) unitv[nunits - 1] = optarg; ptr = thisarg (optarg); unitv[nunits - 1] = ptr; - if (strstr (ptr, "'") == ptr) + if (ptr[0] == '\'') unitv[nunits - 1] = ptr + 1; while (ptr && (ptr = nextarg (ptr))) { if (nunits >= unitv_size) { @@ -784,7 +780,7 @@ process_arguments (int argc, char **argv) } nunits++; ptr = thisarg (ptr); - if (strstr (ptr, "'") == ptr) + if (ptr[0] == '\'') unitv[nunits - 1] = ptr + 1; else unitv[nunits - 1] = ptr; @@ -939,7 +935,7 @@ char * thisarg (char *str) { str += strspn (str, " \t\r\n"); /* trim any leading whitespace */ - if (strstr (str, "'") == str) { /* handle SIMPLE quoted strings */ + if (str[0] == '\'') { /* handle SIMPLE quoted strings */ if (strlen (str) == 1 || !strstr (str + 1, "'")) die (STATE_UNKNOWN, _("Unbalanced quotes\n")); } @@ -955,7 +951,7 @@ thisarg (char *str) char * nextarg (char *str) { - if (strstr (str, "'") == str) { + if (str[0] == '\'') { str[0] = 0; if (strlen (str) > 1) { str = strstr (str + 1, "'"); @@ -965,7 +961,7 @@ nextarg (char *str) return NULL; } } - if (strstr (str, ",") == str) { + if (str[0] == ',') { str[0] = 0; if (strlen (str) > 1) { return (++str); @@ -1076,8 +1072,8 @@ print_help (void) printf ("\n"); printf ("%s\n", _("Notes:")); - printf (" %s\n", _("- Multiple OIDs may be indicated by a comma or space-delimited list (lists with")); - printf (" %s %i %s\n", _("internal spaces must be quoted). Maximum:"), MAX_OIDS, _("OIDs.")); + printf (" %s\n", _("- Multiple OIDs (and labels) may be indicated by a comma or space-delimited ")); + printf (" %s %i %s\n", _("list (lists with internal spaces must be quoted). Maximum:"), MAX_OIDS, _("OIDs.")); printf(" -%s", UT_THRESHOLDS_NOTES); diff --git a/plugins/check_ssh.c b/plugins/check_ssh.c index 2509b86..3bbf44d 100644 --- a/plugins/check_ssh.c +++ b/plugins/check_ssh.c @@ -215,6 +215,10 @@ ssh_connect (char *haddr, int hport, char *remote_version) char *ssh_proto = NULL; char *ssh_server = NULL; static char *rev_no = VERSION; + struct timeval tv; + double elapsed_time; + + gettimeofday(&tv, NULL); result = my_tcp_connect (haddr, hport, &sd); @@ -250,9 +254,12 @@ ssh_connect (char *haddr, int hport, char *remote_version) exit (STATE_WARNING); } + elapsed_time = (double)deltime(tv) / 1.0e6; + printf - (_("SSH OK - %s (protocol %s)\n"), - ssh_server, ssh_proto); + (_("SSH OK - %s (protocol %s) | %s\n"), + ssh_server, ssh_proto, fperfdata("time", elapsed_time, "s", + FALSE, 0, FALSE, 0, TRUE, 0, TRUE, (int)socket_timeout)); close(sd); exit (STATE_OK); } diff --git a/plugins/check_tcp.c b/plugins/check_tcp.c index 178bd56..d3c92a4 100644 --- a/plugins/check_tcp.c +++ b/plugins/check_tcp.c @@ -236,12 +236,9 @@ main (int argc, char **argv) result = np_net_ssl_init(sd); if (result == STATE_OK && check_cert == TRUE) { result = np_net_ssl_check_cert(days_till_exp); - if(result != STATE_OK) { - printf(_("CRITICAL - Cannot retrieve server certificate.\n")); - } } } - if(result != STATE_OK){ + if(result != STATE_OK || check_cert == TRUE){ np_net_ssl_cleanup(); if(sd) close(sd); return result; diff --git a/plugins/check_users.c b/plugins/check_users.c index 8368612..3766292 100644 --- a/plugins/check_users.c +++ b/plugins/check_users.c @@ -3,7 +3,7 @@ * Nagios check_users plugin * * License: GPL -* Copyright (c) 2000-2007 Nagios Plugins Development Team +* Copyright (c) 2000-2012 Nagios Plugins Development Team * * Description: * @@ -35,8 +35,8 @@ const char *copyright = "2000-2007"; const char *email = "nagiosplug-devel@lists.sourceforge.net"; #include "common.h" -#include "popen.h" #include "utils.h" +#include #define possibly_set(a,b) ((a) == 0 ? (b) : 0) @@ -52,58 +52,33 @@ main (int argc, char **argv) { int users = -1; int result = STATE_UNKNOWN; - char input_buffer[MAX_INPUT_BUFFER]; char *perf; + struct utmpx *putmpx; setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - perf = strdup(""); + perf = strdup (""); /* Parse extra opts if any */ - argv=np_extra_opts (&argc, argv, progname); + argv = np_extra_opts (&argc, argv, progname); if (process_arguments (argc, argv) == ERROR) usage4 (_("Could not parse arguments")); - /* run the command */ - child_process = spopen (WHO_COMMAND); - if (child_process == NULL) { - printf (_("Could not open pipe: %s\n"), WHO_COMMAND); - return STATE_UNKNOWN; - } - - child_stderr = fdopen (child_stderr_array[fileno (child_process)], "r"); - if (child_stderr == NULL) - printf (_("Could not open stderr for %s\n"), WHO_COMMAND); - users = 0; - while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_process)) { + /* get currently logged users from utmpx */ + setutxent (); - /* increment 'users' on all lines except total user count */ - if (input_buffer[0] != '#') { + while ((putmpx = getutxent ()) != NULL) + if (putmpx->ut_type == USER_PROCESS) users++; - continue; - } - /* get total logged in users */ - if (sscanf (input_buffer, _("# users=%d"), &users) == 1) - break; + endutxent (); - } - - /* check STDERR */ - if (fgets (input_buffer, MAX_INPUT_BUFFER - 1, child_stderr)) - result = possibly_set (result, STATE_UNKNOWN); - (void) fclose (child_stderr); - - /* close the pipe */ - if (spclose (child_process)) - result = possibly_set (result, STATE_UNKNOWN); - - /* else check the user count against warning and critical thresholds */ + /* check the user count against warning and critical thresholds */ if (users > cusers) result = STATE_CRITICAL; else if (users > wusers) @@ -114,7 +89,7 @@ main (int argc, char **argv) if (result == STATE_UNKNOWN) printf ("%s\n", _("Unable to read output")); else { - asprintf(&perf, "%s", perfdata ("users", users, "", + asprintf (&perf, "%s", perfdata ("users", users, "", TRUE, wusers, TRUE, cusers, TRUE, 0, @@ -126,14 +101,11 @@ main (int argc, char **argv) return result; } - - /* process command-line arguments */ int process_arguments (int argc, char **argv) { int c; - int option = 0; static struct option longopts[] = { {"critical", required_argument, 0, 'c'}, @@ -183,7 +155,6 @@ process_arguments (int argc, char **argv) else wusers = atoi (argv[c++]); } - if (cusers == -1 && argc > c) { if (is_intnonneg (argv[c]) == FALSE) usage4 (_("Warning threshold must be a positive integer")); @@ -194,8 +165,6 @@ process_arguments (int argc, char **argv) return OK; } - - void print_help (void) { @@ -205,9 +174,9 @@ print_help (void) printf (COPYRIGHT, copyright, email); printf ("%s\n", _("This plugin checks the number of users currently logged in on the local")); - printf ("%s\n", _("system and generates an error if the number exceeds the thresholds specified.")); + printf ("%s\n", _("system and generates an error if the number exceeds the thresholds specified.")); - printf ("\n\n"); + printf ("\n\n"); print_usage (); @@ -215,17 +184,16 @@ print_help (void) printf (UT_EXTRA_OPTS); printf (" %s\n", "-w, --warning=INTEGER"); - printf (" %s\n", _("Set WARNING status if more than INTEGER users are logged in")); - printf (" %s\n", "-c, --critical=INTEGER"); - printf (" %s\n", _("Set CRITICAL status if more than INTEGER users are logged in")); + printf (" %s\n", _("Set WARNING status if more than INTEGER users are logged in")); + printf (" %s\n", "-c, --critical=INTEGER"); + printf (" %s\n", _("Set CRITICAL status if more than INTEGER users are logged in")); printf (UT_SUPPORT); } - void print_usage (void) { - printf ("%s\n", _("Usage:")); + printf ("%s\n", _("Usage:")); printf ("%s -w -c \n", progname); } diff --git a/plugins/common.h b/plugins/common.h index dfc0941..09af7e7 100644 --- a/plugins/common.h +++ b/plugins/common.h @@ -59,6 +59,12 @@ #include #endif +#ifdef _AIX +#ifdef HAVE_MP_H +#include +#endif +#endif + #ifdef HAVE_STRINGS_H #include #endif diff --git a/plugins/sslutils.c b/plugins/sslutils.c index 64f4d61..5425bb2 100644 --- a/plugins/sslutils.c +++ b/plugins/sslutils.c @@ -3,7 +3,7 @@ * Nagios plugins SSL utilities * * License: GPL -* Copyright (c) 2005-2007 Nagios Plugins Development Team +* Copyright (c) 2005-2010 Nagios Plugins Development Team * * Description: * @@ -26,6 +26,7 @@ * *****************************************************************************/ +#define MAX_CN_LENGTH 256 #define LOCAL_TIMEOUT_ALARM_HANDLER #include "common.h" #include "netutils.h" @@ -35,68 +36,104 @@ static SSL_CTX *c=NULL; static SSL *s=NULL; static int initialized=0; -int np_net_ssl_init (int sd) { - return np_net_ssl_init_with_hostname(sd, NULL); +int np_net_ssl_init(int sd) { + return np_net_ssl_init_with_hostname(sd, NULL); } -int np_net_ssl_init_with_hostname (int sd, char *host_name) { - if (!initialized) { - /* Initialize SSL context */ - SSLeay_add_ssl_algorithms (); - SSL_load_error_strings (); - OpenSSL_add_all_algorithms (); - initialized = 1; - } - if ((c = SSL_CTX_new (SSLv23_client_method ())) == NULL) { - printf ("%s\n", _("CRITICAL - Cannot create SSL context.")); - return STATE_CRITICAL; - } - if ((s = SSL_new (c)) != NULL){ -#ifdef SSL_set_tlsext_host_name - if (host_name != NULL) - SSL_set_tlsext_host_name(s, host_name); -#endif - SSL_set_fd (s, sd); - if (SSL_connect(s) == 1){ - return OK; - } else { - printf ("%s\n", _("CRITICAL - Cannot make SSL connection ")); -# ifdef USE_OPENSSL /* XXX look into ERR_error_string */ - ERR_print_errors_fp (stdout); -# endif /* USE_OPENSSL */ - } - } else { - printf ("%s\n", _("CRITICAL - Cannot initiate SSL handshake.")); - } +int np_net_ssl_init_with_hostname(int sd, char *host_name) { + return np_net_ssl_init_with_hostname_and_version(sd, host_name, 0); +} + +int np_net_ssl_init_with_hostname_and_version(int sd, char *host_name, int version) { + const SSL_METHOD *method = NULL; + + switch (version) { + case 0: /* Deafult to auto negotiation */ + method = SSLv23_client_method(); + break; + case 1: /* TLSv1 protocol */ + method = TLSv1_client_method(); + break; + case 2: /* SSLv2 protocol */ +#if defined(USE_GNUTLS) || defined(OPENSSL_NO_SSL2) + printf(("%s\n", _("CRITICAL - SSL protocol version 2 is not supported by your SSL library."))); return STATE_CRITICAL; -} - -void np_net_ssl_cleanup (){ - if(s){ -#ifdef SSL_set_tlsext_host_name - SSL_set_tlsext_host_name(s, NULL); +#else + method = SSLv2_client_method(); #endif - SSL_shutdown (s); - SSL_free (s); - if(c) { - SSL_CTX_free (c); - c=NULL; - } - s=NULL; + break; + case 3: /* SSLv3 protocol */ + method = SSLv3_client_method(); + break; + default: /* Unsupported */ + printf("%s\n", _("CRITICAL - Unsupported SSL protocol version.")); + return STATE_CRITICAL; + } + if (!initialized) { + /* Initialize SSL context */ + SSLeay_add_ssl_algorithms(); + SSL_load_error_strings(); + OpenSSL_add_all_algorithms(); + initialized = 1; + } + if ((c = SSL_CTX_new(method)) == NULL) { + printf("%s\n", _("CRITICAL - Cannot create SSL context.")); + return STATE_CRITICAL; + } +#ifdef SSL_OP_NO_TICKET + SSL_CTX_set_options(c, SSL_OP_NO_TICKET); +#endif + if ((s = SSL_new(c)) != NULL) { +#ifdef SSL_set_tlsext_host_name + if (host_name != NULL) + SSL_set_tlsext_host_name(s, host_name); +#endif + SSL_set_fd(s, sd); + if (SSL_connect(s) == 1) { + return OK; + } else { + printf("%s\n", _("CRITICAL - Cannot make SSL connection.")); +# ifdef USE_OPENSSL /* XXX look into ERR_error_string */ + ERR_print_errors_fp(stdout); +# endif /* USE_OPENSSL */ } + } else { + printf("%s\n", _("CRITICAL - Cannot initiate SSL handshake.")); + } + return STATE_CRITICAL; } -int np_net_ssl_write(const void *buf, int num){ +void np_net_ssl_cleanup() { + if (s) { +#ifdef SSL_set_tlsext_host_name + SSL_set_tlsext_host_name(s, NULL); +#endif + SSL_shutdown(s); + SSL_free(s); + if (c) { + SSL_CTX_free(c); + c=NULL; + } + s=NULL; + } +} + +int np_net_ssl_write(const void *buf, int num) { return SSL_write(s, buf, num); } -int np_net_ssl_read(void *buf, int num){ +int np_net_ssl_read(void *buf, int num) { return SSL_read(s, buf, num); } -int np_net_ssl_check_cert(int days_till_exp){ +int np_net_ssl_check_cert(int days_till_exp) { # ifdef USE_OPENSSL X509 *certificate=NULL; + X509_NAME *subj=NULL; + char cn[MAX_CN_LENGTH]= ""; + int cnlen =-1; + int status=STATE_UNKNOWN; + ASN1_STRING *tm; int offset; struct tm stamp; @@ -105,18 +142,29 @@ int np_net_ssl_check_cert(int days_till_exp){ char timestamp[17] = ""; certificate=SSL_get_peer_certificate(s); - if(! certificate){ - printf ("%s\n",_("CRITICAL - Cannot retrieve server certificate.")); + if (!certificate) { + printf("%s\n",_("CRITICAL - Cannot retrieve server certificate.")); return STATE_CRITICAL; } + /* Extract CN from certificate subject */ + subj=X509_get_subject_name(certificate); + + if (!subj) { + printf("%s\n",_("CRITICAL - Cannot retrieve certificate subject.")); + return STATE_CRITICAL; + } + cnlen = X509_NAME_get_text_by_NID(subj, NID_commonName, cn, sizeof(cn)); + if (cnlen == -1) + strcpy(cn, _("Unknown CN")); + /* Retrieve timestamp of certificate */ - tm = X509_get_notAfter (certificate); + tm = X509_get_notAfter(certificate); /* Generate tm structure to process timestamp */ if (tm->type == V_ASN1_UTCTIME) { if (tm->length < 10) { - printf ("%s\n", _("CRITICAL - Wrong time format in certificate.")); + printf("%s\n", _("CRITICAL - Wrong time format in certificate.")); return STATE_CRITICAL; } else { stamp.tm_year = (tm->data[0] - '0') * 10 + (tm->data[1] - '0'); @@ -126,7 +174,7 @@ int np_net_ssl_check_cert(int days_till_exp){ } } else { if (tm->length < 12) { - printf ("%s\n", _("CRITICAL - Wrong time format in certificate.")); + printf("%s\n", _("CRITICAL - Wrong time format in certificate.")); return STATE_CRITICAL; } else { stamp.tm_year = @@ -155,21 +203,22 @@ int np_net_ssl_check_cert(int days_till_exp){ stamp.tm_mday, stamp.tm_year + 1900, stamp.tm_hour, stamp.tm_min); if (days_left > 0 && days_left <= days_till_exp) { - printf (_("WARNING - Certificate expires in %d day(s) (%s).\n"), days_left, timestamp); - return STATE_WARNING; + printf(_("WARNING - Certificate '%s' expires in %d day(s) (%s).\n"), cn, days_left, timestamp); + status=STATE_WARNING; } else if (time_left < 0) { - printf (_("CRITICAL - Certificate expired on %s.\n"), timestamp); - return STATE_CRITICAL; + printf(_("CRITICAL - Certificate '%s' expired on %s.\n"), cn, timestamp); + status=STATE_CRITICAL; } else if (days_left == 0) { - printf (_("WARNING - Certificate expires today (%s).\n"), timestamp); - return STATE_WARNING; + printf(_("WARNING - Certificate '%s' expires today (%s).\n"), cn, timestamp); + status=STATE_WARNING; + } else { + printf(_("OK - Certificate '%s' will expire on %s.\n"), cn, timestamp); + status=STATE_OK; } - - printf (_("OK - Certificate will expire on %s.\n"), timestamp); - X509_free (certificate); - return STATE_OK; + X509_free(certificate); + return status; # else /* ifndef USE_OPENSSL */ - printf ("%s\n", _("WARNING - Plugin does not support checking certificates.")); + printf("%s\n", _("WARNING - Plugin does not support checking certificates.")); return STATE_WARNING; # endif /* USE_OPENSSL */ } diff --git a/plugins/t/check_by_ssh.t b/plugins/t/check_by_ssh.t index 5f2c534..cca72c9 100644 --- a/plugins/t/check_by_ssh.t +++ b/plugins/t/check_by_ssh.t @@ -17,9 +17,14 @@ my $ssh_key = getTestParameter( "NP_SSH_IDENTITY", "A key allowing access to NP_SSH_HOST", "~/.ssh/id_dsa"); +my $ssh_conf = getTestParameter( "NP_SSH_CONFIGFILE", + "A config file with ssh settings", + "~/.ssh/config"); + + plan skip_all => "SSH_HOST and SSH_IDENTITY must be defined" unless ($ssh_service && $ssh_key); -plan tests => 40; +plan tests => 42; # Some random check strings/response my @responce = ('OK: Everything is fine!', @@ -85,6 +90,12 @@ $result = NPTest->testCmd( cmp_ok($result->return_code, '==', 8, "Exit with return code 8 (out of bounds)"); is($result->output, $responce[4], "Return proper status text even with unknown status codes"); +$result = NPTest->testCmd( + "./check_by_ssh -i $ssh_key -H $ssh_service -F $ssh_conf -C 'exit 0'" + ); +cmp_ok($result->return_code, '==', 0, "Exit with return code 0 (OK)"); +is($result->output, 'OK - check_by_ssh: Remote command \'exit 0\' returned status 0', "Status text if command returned none (OK)"); + # Multiple active checks $result = NPTest->testCmd( "./check_by_ssh -i $ssh_key -H $ssh_service -C '$check[1]; sh -c exit\\ 1' -C '$check[0]; sh -c exit\\ 0' -C '$check[3]; sh -c exit\\ 3' -C '$check[2]; sh -c exit\\ 2'" diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t index c43a64a..55a5a53 100644 --- a/plugins/t/check_http.t +++ b/plugins/t/check_http.t @@ -102,7 +102,7 @@ SKIP: { $res = NPTest->testCmd( "./check_http -C 1 --ssl www.verisign.com" ); cmp_ok( $res->return_code, '==', 0, "Checking certificate for www.verisign.com"); - like ( $res->output, '/Certificate will expire on/', "Output OK" ); + like ( $res->output, "/Certificate 'www.verisign.com' will expire on/", "Output OK" ); my $saved_cert_output = $res->output; $res = NPTest->testCmd( "./check_http www.verisign.com -C 1" ); diff --git a/plugins/t/check_snmp.t b/plugins/t/check_snmp.t index 004ba1a..04bf500 100644 --- a/plugins/t/check_snmp.t +++ b/plugins/t/check_snmp.t @@ -8,7 +8,7 @@ use strict; use Test::More; use NPTest; -my $tests = 8+38+2+2; +my $tests = 8+42+2+2; plan tests => $tests; my $res; @@ -124,6 +124,13 @@ SKIP: { cmp_ok( $res->return_code, '==', 0, "Skipping all thresholds"); like($res->output, '/^SNMP OK - \d+ \w+ \d+\s.*$/', "Skipping all thresholds, result printed rather than parsed"); + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0 -c 1000000000000: -u '1/100 sec'"); + cmp_ok( $res->return_code, '==', 2, "Timetick used as a threshold"); + like($res->output, '/^SNMP CRITICAL - \*\d+\* 1\/100 sec.*$/', "Timetick used as a threshold, parsed as numeric"); + + $res = NPTest->testCmd( "./check_snmp -H $host_snmp -C $snmp_community -o system.sysUpTime.0"); + cmp_ok( $res->return_code, '==', 0, "Timetick used as a string"); + like($res->output, '/^SNMP OK - Timeticks:\s\(\d+\)\s+(?:\d+ days?,\s+)?\d+:\d+:\d+\.\d+\s.*$/', "Timetick used as a string, result printed rather than parsed"); } # These checks need a complete command line. An invalid community is used so diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t index f03933b..9ae6bbd 100755 --- a/plugins/tests/check_http.t +++ b/plugins/tests/check_http.t @@ -18,9 +18,24 @@ use Test::More; use NPTest; use FindBin qw($Bin); -use HTTP::Daemon; -use HTTP::Status; -use HTTP::Response; +my $common_tests = 66; +my $ssl_only_tests = 6; +# Check that all dependent modules are available +eval { + require HTTP::Daemon; + require HTTP::Status; + require HTTP::Response; +}; + +if ($@) { + plan skip_all => "Missing required module for test: $@"; +} else { + if (-x "./check_http") { + plan tests => $common_tests * 2 + $ssl_only_tests; + } else { + plan skip_all => "No check_http compiled"; + } +} my $servers = { http => 0 }; # HTTP::Daemon should always be available eval { require HTTP::Daemon::SSL }; @@ -112,9 +127,9 @@ sub run_server { $c->send_response("slow"); } elsif ($r->url->path eq "/method") { if ($r->method eq "DELETE") { - $c->send_error(RC_METHOD_NOT_ALLOWED); + $c->send_error(HTTP::Status->RC_METHOD_NOT_ALLOWED); } elsif ($r->method eq "foo") { - $c->send_error(RC_NOT_IMPLEMENTED); + $c->send_error(HTTP::Status->RC_NOT_IMPLEMENTED); } else { $c->send_status_line(200, $r->method); } @@ -138,7 +153,7 @@ sub run_server { delete($persist[1000]); next MAINLOOP; } else { - $c->send_error(RC_FORBIDDEN); + $c->send_error(HTTP::Status->RC_FORBIDDEN); } $c->close; } @@ -157,14 +172,6 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { } } -my $common_tests = 66; -my $ssl_only_tests = 6; -if (-x "./check_http") { - plan tests => $common_tests * 2 + $ssl_only_tests; -} else { - plan skip_all => "No check_http compiled"; -} - my $result; my $command = "./check_http -H 127.0.0.1"; @@ -175,17 +182,17 @@ SKIP: { $result = NPTest->testCmd( "$command -p $port_https -S -C 14" ); is( $result->return_code, 0, "$command -p $port_https -S -C 14" ); - is( $result->output, 'OK - Certificate will expire on 03/03/2019 21:41.', "output ok" ); + is( $result->output, 'OK - Certificate \'Ton Voon\' will expire on 03/03/2019 21:41.', "output ok" ); $result = NPTest->testCmd( "$command -p $port_https -S -C 14000" ); is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); - like( $result->output, '/WARNING - Certificate expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" ); + like( $result->output, '/WARNING - Certificate \'Ton Voon\' expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" ); # Expired cert tests $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); is( $result->output, - 'CRITICAL - Certificate expired on 03/05/2009 00:13.', + 'CRITICAL - Certificate \'Ton Voon\' expired on 03/05/2009 00:13.', "output ok" ); } diff --git a/plugins/tests/check_procs.t b/plugins/tests/check_procs.t index 1d0c034..d71c83a 100644 --- a/plugins/tests/check_procs.t +++ b/plugins/tests/check_procs.t @@ -8,7 +8,7 @@ use Test::More; use NPTest; if (-x "./check_procs") { - plan tests => 48; + plan tests => 50; } else { plan skip_all => "No check_procs compiled"; } @@ -113,3 +113,7 @@ $result = NPTest->testCmd( "$command --metric=RSS -c 70000 -v" ); is( $result->return_code, 2, "Checking against RSS > 70MB" ); is( $result->output, 'RSS CRITICAL: 5 crit, 0 warn out of 95 processes [WindowServer, SystemUIServer, Safari, Mail, Safari]', "Output correct" ); +$result = NPTest->testCmd( "$command --ereg-argument-array='(nosuchname|nosuch2name)'" ); +is( $result->return_code, 0, "Checking no pipe symbol in output" ); +is( $result->output, "PROCS OK: 0 processes with regex args '(nosuchname,nosuch2name)'", "Output correct" ); + diff --git a/plugins/tests/check_snmp.t b/plugins/tests/check_snmp.t index e7ad192..2645cc1 100755 --- a/plugins/tests/check_snmp.t +++ b/plugins/tests/check_snmp.t @@ -8,6 +8,7 @@ use Test::More; use NPTest; use FindBin qw($Bin); +my $tests = 41; # Check that all dependent modules are available eval { require NetSNMP::OID; @@ -17,6 +18,12 @@ eval { if ($@) { plan skip_all => "Missing required module for test: $@"; +} else { + if (-x "./check_snmp") { + plan tests => $tests; + } else { + plan skip_all => "No check_snmp compiled"; + } } my $port_snmp = 16100 + int(rand(100)); @@ -51,12 +58,8 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { } } -my $tests = 33; -if (-x "./check_snmp") { - plan tests => $tests; -} else { - plan skip_all => "No check_snmp compiled"; -} +# We should merge that with $ENV{'NPTEST_CACHE'}, use one dir for all test data +$ENV{'NAGIOS_PLUGIN_STATE_DIRECTORY'} ||= "/var/tmp"; my $res; @@ -106,7 +109,7 @@ like($res->output, '/'.quotemeta('SNMP OK - And now have fun with with this: \"C "And now have fun with with this: \"C:\\\\\" because we\'re not done yet!"').'/m', "Attempt to confuse parser No.3"); -system("rm /usr/local/nagios/var/check_snmp/*"); +system("rm -f ".$ENV{'NAGIOS_PLUGIN_STATE_DIRECTORY'}."/check_snmp/*"); $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.10 --rate -w 600" ); is($res->return_code, 0, "Returns OK"); is($res->output, "No previous data to calculate rate - assume okay"); @@ -170,5 +173,19 @@ $res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1 is($res->return_code, 0, "OK as string doesn't match but inverted" ); is($res->output, 'SNMP OK - "stringtests" | ', "OK as inverted string no match" ); +$res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.12 -w 4:5" ); +is($res->return_code, 1, "Numeric in string test" ); +is($res->output, 'SNMP WARNING - *3.5* | iso.3.6.1.4.1.8072.3.2.67.12=3.5 ', "WARNING threshold checks for string masquerading as number" ); +$res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.13" ); +is($res->return_code, 0, "Not really numeric test" ); +is($res->output, 'SNMP OK - "87.4startswithnumberbutshouldbestring" | ', "Check string with numeric start is still string" ); + +$res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.14" ); +is($res->return_code, 0, "Not really numeric test (trying best to fool it)" ); +is($res->output, 'SNMP OK - "555\"I said\"" | ', "Check string with a double quote following is still a string (looks like the perl routine will always escape though)" ); + +$res = NPTest->testCmd( "./check_snmp -H 127.0.0.1 -C public -p $port_snmp -o .1.3.6.1.4.1.8072.3.2.67.15 -r 'CUSTOM CHECK OK'" ); +is($res->return_code, 0, "String check should check whole string, not a parsed number" ); +is($res->output, 'SNMP OK - "CUSTOM CHECK OK: foo is 12345" | ', "String check witn numbers returns whole string"); diff --git a/plugins/tests/check_snmp_agent.pl b/plugins/tests/check_snmp_agent.pl index 8784ab1..8cacd52 100644 --- a/plugins/tests/check_snmp_agent.pl +++ b/plugins/tests/check_snmp_agent.pl @@ -33,9 +33,10 @@ ends with with this: C:\\'; my $multilin5 = 'And now have fun with with this: "C:\\" because we\'re not done yet!'; -my @fields = (ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_UNSIGNED, ASN_UNSIGNED, ASN_COUNTER, ASN_COUNTER64, ASN_UNSIGNED, ASN_COUNTER, ASN_OCTET_STR); -my @values = ($multiline, $multilin2, $multilin3, $multilin4, $multilin5, 4294965296, 1000, 4294965296, uint64("18446744073709351616"), int(rand(2**32)), 64000, "stringtests"); -my @incrts = (undef, undef, undef, undef, undef, 1000, -500, 1000, 100000, undef, 666, undef); +# 0..15 <---- please update comment when adding/removing fields +my @fields = (ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_UNSIGNED, ASN_UNSIGNED, ASN_COUNTER, ASN_COUNTER64, ASN_UNSIGNED, ASN_COUNTER, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR, ASN_OCTET_STR ); +my @values = ($multiline, $multilin2, $multilin3, $multilin4, $multilin5, 4294965296, 1000, 4294965296, uint64("18446744073709351616"), int(rand(2**32)), 64000, "stringtests", "3.5", "87.4startswithnumberbutshouldbestring", '555"I said"', 'CUSTOM CHECK OK: foo is 12345' ); +my @incrts = (undef, undef, undef, undef, undef, 1000, -500, 1000, 100000, undef, 666, undef, undef, undef, undef, undef ); # Number of elements in our OID my $oidelts; diff --git a/po/de.gmo b/po/de.gmo index 7323bb65b5b24036a2a5304f9f8df0861ebb0f34..0df58a2d1e8d9e194833d9bf485249a9e73b7a13 100644 GIT binary patch delta 1920 zcmX}tSx8h-9LMqhOzMHZ8VjlQU+enOl3AEl&0j4fN1U?HO%*752U^mXh zUU&QrgFN5-BaZm0a*_%;ou3Pe%`KM*i#oA7s@|Am6dG&MTPDakula8-I<;;74Tl?5`X5vJaX- zHfo~NQ5k4Jl4q?L%b|0K&J;Y2*?1e3(jGV7htoJ7!a11BMN6?7OYku2hPO}?zlW-& zho}j>apQxiz5j`GF)N4st9UAzMG$wPW_khV;UmN+gKD7Io1_Bpedh3>aHkNhijEez;^$B}xpyQn?yK^5g^cRquSR0%yyx!yQcvrZ9m)zAIs6oCZcX!hkE^XV;I{|6MBN$ zig&0Y&14mt*jy~dh&w)tO7#uY{a)cR^zw>nOJghPa1Yz*Jc63gMR&nX)B|54Nw6=d z>i1CU+KOV-o>!oXwa(dy{MlAM^!)VlA*j1!hWA=a!ZRHh)QXj8}CBZ&~w!Hhp-+CD5MZZQO`SrKE3~!=mZ$JhFZbX#0iQ8 z^?-g<>c8R=46q#SbrhA_Hq`kZR7wZkxW6#D;#$uqJgL+ zl>SCS`&drs%c(Yu4n>@(5oJS7>0C|dmDGf^O)6$(NlkBr7NS+Fsle5$h#0SQGCipD zsF*er3yBD!l_~wH7NDanEp`LivQ*RRY6xXVHA1Z={;#Y-H5DFWlVy+y?OL=Na| zAoM!1b=E|rnksf}>HyP;AW=*B;vK&8p7w1ce#Q4^c4ovEjXCGZDGP=c2E*Y%+5E+! ia7ic}f8+1iGwAaHU`X delta 2109 zcmZA1Yiv_x9LMp0=j<+kbhDk4iJsvu2zGQZ9ot}&fg3mFQYX{I7lj>V&J?MYOr7=> z@j?i}iU`pc#Ha~MG&Ex5;!7oSn&>MPg#=6lqrSnQ0b~6BPM;Ctll}WSeR}p>{?GrM zU5kI|$(^n)-D9*t;uhk^60;n>c|9MrH_FT!a3A*LXPCrrx!F8?7!&vk*5fg}0e`}| z_#5(PwH3wt>v0a>*I`ssjd7uW+>NzZz?nFKH{-7u$I?o(SvVhCaR6KJMVyUCum;ay zHD1Ctte9d}h23}~u0;=rut{6p?m9j|P4pEi6Ibwdtesl?z6iC@hj0!)hx+|p)B?t_ z8870!SU1gV2BuI88$&H1k1>1?8b@8Ut&A>1jWdF}Zx_zTqo`W>9lNn6$1)diF@W0X%cy_+ z1X;A5Lf!ZWvPp}xD)slEcDf!l!6@o6eH*pFlc+=rF86)7JZLuF(qayoVxmAR9y z{}eU{uR3Pc0JCukCQ-$=2Q}g6sFi<<9{zyZ!4=nEers`p2rBhWsA3z$ML3E&`;So> zK99OD#!a)RKkMg0KRk}w`Cil+y@Sfk1X9Gon$TX3GMLOreafe z7rIVmnB%=Vzb&WZ0b+pAx%CmePl6-3A19kKqL&EA7d$EVq0*~V>)iEJsI4YcA8MRb zP&2_7J~#ophq&vS`E3myYD&G1qm&pVR8*5q1+n;*}-pyw-vBLG~(bIe3 z|E-OVE+VO&s?`&{#Dhc?q1UI1vYpsah?ngRH7re~(_6A$#?NMk{cXPYl%Lt=XS_{* zCOiD-@TOGOZ>h{5k9zs<%74yZu9%WPADdeEsN!I_urP8Y6iLJr?eRp1*V@s!fa|ux zzg6QUO{=z~(^=me@rTo1G8pjL;&>yetmkJor=H0A>B_?KXkRG*VKiJg6HAsAs%JhQ F`VRzO&rJXT diff --git a/po/de.po b/po/de.po index cb886f9..a734dbc 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: nagiosplug\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2010-07-09 19:30-0400\n" +"POT-Creation-Date: 2012-06-11 23:01+0100\n" "PO-Revision-Date: 2004-12-23 17:46+0100\n" "Last-Translator: <>\n" "Language-Team: English \n" @@ -19,7 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);X-Generator: KBabel 1.3.1\n" #: plugins/check_by_ssh.c:86 plugins/check_cluster.c:76 plugins/check_dig.c:87 -#: plugins/check_disk.c:192 plugins/check_dns.c:102 plugins/check_dummy.c:52 +#: plugins/check_disk.c:190 plugins/check_dns.c:102 plugins/check_dummy.c:52 #: plugins/check_fping.c:89 plugins/check_game.c:82 plugins/check_hpjd.c:103 #: plugins/check_http.c:157 plugins/check_ldap.c:109 plugins/check_load.c:122 #: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:85 @@ -27,8 +27,8 @@ msgstr "" #: plugins/check_ntp_peer.c:569 plugins/check_ntp_time.c:548 #: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 #: plugins/check_pgsql.c:154 plugins/check_ping.c:95 plugins/check_procs.c:147 -#: plugins/check_radius.c:160 plugins/check_real.c:80 plugins/check_smtp.c:140 -#: plugins/check_snmp.c:205 plugins/check_ssh.c:73 plugins/check_swap.c:110 +#: plugins/check_radius.c:160 plugins/check_real.c:80 plugins/check_smtp.c:144 +#: plugins/check_snmp.c:204 plugins/check_ssh.c:73 plugins/check_swap.c:110 #: plugins/check_tcp.c:209 plugins/check_time.c:78 plugins/check_ups.c:122 #: plugins/check_users.c:68 plugins/negate.c:211 plugins-root/check_dhcp.c:270 msgid "Could not parse arguments" @@ -60,59 +60,59 @@ msgstr "SSH WARNING: Konnte %s nicht msgid "%s: Error parsing output\n" msgstr "" -#: plugins/check_by_ssh.c:219 plugins/check_disk.c:525 +#: plugins/check_by_ssh.c:220 plugins/check_disk.c:467 #: plugins/check_http.c:256 plugins/check_ldap.c:293 plugins/check_pgsql.c:250 -#: plugins/check_procs.c:364 plugins/check_radius.c:308 -#: plugins/check_real.c:356 plugins/check_smtp.c:587 plugins/check_snmp.c:665 -#: plugins/check_ssh.c:138 plugins/check_tcp.c:490 plugins/check_time.c:302 +#: plugins/check_procs.c:366 plugins/check_radius.c:308 +#: plugins/check_real.c:356 plugins/check_smtp.c:592 plugins/check_snmp.c:661 +#: plugins/check_ssh.c:138 plugins/check_tcp.c:487 plugins/check_time.c:302 #: plugins/check_ups.c:556 plugins/negate.c:161 msgid "Timeout interval must be a positive integer" msgstr "Timeout interval muss ein positiver Integer sein" -#: plugins/check_by_ssh.c:229 plugins/check_pgsql.c:274 +#: plugins/check_by_ssh.c:230 plugins/check_pgsql.c:274 #: plugins/check_radius.c:272 plugins/check_real.c:327 -#: plugins/check_smtp.c:514 plugins/check_tcp.c:496 plugins/check_time.c:296 +#: plugins/check_smtp.c:516 plugins/check_tcp.c:493 plugins/check_time.c:296 #: plugins/check_ups.c:518 msgid "Port must be a positive integer" msgstr "Port muss ein positiver Integer sein" -#: plugins/check_by_ssh.c:290 +#: plugins/check_by_ssh.c:291 #, fuzzy msgid "skip-stdout argument must be an integer" msgstr "skip-stdout argument muss ein Integer sein" -#: plugins/check_by_ssh.c:298 +#: plugins/check_by_ssh.c:299 #, fuzzy msgid "skip-stderr argument must be an integer" msgstr "skip-stderr argument muss ein Integer sein" -#: plugins/check_by_ssh.c:317 +#: plugins/check_by_ssh.c:322 #, c-format msgid "%s: You must provide a host name\n" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_by_ssh.c:335 +#: plugins/check_by_ssh.c:340 msgid "No remotecmd" msgstr "Kein remotecm" -#: plugins/check_by_ssh.c:349 +#: plugins/check_by_ssh.c:354 #, c-format msgid "%s: Argument limit of %d exceeded\n" msgstr "" -#: plugins/check_by_ssh.c:352 +#: plugins/check_by_ssh.c:357 #, fuzzy msgid "Can not (re)allocate 'commargv' buffer\n" msgstr "Konnte·url·nicht·zuweisen\n" -#: plugins/check_by_ssh.c:366 +#: plugins/check_by_ssh.c:371 #, c-format msgid "" "%s: In passive mode, you must provide a service name for each command.\n" msgstr "" "%s: Im passive mode muss ein Servicename für jeden Befehl angegeben werden.\n" -#: plugins/check_by_ssh.c:369 +#: plugins/check_by_ssh.c:374 #, c-format msgid "" "%s: In passive mode, you must provide the host short name from the nagios " @@ -121,126 +121,130 @@ msgstr "" "%s: Im passive mode muss der \"host short name\" aus der Nagios " "Konfiguration angegeben werden\n" -#: plugins/check_by_ssh.c:383 +#: plugins/check_by_ssh.c:388 #, fuzzy, c-format msgid "This plugin uses SSH to execute commands on a remote host" msgstr "" "Dieses Plugin nutzt SSH um Befehle auf dem entfernten Rechner auszuführen\n" "\n" -#: plugins/check_by_ssh.c:398 +#: plugins/check_by_ssh.c:403 msgid "tell ssh to use Protocol 1 [optional]" msgstr "" -#: plugins/check_by_ssh.c:400 +#: plugins/check_by_ssh.c:405 msgid "tell ssh to use Protocol 2 [optional]" msgstr "" -#: plugins/check_by_ssh.c:402 +#: plugins/check_by_ssh.c:407 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" msgstr "" -#: plugins/check_by_ssh.c:404 +#: plugins/check_by_ssh.c:409 msgid "Ignore all or (if specified) first n lines on STDERR [optional]" msgstr "" -#: plugins/check_by_ssh.c:406 +#: plugins/check_by_ssh.c:411 msgid "" "tells ssh to fork rather than create a tty [optional]. This will always " "return OK if ssh is executed" msgstr "" -#: plugins/check_by_ssh.c:408 +#: plugins/check_by_ssh.c:413 msgid "command to execute on the remote machine" msgstr "" -#: plugins/check_by_ssh.c:410 +#: plugins/check_by_ssh.c:415 msgid "SSH user name on remote host [optional]" msgstr "" -#: plugins/check_by_ssh.c:412 +#: plugins/check_by_ssh.c:417 msgid "identity of an authorized key [optional]" msgstr "" -#: plugins/check_by_ssh.c:414 +#: plugins/check_by_ssh.c:419 msgid "external command file for nagios [optional]" msgstr "" -#: plugins/check_by_ssh.c:416 +#: plugins/check_by_ssh.c:421 msgid "list of nagios service names, separated by ':' [optional]" msgstr "" -#: plugins/check_by_ssh.c:418 +#: plugins/check_by_ssh.c:423 msgid "short name of host in nagios configuration [optional]" msgstr "" -#: plugins/check_by_ssh.c:420 +#: plugins/check_by_ssh.c:425 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" msgstr "" -#: plugins/check_by_ssh.c:422 -msgid "Tell ssh to suppress warning and diagnostic messages [optional]" -msgstr "" - #: plugins/check_by_ssh.c:427 -msgid "The most common mode of use is to refer to a local identity file with" -msgstr "" - -#: plugins/check_by_ssh.c:428 -msgid "the '-i' option. In this mode, the identity pair should have a null" +msgid "Tell ssh to use this configfile [optional]" msgstr "" #: plugins/check_by_ssh.c:429 -msgid "passphrase and the public key should be listed in the authorized_keys" +msgid "Tell ssh to suppress warning and diagnostic messages [optional]" msgstr "" -#: plugins/check_by_ssh.c:430 -msgid "file of the remote host. Usually the key will be restricted to running" -msgstr "" - -#: plugins/check_by_ssh.c:431 -msgid "only one command on the remote server. If the remote SSH server tracks" -msgstr "" - -#: plugins/check_by_ssh.c:432 -msgid "invocation arguments, the one remote program may be an agent that can" -msgstr "" - -#: plugins/check_by_ssh.c:433 -msgid "execute additional commands as proxy" +#: plugins/check_by_ssh.c:434 +msgid "The most common mode of use is to refer to a local identity file with" msgstr "" #: plugins/check_by_ssh.c:435 -msgid "To use passive mode, provide multiple '-C' options, and provide" +msgid "the '-i' option. In this mode, the identity pair should have a null" msgstr "" #: plugins/check_by_ssh.c:436 +msgid "passphrase and the public key should be listed in the authorized_keys" +msgstr "" + +#: plugins/check_by_ssh.c:437 +msgid "file of the remote host. Usually the key will be restricted to running" +msgstr "" + +#: plugins/check_by_ssh.c:438 +msgid "only one command on the remote server. If the remote SSH server tracks" +msgstr "" + +#: plugins/check_by_ssh.c:439 +msgid "invocation arguments, the one remote program may be an agent that can" +msgstr "" + +#: plugins/check_by_ssh.c:440 +msgid "execute additional commands as proxy" +msgstr "" + +#: plugins/check_by_ssh.c:442 +msgid "To use passive mode, provide multiple '-C' options, and provide" +msgstr "" + +#: plugins/check_by_ssh.c:443 msgid "" "all of -O, -s, and -n options (servicelist order must match '-C'options)" msgstr "" -#: plugins/check_by_ssh.c:438 plugins/check_cluster.c:261 -#: plugins/check_dig.c:342 plugins/check_disk.c:963 plugins/check_http.c:1415 +#: plugins/check_by_ssh.c:445 plugins/check_cluster.c:261 +#: plugins/check_dig.c:342 plugins/check_disk.c:905 plugins/check_http.c:1418 #: plugins/check_nagios.c:302 plugins/check_ntp.c:864 #: plugins/check_ntp_peer.c:698 plugins/check_ntp_time.c:628 -#: plugins/check_procs.c:742 plugins/negate.c:268 plugins/urlize.c:180 +#: plugins/check_procs.c:751 plugins/negate.c:268 plugins/urlize.c:180 msgid "Examples:" msgstr "" -#: plugins/check_by_ssh.c:453 plugins/check_cluster.c:274 -#: plugins/check_dig.c:354 plugins/check_disk.c:980 plugins/check_dns.c:486 +#: plugins/check_by_ssh.c:460 plugins/check_cluster.c:274 +#: plugins/check_dig.c:354 plugins/check_disk.c:922 plugins/check_dns.c:486 #: plugins/check_dummy.c:122 plugins/check_fping.c:432 -#: plugins/check_game.c:331 plugins/check_hpjd.c:414 plugins/check_http.c:1438 -#: plugins/check_ldap.c:452 plugins/check_load.c:325 plugins/check_mrtg.c:382 -#: plugins/check_mysql.c:425 plugins/check_nagios.c:313 plugins/check_nt.c:759 +#: plugins/check_game.c:331 plugins/check_hpjd.c:414 plugins/check_http.c:1441 +#: plugins/check_ldap.c:456 plugins/check_load.c:325 plugins/check_mrtg.c:382 +#: plugins/check_mysql.c:425 plugins/check_nagios.c:313 plugins/check_nt.c:764 #: plugins/check_ntp.c:883 plugins/check_ntp_peer.c:718 #: plugins/check_ntp_time.c:637 plugins/check_nwstat.c:1685 #: plugins/check_overcr.c:467 plugins/check_pgsql.c:477 -#: plugins/check_ping.c:601 plugins/check_procs.c:760 +#: plugins/check_ping.c:603 plugins/check_procs.c:769 #: plugins/check_radius.c:385 plugins/check_real.c:451 -#: plugins/check_smtp.c:821 plugins/check_snmp.c:1107 plugins/check_ssh.c:302 -#: plugins/check_swap.c:558 plugins/check_tcp.c:651 plugins/check_time.c:371 -#: plugins/check_ups.c:660 plugins/check_users.c:229 +#: plugins/check_smtp.c:840 plugins/check_snmp.c:1103 plugins/check_ssh.c:309 +#: plugins/check_swap.c:558 plugins/check_tcp.c:648 plugins/check_time.c:371 +#: plugins/check_ups.c:660 plugins/check_users.c:197 #: plugins/check_ide_smart.c:527 plugins/negate.c:292 plugins/urlize.c:197 #: plugins-root/check_dhcp.c:1421 plugins-root/check_icmp.c:1347 msgid "Usage:" @@ -251,7 +255,7 @@ msgstr "" msgid "Host/Service Cluster Plugin for Nagios 2" msgstr "" -#: plugins/check_cluster.c:236 plugins/check_nt.c:661 +#: plugins/check_cluster.c:236 plugins/check_nt.c:666 msgid "Options:" msgstr "" @@ -288,11 +292,11 @@ msgid "commas" msgstr "" #: plugins/check_cluster.c:257 plugins/check_game.c:318 -#: plugins/check_http.c:1401 plugins/check_ldap.c:434 plugins/check_mrtg.c:363 +#: plugins/check_http.c:1400 plugins/check_ldap.c:438 plugins/check_mrtg.c:363 #: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:414 -#: plugins/check_nt.c:743 plugins/check_ntp.c:860 plugins/check_ntp_peer.c:689 +#: plugins/check_nt.c:748 plugins/check_ntp.c:860 plugins/check_ntp_peer.c:689 #: plugins/check_ntp_time.c:621 plugins/check_nwstat.c:1670 -#: plugins/check_overcr.c:456 plugins/check_snmp.c:1078 +#: plugins/check_overcr.c:456 plugins/check_snmp.c:1074 #: plugins/check_swap.c:547 plugins/check_ups.c:642 plugins/negate.c:274 #: plugins-root/check_icmp.c:1322 msgid "Notes:" @@ -380,12 +384,12 @@ msgstr "" msgid "Pass STRING as argument(s) to dig" msgstr "" -#: plugins/check_disk.c:214 +#: plugins/check_disk.c:212 #, fuzzy, c-format msgid "DISK %s: %s not found\n" msgstr "%s [%s nicht gefunden]" -#: plugins/check_disk.c:214 plugins/check_disk.c:995 plugins/check_dns.c:241 +#: plugins/check_disk.c:212 plugins/check_disk.c:937 plugins/check_dns.c:241 #: plugins/check_dummy.c:74 plugins/check_mysql.c:212 #: plugins/check_nagios.c:104 plugins/check_nagios.c:168 #: plugins/check_nagios.c:172 plugins/check_procs.c:290 @@ -393,72 +397,72 @@ msgstr "%s [%s nicht gefunden]" msgid "CRITICAL" msgstr "CRITICAL" -#: plugins/check_disk.c:599 +#: plugins/check_disk.c:541 #, c-format msgid "unit type %s not known\n" msgstr "unbekannter unit type: %s\n" -#: plugins/check_disk.c:602 +#: plugins/check_disk.c:544 #, c-format msgid "failed allocating storage for '%s'\n" msgstr "konnte keinen Speicher für '%s' reservieren\n" -#: plugins/check_disk.c:626 plugins/check_disk.c:664 plugins/check_disk.c:669 -#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720 -#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:77 -#: plugins/check_dummy.c:80 plugins/check_procs.c:451 +#: plugins/check_disk.c:568 plugins/check_disk.c:606 plugins/check_disk.c:611 +#: plugins/check_disk.c:618 plugins/check_disk.c:622 plugins/check_disk.c:662 +#: plugins/check_disk.c:668 plugins/check_disk.c:687 plugins/check_dummy.c:77 +#: plugins/check_dummy.c:80 plugins/check_procs.c:453 #, c-format msgid "UNKNOWN" msgstr "UNKNOWN" -#: plugins/check_disk.c:626 +#: plugins/check_disk.c:568 msgid "Must set a threshold value before using -p\n" msgstr "" -#: plugins/check_disk.c:664 +#: plugins/check_disk.c:606 msgid "Must set -E before selecting paths\n" msgstr "" -#: plugins/check_disk.c:669 +#: plugins/check_disk.c:611 msgid "Must set group value before selecting paths\n" msgstr "" -#: plugins/check_disk.c:676 +#: plugins/check_disk.c:618 msgid "" "Paths need to be selected before using -i/-I. Use -A to select all paths " "explicitly" msgstr "" -#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:451 +#: plugins/check_disk.c:622 plugins/check_disk.c:668 plugins/check_procs.c:453 msgid "Could not compile regular expression" msgstr "" -#: plugins/check_disk.c:720 +#: plugins/check_disk.c:662 msgid "Must set a threshold value before using -r/-R\n" msgstr "" -#: plugins/check_disk.c:746 +#: plugins/check_disk.c:688 msgid "Regular expression did not match any path or disk" msgstr "" -#: plugins/check_disk.c:792 +#: plugins/check_disk.c:734 #, fuzzy msgid "Unknown argument" msgstr "Unbekanntes Argument" -#: plugins/check_disk.c:826 +#: plugins/check_disk.c:768 #, c-format msgid " for %s\n" msgstr "" -#: plugins/check_disk.c:900 +#: plugins/check_disk.c:842 #, fuzzy msgid "" "This plugin checks the amount of used disk space on a mounted file system" msgstr "" "Dieses Plugin prüft den freien Speicher auf einem gemounteten Filesystem" -#: plugins/check_disk.c:901 +#: plugins/check_disk.c:843 #, fuzzy msgid "" "and generates an alert if free space is less than one of the threshold values" @@ -466,141 +470,141 @@ msgstr "" "und erzeugt einen Alarm wenn einer der angegebenen Schwellwerte " "unterschritten wird." -#: plugins/check_disk.c:911 +#: plugins/check_disk.c:853 msgid "Exit with WARNING status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:913 +#: plugins/check_disk.c:855 msgid "Exit with WARNING status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:915 +#: plugins/check_disk.c:857 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:917 +#: plugins/check_disk.c:859 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:919 +#: plugins/check_disk.c:861 msgid "Exit with WARNING status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:921 +#: plugins/check_disk.c:863 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:923 +#: plugins/check_disk.c:865 msgid "Path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:925 +#: plugins/check_disk.c:867 msgid "Ignore device (only works if -p unspecified)" msgstr "" -#: plugins/check_disk.c:927 +#: plugins/check_disk.c:869 msgid "Clear thresholds" msgstr "" -#: plugins/check_disk.c:929 +#: plugins/check_disk.c:871 msgid "For paths or partitions specified with -p, only check for exact paths" msgstr "" -#: plugins/check_disk.c:931 +#: plugins/check_disk.c:873 msgid "Display only devices/mountpoints with errors" msgstr "" -#: plugins/check_disk.c:933 +#: plugins/check_disk.c:875 msgid "" "Group paths. Thresholds apply to (free-)space of all partitions together" msgstr "" -#: plugins/check_disk.c:935 +#: plugins/check_disk.c:877 msgid "Same as '--units kB'" msgstr "" -#: plugins/check_disk.c:937 +#: plugins/check_disk.c:879 msgid "Only check local filesystems" msgstr "" -#: plugins/check_disk.c:939 +#: plugins/check_disk.c:881 msgid "" "Only check local filesystems against thresholds. Yet call stat on remote " "filesystems" msgstr "" -#: plugins/check_disk.c:940 +#: plugins/check_disk.c:882 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" msgstr "" -#: plugins/check_disk.c:942 +#: plugins/check_disk.c:884 msgid "Display the mountpoint instead of the partition" msgstr "" -#: plugins/check_disk.c:944 +#: plugins/check_disk.c:886 msgid "Same as '--units MB'" msgstr "" -#: plugins/check_disk.c:946 +#: plugins/check_disk.c:888 msgid "Explicitly select all paths. This is equivalent to -R '.*'" msgstr "" -#: plugins/check_disk.c:948 +#: plugins/check_disk.c:890 msgid "" "Case insensitive regular expression for path/partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:950 +#: plugins/check_disk.c:892 msgid "Regular expression for path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:952 +#: plugins/check_disk.c:894 msgid "" "Regular expression to ignore selected path/partition (case insensitive) (may " "be repeated)" msgstr "" -#: plugins/check_disk.c:954 +#: plugins/check_disk.c:896 msgid "" "Regular expression to ignore selected path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:957 +#: plugins/check_disk.c:899 msgid "Choose bytes, kB, MB, GB, TB (default: MB)" msgstr "" -#: plugins/check_disk.c:960 +#: plugins/check_disk.c:902 msgid "Ignore all filesystems of indicated type (may be repeated)" msgstr "" -#: plugins/check_disk.c:965 +#: plugins/check_disk.c:907 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" msgstr "" -#: plugins/check_disk.c:967 +#: plugins/check_disk.c:909 msgid "" "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" "r regex" msgstr "" -#: plugins/check_disk.c:968 +#: plugins/check_disk.c:910 msgid "" "are grouped which means the freespace thresholds are applied to all disks " "together" msgstr "" -#: plugins/check_disk.c:970 +#: plugins/check_disk.c:912 msgid "" "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " "100M/50M" msgstr "" -#: plugins/check_disk.c:996 +#: plugins/check_disk.c:938 #, c-format msgid "%s %s: %s\n" msgstr "" -#: plugins/check_disk.c:996 +#: plugins/check_disk.c:938 msgid "is not accessible" msgstr "" @@ -811,14 +815,14 @@ msgstr "" msgid "of the argument with optional text" msgstr "" -#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:437 -#: plugins/check_swap.c:175 plugins/check_users.c:73 plugins/urlize.c:110 +#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:438 +#: plugins/check_swap.c:175 plugins/urlize.c:110 #, c-format msgid "Could not open pipe: %s\n" msgstr "Pipe: %s konnte nicht geöffnet werden\n" #: plugins/check_fping.c:114 plugins/check_hpjd.c:134 plugins/check_load.c:153 -#: plugins/check_swap.c:181 plugins/check_users.c:79 plugins/urlize.c:116 +#: plugins/check_swap.c:181 plugins/urlize.c:116 #, c-format msgid "Could not open stderr for %s\n" msgstr "Konnte stderr nicht öffnen für: %s\n" @@ -853,7 +857,7 @@ msgstr "FPING %s - %s (verloren=%.0f%% )|%s\n" #: plugins/check_ntp_peer.c:491 plugins/check_ntp_time.c:492 #: plugins/check_pgsql.c:268 plugins/check_ping.c:295 plugins/check_ping.c:418 #: plugins/check_radius.c:264 plugins/check_real.c:314 -#: plugins/check_real.c:376 plugins/check_smtp.c:507 plugins/check_smtp.c:633 +#: plugins/check_real.c:376 plugins/check_smtp.c:509 plugins/check_smtp.c:638 #: plugins/check_ssh.c:157 plugins/check_time.c:240 plugins/check_time.c:315 #: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" @@ -909,12 +913,12 @@ msgid "" "reducing system load)" msgstr "" -#: plugins/check_fping.c:408 plugins/check_ping.c:573 +#: plugins/check_fping.c:408 plugins/check_ping.c:575 #, fuzzy msgid "warning threshold pair" msgstr "Warning threshold Integer sein" -#: plugins/check_fping.c:410 plugins/check_ping.c:575 +#: plugins/check_fping.c:410 plugins/check_ping.c:577 #, fuzzy msgid "critical threshold pair" msgstr "Critical threshold muss ein Integer sein" @@ -1086,453 +1090,471 @@ msgstr "" msgid "(default=%s)" msgstr "" -#: plugins/check_http.c:262 -msgid "Critical threshold must be integer" -msgstr "Critical threshold muss ein Integer sein" - -#: plugins/check_http.c:270 -msgid "Warning threshold must be integer" -msgstr "Warning threshold Integer sein" - -#: plugins/check_http.c:296 plugins/check_tcp.c:559 +#: plugins/check_http.c:286 plugins/check_tcp.c:556 msgid "Invalid certificate expiration period" msgstr "Ungültiger Zertifikatsablauftermin" -#: plugins/check_http.c:305 plugins/check_tcp.c:571 +#: plugins/check_http.c:295 plugins/check_tcp.c:568 #, fuzzy msgid "Invalid option - SSL is not available" msgstr "Ungültige Option - SSL ist nicht verfügbar\n" -#: plugins/check_http.c:329 +#: plugins/check_http.c:303 +msgid "" +"Invalid option - Valid values for SSL Version are 1 (TLSv1), 2 (SSLv2) or 3 " +"(SSLv3)" +msgstr "" + +#: plugins/check_http.c:326 msgid "Invalid onredirect option" msgstr "" -#: plugins/check_http.c:331 +#: plugins/check_http.c:328 #, c-format msgid "option f:%d \n" msgstr "Option f:%d \n" -#: plugins/check_http.c:352 +#: plugins/check_http.c:349 msgid "Invalid port number" msgstr "Ungültige Portnummer" -#: plugins/check_http.c:400 +#: plugins/check_http.c:397 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:414 plugins/check_ntp.c:718 +#: plugins/check_http.c:411 plugins/check_ntp.c:718 #: plugins/check_ntp_peer.c:507 plugins/check_ntp_time.c:508 -#: plugins/check_smtp.c:613 plugins/check_ssh.c:149 plugins/check_tcp.c:463 +#: plugins/check_smtp.c:618 plugins/check_ssh.c:149 plugins/check_tcp.c:460 msgid "IPv6 support not available" msgstr "IPv6 Unterstützung nicht vorhanden" -#: plugins/check_http.c:476 plugins/check_ping.c:422 +#: plugins/check_http.c:473 plugins/check_ping.c:422 msgid "You must specify a server address or host name" msgstr "Hostname oder Serveradresse muss angegeben werden" -#: plugins/check_http.c:609 plugins/check_http.c:777 +#: plugins/check_http.c:608 plugins/check_http.c:776 #, fuzzy msgid "HTTP UNKNOWN - Memory allocation error\n" msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" -#: plugins/check_http.c:681 +#: plugins/check_http.c:680 #, fuzzy, c-format msgid "%sServer date unknown, " msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" -#: plugins/check_http.c:684 +#: plugins/check_http.c:683 #, fuzzy, c-format msgid "%sDocument modification date unknown, " msgstr "HTTP CRITICAL - Datum der letzten Änderung unbekannt\n" -#: plugins/check_http.c:691 +#: plugins/check_http.c:690 #, fuzzy, c-format msgid "%sServer date \"%100s\" unparsable, " msgstr "HTTP CRITICAL - Serverdatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_http.c:694 +#: plugins/check_http.c:693 #, fuzzy, c-format msgid "%sDocument date \"%100s\" unparsable, " msgstr "" "HTTP CRITICAL - Dokumentendatum \"%100s\" konnte nicht verarbeitet werden" -#: plugins/check_http.c:697 +#: plugins/check_http.c:696 #, fuzzy, c-format msgid "%sDocument is %d seconds in the future, " msgstr "HTTP CRITICAL - Dokumentendatum ist %d Sekunden in der Zukunft\n" -#: plugins/check_http.c:702 +#: plugins/check_http.c:701 #, fuzzy, c-format msgid "%sLast modified %.1f days ago, " msgstr "HTTP CRITICAL - Letzte Änderung vor %.1f Tagen\n" -#: plugins/check_http.c:705 +#: plugins/check_http.c:704 #, fuzzy, c-format msgid "%sLast modified %d:%02d:%02d ago, " msgstr "HTTP CRITICAL - Letzte Änderung vor %d:%02d:%02d \n" -#: plugins/check_http.c:807 +#: plugins/check_http.c:806 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "HTTP CRITICAL - Konnte TCP socket nicht öffnen\n" -#: plugins/check_http.c:910 +#: plugins/check_http.c:911 msgid "HTTP CRITICAL - Error on receive\n" msgstr "HTTP CRITICAL - Fehler beim Empfangen\n" -#: plugins/check_http.c:920 +#: plugins/check_http.c:921 #, fuzzy msgid "HTTP CRITICAL - No data received from host\n" msgstr "HTTP CRITICAL - Keine Daten empfangen\n" -#: plugins/check_http.c:971 +#: plugins/check_http.c:972 #, fuzzy, c-format msgid "Invalid HTTP response received from host: %s\n" msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_http.c:975 +#: plugins/check_http.c:976 #, fuzzy, c-format msgid "Invalid HTTP response received from host on port %d: %s\n" msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" -#: plugins/check_http.c:984 +#: plugins/check_http.c:985 #, fuzzy, c-format msgid "Status line output matched \"%s\" - " msgstr "HTTP OK: Statusausgabe passt auf \"%s\"\n" -#: plugins/check_http.c:995 +#: plugins/check_http.c:996 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "HTTP CRITICAL: Ungültige Statusmeldung (%s)\n" -#: plugins/check_http.c:1002 +#: plugins/check_http.c:1003 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "HTTP CRITICAL: Ungültiger Status (%s)\n" -#: plugins/check_http.c:1006 plugins/check_http.c:1011 -#: plugins/check_http.c:1021 plugins/check_http.c:1025 +#: plugins/check_http.c:1007 plugins/check_http.c:1012 +#: plugins/check_http.c:1022 plugins/check_http.c:1026 #, c-format msgid "%s - " msgstr "" -#: plugins/check_http.c:1045 +#: plugins/check_http.c:1046 #, fuzzy, c-format msgid "%sstring '%s' not found on '%s://%s:%d%s', " msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" -#: plugins/check_http.c:1058 +#: plugins/check_http.c:1059 #, fuzzy, c-format msgid "%spattern not found, " msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" -#: plugins/check_http.c:1060 +#: plugins/check_http.c:1061 #, fuzzy, c-format msgid "%spattern found, " msgstr "CRITICAL - Muster nicht gefunden%s|%s %s\n" -#: plugins/check_http.c:1066 +#: plugins/check_http.c:1067 #, fuzzy, c-format msgid "%sExecute Error: %s, " msgstr "HTTP CRITICAL - Fehler: %s\n" -#: plugins/check_http.c:1082 +#: plugins/check_http.c:1083 #, fuzzy, c-format msgid "%spage size %d too large, " msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" -#: plugins/check_http.c:1085 +#: plugins/check_http.c:1086 #, fuzzy, c-format msgid "%spage size %d too small, " msgstr "HTTP WARNING: Seitengröße %d zu klein%s|%s\n" -#: plugins/check_http.c:1097 +#: plugins/check_http.c:1098 #, fuzzy, c-format msgid "%s - %d bytes in %.3f second response time %s|%s %s" msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" -#: plugins/check_http.c:1137 +#: plugins/check_http.c:1135 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "HTTP UNKNOWN - Konnte addr nicht zuweisen\n" -#: plugins/check_http.c:1141 plugins/check_http.c:1172 +#: plugins/check_http.c:1139 plugins/check_http.c:1170 #, fuzzy msgid "HTTP UNKNOWN - Could not allocate URL\n" msgstr "HTTP UNKNOWN - Konnte·url·nicht·zuweisen\n" -#: plugins/check_http.c:1150 +#: plugins/check_http.c:1148 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1165 +#: plugins/check_http.c:1163 #, fuzzy, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "HTTP UNKNOWN - Serverdatum unbekannt\n" -#: plugins/check_http.c:1215 +#: plugins/check_http.c:1213 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1225 +#: plugins/check_http.c:1223 #, fuzzy, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1233 +#: plugins/check_http.c:1231 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1252 #, fuzzy, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "HTTP WARNING - Umleitung verursacht eine Schleife - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1259 +#: plugins/check_http.c:1257 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1308 #, fuzzy msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" "Testet den DNS Dienst auf dem angegebenen Host mit dig\n" "\n" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1309 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" -#: plugins/check_http.c:1312 +#: plugins/check_http.c:1310 msgid "strings and regular expressions, check connection times, and report on" msgstr "" -#: plugins/check_http.c:1313 +#: plugins/check_http.c:1311 #, fuzzy msgid "certificate expiration times." msgstr "Clientzertifikat benötigt\n" -#: plugins/check_http.c:1319 +#: plugins/check_http.c:1317 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "" -#: plugins/check_http.c:1327 +#: plugins/check_http.c:1325 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1328 +#: plugins/check_http.c:1326 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1330 +#: plugins/check_http.c:1328 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1332 +#: plugins/check_http.c:1330 msgid "Port number (default: " msgstr "" -#: plugins/check_http.c:1339 -msgid "Connect via SSL. Port defaults to 443" +#: plugins/check_http.c:1337 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" msgstr "" -#: plugins/check_http.c:1341 +#: plugins/check_http.c:1338 +msgid "auto-negotiation (1 = TLSv1, 2 = SSLv2, 3 = SSLv3)." +msgstr "" + +#: plugins/check_http.c:1340 msgid "Enable SSL/TLS hostname extension support (SNI)" msgstr "" -#: plugins/check_http.c:1343 +#: plugins/check_http.c:1342 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1344 +#: plugins/check_http.c:1343 msgid "(when this option is used the URL is not checked.)\n" msgstr "" -#: plugins/check_http.c:1348 +#: plugins/check_http.c:1347 msgid "Comma-delimited list of strings, at least one of them is expected in" msgstr "" -#: plugins/check_http.c:1349 +#: plugins/check_http.c:1348 msgid "the first (status) line of the server response (default: " msgstr "" -#: plugins/check_http.c:1351 +#: plugins/check_http.c:1350 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" -#: plugins/check_http.c:1353 +#: plugins/check_http.c:1352 msgid "String to expect in the content" msgstr "" -#: plugins/check_http.c:1355 +#: plugins/check_http.c:1354 msgid "URL to GET or POST (default: /)" msgstr "" -#: plugins/check_http.c:1357 +#: plugins/check_http.c:1356 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1359 +#: plugins/check_http.c:1358 msgid "Set HTTP method." msgstr "" -#: plugins/check_http.c:1361 +#: plugins/check_http.c:1360 msgid "Don't wait for document body: stop reading after headers." msgstr "" -#: plugins/check_http.c:1362 +#: plugins/check_http.c:1361 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "" -#: plugins/check_http.c:1364 +#: plugins/check_http.c:1363 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1365 +#: plugins/check_http.c:1364 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1367 +#: plugins/check_http.c:1366 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1370 +#: plugins/check_http.c:1369 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1372 +#: plugins/check_http.c:1371 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1374 +#: plugins/check_http.c:1373 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1376 +#: plugins/check_http.c:1375 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1379 +#: plugins/check_http.c:1378 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1381 +#: plugins/check_http.c:1380 msgid "Username:password on proxy-servers with basic authentication" msgstr "" -#: plugins/check_http.c:1383 +#: plugins/check_http.c:1382 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1385 +#: plugins/check_http.c:1384 msgid "" -" Any other tags to be sent in http header. Use multiple times for additional " +"Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1387 +#: plugins/check_http.c:1386 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1389 +#: plugins/check_http.c:1388 msgid "How to handle redirected pages. sticky is like follow but stick to the" msgstr "" -#: plugins/check_http.c:1390 -msgid "specified IP address. stickyport also ensure post stays the same." +#: plugins/check_http.c:1389 +msgid "specified IP address. stickyport also ensures port stays the same." msgstr "" -#: plugins/check_http.c:1392 +#: plugins/check_http.c:1391 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1402 +#: plugins/check_http.c:1401 #, fuzzy msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_http.c:1403 +#: plugins/check_http.c:1402 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1404 +#: plugins/check_http.c:1403 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1405 +#: plugins/check_http.c:1404 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1406 +#: plugins/check_http.c:1405 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1407 +#: plugins/check_http.c:1406 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1411 +#: plugins/check_http.c:1410 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1412 +#: plugins/check_http.c:1411 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1413 +#: plugins/check_http.c:1412 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1417 +#: plugins/check_http.c:1414 +#, fuzzy +msgid "Please note that this plugin does not check if the presented server" +msgstr "" +"Testet den DNS Dienst auf dem angegebenen Host mit dig\n" +"\n" + +#: plugins/check_http.c:1415 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1416 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1420 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1418 +#: plugins/check_http.c:1421 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1419 +#: plugins/check_http.c:1422 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1420 +#: plugins/check_http.c:1423 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1423 +#: plugins/check_http.c:1426 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1424 +#: plugins/check_http.c:1427 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1425 +#: plugins/check_http.c:1428 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1426 +#: plugins/check_http.c:1429 #, fuzzy msgid "the certificate is expired." msgstr "Clientzertifikat benötigt\n" @@ -1582,81 +1604,81 @@ msgstr "" msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "" -#: plugins/check_ldap.c:339 plugins/check_ldap.c:346 +#: plugins/check_ldap.c:339 plugins/check_ldap.c:347 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:352 plugins/check_ping.c:246 +#: plugins/check_ldap.c:353 plugins/check_ping.c:246 msgid "IPv6 support not available\n" msgstr "" -#: plugins/check_ldap.c:375 +#: plugins/check_ldap.c:379 msgid "Please specify the host name\n" msgstr "" -#: plugins/check_ldap.c:378 +#: plugins/check_ldap.c:382 msgid "Please specify the LDAP base\n" msgstr "" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:411 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:413 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:415 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:417 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:415 +#: plugins/check_ldap.c:419 msgid "use starttls mechanism introduced in protocol version 3" msgstr "" -#: plugins/check_ldap.c:417 +#: plugins/check_ldap.c:421 msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:425 msgid "use ldap protocol version 2" msgstr "" -#: plugins/check_ldap.c:423 +#: plugins/check_ldap.c:427 msgid "use ldap protocol version 3" msgstr "" -#: plugins/check_ldap.c:424 +#: plugins/check_ldap.c:428 msgid "default protocol version:" msgstr "" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:439 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:440 #, c-format msgid "" " implied (using default port %i) unless --port=636 is specified. In that " "case\n" msgstr "" -#: plugins/check_ldap.c:437 +#: plugins/check_ldap.c:441 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:438 +#: plugins/check_ldap.c:442 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:439 +#: plugins/check_ldap.c:443 msgid "to define the behaviour explicitly instead." msgstr "" @@ -2164,7 +2186,7 @@ msgstr "" msgid "Wrong client version - running: %s, required: %s" msgstr "" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:152 plugins/check_nt.c:217 msgid "missing -l parameters" msgstr "" @@ -2195,321 +2217,321 @@ msgstr "" msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:219 msgid "wrong -l argument" msgstr "" -#: plugins/check_nt.c:230 +#: plugins/check_nt.c:235 #, c-format msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:233 +#: plugins/check_nt.c:238 #, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:247 +#: plugins/check_nt.c:252 msgid "Free disk space : Invalid drive" msgstr "" -#: plugins/check_nt.c:257 +#: plugins/check_nt.c:262 msgid "No service/process specified" msgstr "" -#: plugins/check_nt.c:281 +#: plugins/check_nt.c:286 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:284 +#: plugins/check_nt.c:289 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:320 plugins/check_nt.c:405 plugins/check_nt.c:435 +#: plugins/check_nt.c:325 plugins/check_nt.c:410 plugins/check_nt.c:440 msgid "No counter specified" msgstr "" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:357 msgid "Minimum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:356 +#: plugins/check_nt.c:361 msgid "Maximum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:363 +#: plugins/check_nt.c:368 msgid "No unit counter specified" msgstr "" -#: plugins/check_nt.c:450 +#: plugins/check_nt.c:455 msgid "Please specify a variable to check" msgstr "" -#: plugins/check_nt.c:534 +#: plugins/check_nt.c:539 #, fuzzy msgid "Server port must be an integer\n" msgstr "skip lines muss ein Integer sein" -#: plugins/check_nt.c:588 +#: plugins/check_nt.c:593 #, fuzzy msgid "You must provide a server address or host name" msgstr "Hostname oder Serveradresse muss angegeben werden" -#: plugins/check_nt.c:594 +#: plugins/check_nt.c:599 msgid "None" msgstr "" -#: plugins/check_nt.c:607 +#: plugins/check_nt.c:612 msgid "could not fetch information from server\n" msgstr "" -#: plugins/check_nt.c:651 +#: plugins/check_nt.c:656 msgid "This plugin collects data from the NSClient service running on a" msgstr "" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:657 msgid "Windows NT/2000/XP/2003 server." msgstr "" -#: plugins/check_nt.c:663 +#: plugins/check_nt.c:668 msgid "Name of the host to check" msgstr "" -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:670 #, fuzzy msgid "Optional port number (default: " msgstr "Ungültige Portnummer" -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:673 msgid "Password needed for the request" msgstr "" -#: plugins/check_nt.c:670 plugins/check_nwstat.c:1661 +#: plugins/check_nt.c:675 plugins/check_nwstat.c:1661 #: plugins/check_overcr.c:432 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:672 plugins/check_nwstat.c:1663 +#: plugins/check_nt.c:677 plugins/check_nwstat.c:1663 #: plugins/check_overcr.c:434 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:674 +#: plugins/check_nt.c:679 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:676 +#: plugins/check_nt.c:681 msgid "Parameters passed to specified check (see below)" msgstr "" -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:683 msgid "Display options (currently only SHOWALL works)" msgstr "" -#: plugins/check_nt.c:680 +#: plugins/check_nt.c:685 msgid "Return UNKNOWN on timeouts" msgstr "" -#: plugins/check_nt.c:683 +#: plugins/check_nt.c:688 msgid "Print this help screen" msgstr "" -#: plugins/check_nt.c:685 +#: plugins/check_nt.c:690 msgid "Print version information" msgstr "" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:692 msgid "Variable to check" msgstr "" -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:693 msgid "Valid variables are:" msgstr "" -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:695 msgid "Get the NSClient version" msgstr "" -#: plugins/check_nt.c:691 +#: plugins/check_nt.c:696 msgid "If -l is specified, will return warning if versions differ." msgstr "" -#: plugins/check_nt.c:693 +#: plugins/check_nt.c:698 msgid "Average CPU load on last x minutes." msgstr "" -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:699 msgid "Request a -l parameter with the following syntax:" msgstr "" -#: plugins/check_nt.c:695 +#: plugins/check_nt.c:700 msgid "-l ,,." msgstr "" -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:701 msgid " should be less than 24*60." msgstr "" -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:702 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:705 msgid "Get the uptime of the machine." msgstr "" -#: plugins/check_nt.c:701 +#: plugins/check_nt.c:706 msgid "No specific parameters. No warning or critical threshold" msgstr "" -#: plugins/check_nt.c:703 +#: plugins/check_nt.c:708 msgid "Size and percentage of disk use." msgstr "" -#: plugins/check_nt.c:704 +#: plugins/check_nt.c:709 msgid "Request a -l parameter containing the drive letter only." msgstr "" -#: plugins/check_nt.c:705 plugins/check_nt.c:708 +#: plugins/check_nt.c:710 plugins/check_nt.c:713 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "" -#: plugins/check_nt.c:707 +#: plugins/check_nt.c:712 msgid "Memory use." msgstr "" -#: plugins/check_nt.c:710 +#: plugins/check_nt.c:715 msgid "Check the state of one or several services." msgstr "" -#: plugins/check_nt.c:711 plugins/check_nt.c:720 +#: plugins/check_nt.c:716 plugins/check_nt.c:725 msgid "Request a -l parameters with the following syntax:" msgstr "" -#: plugins/check_nt.c:712 +#: plugins/check_nt.c:717 msgid "-l ,,,..." msgstr "" -#: plugins/check_nt.c:713 +#: plugins/check_nt.c:718 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "" -#: plugins/check_nt.c:714 +#: plugins/check_nt.c:719 msgid "in the returned string." msgstr "" -#: plugins/check_nt.c:716 +#: plugins/check_nt.c:721 msgid "Check if one or several process are running." msgstr "" -#: plugins/check_nt.c:717 +#: plugins/check_nt.c:722 msgid "Same syntax as SERVICESTATE." msgstr "" -#: plugins/check_nt.c:719 +#: plugins/check_nt.c:724 msgid "Check any performance counter of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:721 +#: plugins/check_nt.c:726 msgid "-l \"\\\\\\\\counter\",\"" msgstr "" -#: plugins/check_nt.c:722 +#: plugins/check_nt.c:727 msgid "The parameter is optional and is given to a printf " msgstr "" -#: plugins/check_nt.c:723 +#: plugins/check_nt.c:728 msgid "output command which requires a float parameter." msgstr "" -#: plugins/check_nt.c:724 +#: plugins/check_nt.c:729 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "" -#: plugins/check_nt.c:725 plugins/check_nt.c:740 +#: plugins/check_nt.c:730 plugins/check_nt.c:745 msgid "Some examples:" msgstr "" -#: plugins/check_nt.c:729 +#: plugins/check_nt.c:734 msgid "Check any performance counter object of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:730 +#: plugins/check_nt.c:735 msgid "" "Syntax: check_nt -H -p -v INSTANCES -l " msgstr "" -#: plugins/check_nt.c:731 +#: plugins/check_nt.c:736 msgid " is a Windows Perfmon Counter object (eg. Process)," msgstr "" -#: plugins/check_nt.c:732 +#: plugins/check_nt.c:737 msgid "if it is two words, it should be enclosed in quotes" msgstr "" -#: plugins/check_nt.c:733 +#: plugins/check_nt.c:738 msgid "The returned results will be a comma-separated list of instances on " msgstr "" -#: plugins/check_nt.c:734 +#: plugins/check_nt.c:739 msgid " the selected computer for that object." msgstr "" -#: plugins/check_nt.c:735 +#: plugins/check_nt.c:740 msgid "" "The purpose of this is to be run from command line to determine what " "instances" msgstr "" -#: plugins/check_nt.c:736 +#: plugins/check_nt.c:741 msgid "" " are available for monitoring without having to log onto the Windows server" msgstr "" -#: plugins/check_nt.c:737 +#: plugins/check_nt.c:742 msgid " to run Perfmon directly." msgstr "" -#: plugins/check_nt.c:738 +#: plugins/check_nt.c:743 msgid "It can also be used in scripts that automatically create Nagios service" msgstr "" -#: plugins/check_nt.c:739 +#: plugins/check_nt.c:744 msgid " configuration files." msgstr "" -#: plugins/check_nt.c:741 +#: plugins/check_nt.c:746 msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" msgstr "" -#: plugins/check_nt.c:744 +#: plugins/check_nt.c:749 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" -#: plugins/check_nt.c:746 +#: plugins/check_nt.c:751 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" -#: plugins/check_nt.c:747 +#: plugins/check_nt.c:752 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" -#: plugins/check_nt.c:748 +#: plugins/check_nt.c:753 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "" -#: plugins/check_nt.c:749 +#: plugins/check_nt.c:754 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" -#: plugins/check_nt.c:750 +#: plugins/check_nt.c:755 msgid "and on the client service it's connecting to." msgstr "" @@ -3286,13 +3308,13 @@ msgid " %s - database %s (%d sec.)|%s\n" msgstr "" #: plugins/check_pgsql.c:256 plugins/check_time.c:277 plugins/check_time.c:289 -#: plugins/check_users.c:166 +#: plugins/check_users.c:138 msgid "Critical threshold must be a positive integer" msgstr "Critical threshold muss ein positiver Integer sein" #: plugins/check_pgsql.c:262 plugins/check_time.c:258 plugins/check_time.c:282 -#: plugins/check_users.c:172 plugins/check_users.c:182 -#: plugins/check_users.c:189 +#: plugins/check_users.c:144 plugins/check_users.c:154 +#: plugins/check_users.c:160 msgid "Warning threshold must be a positive integer" msgstr "Warning threshold muss ein positiver Integer sein" @@ -3461,116 +3483,116 @@ msgstr "" msgid " (%d) cannot be larger than (%d)\n" msgstr "" -#: plugins/check_ping.c:441 +#: plugins/check_ping.c:442 #, c-format msgid "Cannot open stderr for %s\n" msgstr "" -#: plugins/check_ping.c:490 plugins/check_ping.c:492 +#: plugins/check_ping.c:492 plugins/check_ping.c:494 msgid "System call sent warnings to stderr " msgstr "" -#: plugins/check_ping.c:519 +#: plugins/check_ping.c:521 #, fuzzy, c-format msgid "CRITICAL - Network Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:521 +#: plugins/check_ping.c:523 #, c-format msgid "CRITICAL - Host Unreachable (%s)" msgstr "" -#: plugins/check_ping.c:523 +#: plugins/check_ping.c:525 #, fuzzy, c-format msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:525 +#: plugins/check_ping.c:527 #, fuzzy, c-format msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:527 +#: plugins/check_ping.c:529 #, fuzzy, c-format msgid "CRITICAL - Network Prohibited (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:529 +#: plugins/check_ping.c:531 #, fuzzy, c-format msgid "CRITICAL - Host Prohibited (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:531 +#: plugins/check_ping.c:533 #, fuzzy, c-format msgid "CRITICAL - Packet Filtered (%s)" msgstr "CRITICAL - Netzwerk nicht erreichbar (%s)" -#: plugins/check_ping.c:533 +#: plugins/check_ping.c:535 #, c-format msgid "CRITICAL - Host not found (%s)" msgstr "" -#: plugins/check_ping.c:535 +#: plugins/check_ping.c:537 #, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "" -#: plugins/check_ping.c:542 +#: plugins/check_ping.c:544 msgid "Unable to realloc warn_text" msgstr "" -#: plugins/check_ping.c:559 +#: plugins/check_ping.c:561 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:573 msgid "host to ping" msgstr "" -#: plugins/check_ping.c:577 +#: plugins/check_ping.c:579 msgid "number of ICMP ECHO packets to send" msgstr "" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:580 #, c-format msgid "(Default: %d)\n" msgstr "" -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:582 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:587 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:588 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "" -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:589 msgid "percentage of packet loss to trigger an alarm state." msgstr "" -#: plugins/check_ping.c:590 +#: plugins/check_ping.c:592 #, fuzzy msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_ping.c:591 +#: plugins/check_ping.c:593 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:592 +#: plugins/check_ping.c:594 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:593 +#: plugins/check_ping.c:595 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" @@ -3608,167 +3630,167 @@ msgstr "" msgid " with %s" msgstr "" -#: plugins/check_procs.c:378 +#: plugins/check_procs.c:380 #, fuzzy msgid "Critical Process Count must be an integer!" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_procs.c:390 +#: plugins/check_procs.c:392 #, fuzzy msgid "Warning Process Count must be an integer!" msgstr "Warning threshold Integer sein" -#: plugins/check_procs.c:398 +#: plugins/check_procs.c:400 #, fuzzy msgid "Parent Process ID must be an integer!" msgstr "Argument für check_dummy muss ein Integer sein" -#: plugins/check_procs.c:404 plugins/check_procs.c:518 +#: plugins/check_procs.c:406 plugins/check_procs.c:527 #, c-format msgid "%s%sSTATE = %s" msgstr "" -#: plugins/check_procs.c:413 +#: plugins/check_procs.c:415 #, fuzzy msgid "UID was not found" msgstr "%s [%s nicht gefunden]" -#: plugins/check_procs.c:419 +#: plugins/check_procs.c:421 #, fuzzy msgid "User name was not found" msgstr "%s [%s nicht gefunden]" -#: plugins/check_procs.c:434 +#: plugins/check_procs.c:436 #, c-format msgid "%s%scommand name '%s'" msgstr "" -#: plugins/check_procs.c:462 +#: plugins/check_procs.c:471 #, fuzzy msgid "RSS must be an integer!" msgstr "skip lines muss ein Integer sein" -#: plugins/check_procs.c:469 +#: plugins/check_procs.c:478 #, fuzzy msgid "VSZ must be an integer!" msgstr "skip lines muss ein Integer sein" -#: plugins/check_procs.c:477 +#: plugins/check_procs.c:486 msgid "PCPU must be a float!" msgstr "" -#: plugins/check_procs.c:501 +#: plugins/check_procs.c:510 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "" -#: plugins/check_procs.c:537 +#: plugins/check_procs.c:546 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "" -#: plugins/check_procs.c:541 +#: plugins/check_procs.c:550 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "" -#: plugins/check_procs.c:678 +#: plugins/check_procs.c:687 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:679 +#: plugins/check_procs.c:688 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:680 +#: plugins/check_procs.c:689 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:698 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:700 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:702 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:694 +#: plugins/check_procs.c:703 msgid "PROCS - number of processes (default)" msgstr "" -#: plugins/check_procs.c:695 +#: plugins/check_procs.c:704 msgid "VSZ - virtual memory size" msgstr "" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:705 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:697 +#: plugins/check_procs.c:706 msgid "CPU - percentage CPU" msgstr "" -#: plugins/check_procs.c:700 +#: plugins/check_procs.c:709 msgid "ELAPSED - time elapsed in seconds" msgstr "" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:714 msgid "Extra information. Up to 3 verbosity levels" msgstr "" -#: plugins/check_procs.c:710 +#: plugins/check_procs.c:719 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:720 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:712 +#: plugins/check_procs.c:721 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:714 +#: plugins/check_procs.c:723 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:716 +#: plugins/check_procs.c:725 msgid "Only scan for processes with VSZ higher than indicated." msgstr "" -#: plugins/check_procs.c:718 +#: plugins/check_procs.c:727 msgid "Only scan for processes with RSS higher than indicated." msgstr "" -#: plugins/check_procs.c:720 +#: plugins/check_procs.c:729 msgid "Only scan for processes with PCPU higher than indicated." msgstr "" -#: plugins/check_procs.c:722 +#: plugins/check_procs.c:731 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:724 +#: plugins/check_procs.c:733 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:726 +#: plugins/check_procs.c:735 msgid "Only scan for processes with args that contain the regex STRING." msgstr "" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:737 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:730 +#: plugins/check_procs.c:739 #, c-format msgid "" "\n" @@ -3778,7 +3800,7 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:735 +#: plugins/check_procs.c:744 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3789,27 +3811,27 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:744 +#: plugins/check_procs.c:753 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:754 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:747 +#: plugins/check_procs.c:756 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:748 +#: plugins/check_procs.c:757 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:750 +#: plugins/check_procs.c:759 msgid "Alert if VSZ of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:752 +#: plugins/check_procs.c:761 #, c-format msgid "Alert if CPU of any processes over 10%% or 20%%" msgstr "" @@ -3972,7 +3994,7 @@ msgstr "Ung msgid "Invalid REAL response received from host on port %d\n" msgstr "" -#: plugins/check_real.c:184 plugins/check_tcp.c:292 +#: plugins/check_real.c:184 plugins/check_tcp.c:289 #, c-format msgid "No data received from host\n" msgstr "" @@ -3982,11 +4004,11 @@ msgstr "" msgid "REAL %s - %d second response time\n" msgstr "" -#: plugins/check_real.c:336 plugins/check_smtp.c:576 plugins/check_ups.c:536 +#: plugins/check_real.c:336 plugins/check_smtp.c:578 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "Warnung time muss ein positiver Integer sein" -#: plugins/check_real.c:345 plugins/check_smtp.c:567 plugins/check_ups.c:527 +#: plugins/check_real.c:345 plugins/check_smtp.c:569 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "Critical time muss ein positiver Integer sein" @@ -4016,7 +4038,7 @@ msgstr "" msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_real.c:438 plugins/check_smtp.c:808 +#: plugins/check_real.c:438 plugins/check_smtp.c:827 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" @@ -4034,511 +4056,514 @@ msgstr "" msgid "values." msgstr "" -#: plugins/check_smtp.c:146 plugins/check_swap.c:265 plugins/check_swap.c:271 +#: plugins/check_smtp.c:150 plugins/check_swap.c:265 plugins/check_swap.c:271 #, c-format msgid "malloc() failed!\n" msgstr "" -#: plugins/check_smtp.c:150 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "" -#: plugins/check_smtp.c:185 plugins/check_smtp.c:209 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "" -#: plugins/check_smtp.c:196 +#: plugins/check_smtp.c:200 #, fuzzy, c-format msgid "Invalid SMTP response received from host: %s\n" msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:198 +#: plugins/check_smtp.c:202 #, fuzzy, c-format msgid "Invalid SMTP response received from host on port %d: %s\n" msgstr "Ungültige HTTP Antwort von Host erhalten auf Port %d\n" -#: plugins/check_smtp.c:219 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "" -#: plugins/check_smtp.c:231 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "" -#: plugins/check_smtp.c:237 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "" -#: plugins/check_smtp.c:257 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "" -#: plugins/check_smtp.c:264 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:276 -#, fuzzy -msgid "CRITICAL - Cannot retrieve server certificate." -msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" - -#: plugins/check_smtp.c:311 plugins/check_snmp.c:722 +#: plugins/check_smtp.c:312 plugins/check_snmp.c:718 #, c-format msgid "Could Not Compile Regular Expression" msgstr "" -#: plugins/check_smtp.c:320 +#: plugins/check_smtp.c:321 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "" -#: plugins/check_smtp.c:324 plugins/check_snmp.c:453 +#: plugins/check_smtp.c:325 plugins/check_snmp.c:449 #, c-format msgid "Execute Error: %s\n" msgstr "" -#: plugins/check_smtp.c:338 +#: plugins/check_smtp.c:339 #, c-format msgid "no authuser specified, " msgstr "" -#: plugins/check_smtp.c:343 +#: plugins/check_smtp.c:344 #, c-format msgid "no authpass specified, " msgstr "" -#: plugins/check_smtp.c:350 plugins/check_smtp.c:372 plugins/check_smtp.c:393 -#: plugins/check_smtp.c:668 +#: plugins/check_smtp.c:351 plugins/check_smtp.c:373 plugins/check_smtp.c:394 +#: plugins/check_smtp.c:685 #, c-format msgid "sent %s\n" msgstr "" -#: plugins/check_smtp.c:353 +#: plugins/check_smtp.c:354 #, fuzzy, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:358 plugins/check_smtp.c:380 plugins/check_smtp.c:401 -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:359 plugins/check_smtp.c:381 plugins/check_smtp.c:402 +#: plugins/check_smtp.c:696 #, fuzzy, c-format msgid "received %s\n" msgstr "Keine Daten empfangen %s\n" -#: plugins/check_smtp.c:362 +#: plugins/check_smtp.c:363 #, fuzzy, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:376 +#: plugins/check_smtp.c:377 #, c-format msgid "recv() failed after sending authuser, " msgstr "" -#: plugins/check_smtp.c:384 +#: plugins/check_smtp.c:385 #, fuzzy, c-format msgid "invalid response received after authuser, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:397 +#: plugins/check_smtp.c:398 #, c-format msgid "recv() failed after sending authpass, " msgstr "" -#: plugins/check_smtp.c:405 +#: plugins/check_smtp.c:406 #, fuzzy, c-format msgid "invalid response received after authpass, " msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:412 +#: plugins/check_smtp.c:413 #, c-format msgid "only authtype LOGIN is supported, " msgstr "" -#: plugins/check_smtp.c:436 +#: plugins/check_smtp.c:437 #, fuzzy, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr " - %s - %.3f Sekunden Antwortzeit %s%s|%s %s\n" -#: plugins/check_smtp.c:543 plugins/check_smtp.c:555 +#: plugins/check_smtp.c:545 plugins/check_smtp.c:557 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "" -#: plugins/check_smtp.c:603 +#: plugins/check_smtp.c:608 msgid "SSL support not available - install OpenSSL and recompile" msgstr "" -#: plugins/check_smtp.c:674 +#: plugins/check_smtp.c:676 plugins/check_smtp.c:681 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:691 #, fuzzy, c-format msgid "recv() failed after QUIT." msgstr "Ungültige HTTP Antwort von Host empfangen\n" -#: plugins/check_smtp.c:676 +#: plugins/check_smtp.c:693 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:764 +#: plugins/check_smtp.c:781 #, fuzzy msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_smtp.c:778 +#: plugins/check_smtp.c:795 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" -#: plugins/check_smtp.c:780 +#: plugins/check_smtp.c:797 msgid "SMTP command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:799 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:801 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:803 msgid "FQDN used for HELO" msgstr "" -#: plugins/check_smtp.c:789 plugins/check_tcp.c:633 +#: plugins/check_smtp.c:806 plugins/check_tcp.c:630 msgid "Minimum number of days a certificate has to be valid." msgstr "" -#: plugins/check_smtp.c:791 +#: plugins/check_smtp.c:808 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:812 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:797 +#: plugins/check_smtp.c:814 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:816 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:809 +#: plugins/check_smtp.c:818 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:828 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:810 +#: plugins/check_smtp.c:829 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:811 +#: plugins/check_smtp.c:830 msgid "STATE_WARNING return values." msgstr "" -#: plugins/check_snmp.c:299 +#: plugins/check_snmp.c:298 #, fuzzy, c-format msgid "External command error: %s\n" msgstr "Papierfehler" -#: plugins/check_snmp.c:304 +#: plugins/check_snmp.c:303 #, c-format msgid "External command error with no output (return code: %d)\n" msgstr "" -#: plugins/check_snmp.c:410 +#: plugins/check_snmp.c:406 msgid "No valid data returned" msgstr "" -#: plugins/check_snmp.c:417 +#: plugins/check_snmp.c:413 msgid "Time duration between plugin calls is invalid" msgstr "" -#: plugins/check_snmp.c:513 +#: plugins/check_snmp.c:509 msgid "Cannot malloc" msgstr "" -#: plugins/check_snmp.c:519 +#: plugins/check_snmp.c:515 msgid "Cannot asprintf()" msgstr "" -#: plugins/check_snmp.c:525 +#: plugins/check_snmp.c:521 msgid "Cannot realloc()" msgstr "" -#: plugins/check_snmp.c:541 +#: plugins/check_snmp.c:537 msgid "No previous data to calculate rate - assume okay" msgstr "" -#: plugins/check_snmp.c:680 +#: plugins/check_snmp.c:676 #, fuzzy msgid "Retries interval must be a positive integer" msgstr "Time interval muss ein positiver Integer sein" -#: plugins/check_snmp.c:742 +#: plugins/check_snmp.c:738 #, fuzzy, c-format msgid "Could not reallocate labels[%d]" msgstr "Konnte addr nicht zuweisen\n" -#: plugins/check_snmp.c:754 +#: plugins/check_snmp.c:750 #, fuzzy msgid "Could not reallocate labels\n" msgstr "Konnte·url·nicht·zuweisen\n" -#: plugins/check_snmp.c:771 +#: plugins/check_snmp.c:767 #, fuzzy, c-format msgid "Could not reallocate units [%d]\n" msgstr "Konnte·url·nicht·zuweisen\n" -#: plugins/check_snmp.c:783 +#: plugins/check_snmp.c:779 msgid "Could not realloc() units\n" msgstr "" -#: plugins/check_snmp.c:800 +#: plugins/check_snmp.c:796 #, fuzzy msgid "Rate multiplier must be a positive integer" msgstr "Paketgröße muss ein positiver Integer sein" -#: plugins/check_snmp.c:852 +#: plugins/check_snmp.c:848 #, fuzzy msgid "No host specified\n" msgstr "" "Kein Hostname angegeben\n" "\n" -#: plugins/check_snmp.c:856 +#: plugins/check_snmp.c:852 #, fuzzy msgid "No OIDs specified\n" msgstr "" "Kein Hostname angegeben\n" "\n" -#: plugins/check_snmp.c:878 +#: plugins/check_snmp.c:874 msgid "Invalid seclevel" msgstr "" -#: plugins/check_snmp.c:885 plugins/check_snmp.c:888 plugins/check_snmp.c:906 +#: plugins/check_snmp.c:881 plugins/check_snmp.c:884 plugins/check_snmp.c:902 #, c-format msgid "Required parameter: %s\n" msgstr "" -#: plugins/check_snmp.c:927 +#: plugins/check_snmp.c:923 msgid "Invalid SNMP version" msgstr "" -#: plugins/check_snmp.c:944 +#: plugins/check_snmp.c:940 msgid "Unbalanced quotes\n" msgstr "" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:989 msgid "Check status of remote machines and obtain system information via SNMP" msgstr "" -#: plugins/check_snmp.c:1006 +#: plugins/check_snmp.c:1002 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "" -#: plugins/check_snmp.c:1008 +#: plugins/check_snmp.c:1004 msgid "SNMP protocol version" msgstr "" -#: plugins/check_snmp.c:1010 +#: plugins/check_snmp.c:1006 msgid "SNMPv3 securityLevel" msgstr "" -#: plugins/check_snmp.c:1012 +#: plugins/check_snmp.c:1008 msgid "SNMPv3 auth proto" msgstr "" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1010 msgid "SNMPv3 priv proto (default DES)" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1014 msgid "Optional community string for SNMP communication" msgstr "" -#: plugins/check_snmp.c:1019 +#: plugins/check_snmp.c:1015 msgid "default is" msgstr "" -#: plugins/check_snmp.c:1021 +#: plugins/check_snmp.c:1017 msgid "SNMPv3 username" msgstr "" -#: plugins/check_snmp.c:1023 +#: plugins/check_snmp.c:1019 msgid "SNMPv3 authentication password" msgstr "" -#: plugins/check_snmp.c:1025 +#: plugins/check_snmp.c:1021 msgid "SNMPv3 privacy password" msgstr "" -#: plugins/check_snmp.c:1029 +#: plugins/check_snmp.c:1025 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:1031 +#: plugins/check_snmp.c:1027 msgid "" "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" msgstr "" -#: plugins/check_snmp.c:1032 +#: plugins/check_snmp.c:1028 msgid "for symbolic OIDs.)" msgstr "" -#: plugins/check_snmp.c:1034 +#: plugins/check_snmp.c:1030 msgid "Delimiter to use when parsing returned data. Default is" msgstr "" -#: plugins/check_snmp.c:1035 +#: plugins/check_snmp.c:1031 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:1036 +#: plugins/check_snmp.c:1032 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:1040 +#: plugins/check_snmp.c:1036 #, fuzzy msgid "Warning threshold range(s)" msgstr "Warning threshold Integer sein" -#: plugins/check_snmp.c:1042 +#: plugins/check_snmp.c:1038 #, fuzzy msgid "Critical threshold range(s)" msgstr "Critical threshold muss ein Integer sein" -#: plugins/check_snmp.c:1044 +#: plugins/check_snmp.c:1040 msgid "Enable rate calculation. See 'Rate Calculation' below" msgstr "" -#: plugins/check_snmp.c:1046 +#: plugins/check_snmp.c:1042 msgid "" "Converts rate per second. For example, set to 60 to convert to per minute" msgstr "" -#: plugins/check_snmp.c:1050 +#: plugins/check_snmp.c:1046 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:1052 +#: plugins/check_snmp.c:1048 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:1054 +#: plugins/check_snmp.c:1050 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:1056 +#: plugins/check_snmp.c:1052 msgid "Invert search result (CRITICAL if found)" msgstr "" -#: plugins/check_snmp.c:1060 +#: plugins/check_snmp.c:1056 msgid "Prefix label for output from plugin" msgstr "" -#: plugins/check_snmp.c:1062 +#: plugins/check_snmp.c:1058 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:1064 +#: plugins/check_snmp.c:1060 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:1068 +#: plugins/check_snmp.c:1064 msgid "Number of retries to be used in the requests" msgstr "" -#: plugins/check_snmp.c:1073 +#: plugins/check_snmp.c:1069 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1074 +#: plugins/check_snmp.c:1070 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_snmp.c:1075 +#: plugins/check_snmp.c:1071 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "" -#: plugins/check_snmp.c:1079 +#: plugins/check_snmp.c:1075 msgid "" -"- Multiple OIDs may be indicated by a comma or space-delimited list (lists " -"with" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " msgstr "" -#: plugins/check_snmp.c:1080 -msgid "internal spaces must be quoted). Maximum:" +#: plugins/check_snmp.c:1076 +msgid "list (lists with internal spaces must be quoted). Maximum:" msgstr "" -#: plugins/check_snmp.c:1080 +#: plugins/check_snmp.c:1076 msgid "OIDs." msgstr "" -#: plugins/check_snmp.c:1084 +#: plugins/check_snmp.c:1080 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1085 +#: plugins/check_snmp.c:1081 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1086 +#: plugins/check_snmp.c:1082 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1087 +#: plugins/check_snmp.c:1083 msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_snmp.c:1090 +#: plugins/check_snmp.c:1086 msgid "Rate Calculation:" msgstr "" -#: plugins/check_snmp.c:1091 +#: plugins/check_snmp.c:1087 msgid "In many places, SNMP returns counters that are only meaningful when" msgstr "" -#: plugins/check_snmp.c:1092 +#: plugins/check_snmp.c:1088 msgid "calculating the counter difference since the last check. check_snmp" msgstr "" -#: plugins/check_snmp.c:1093 +#: plugins/check_snmp.c:1089 msgid "saves the last state information in a file so that the rate per second" msgstr "" -#: plugins/check_snmp.c:1094 +#: plugins/check_snmp.c:1090 msgid "can be calculated. Use the --rate option to save state information." msgstr "" -#: plugins/check_snmp.c:1095 +#: plugins/check_snmp.c:1091 msgid "" "On the first run, there will be no prior state - this will return with OK." msgstr "" -#: plugins/check_snmp.c:1096 +#: plugins/check_snmp.c:1092 msgid "The state is uniquely determined by the arguments to the plugin, so" msgstr "" -#: plugins/check_snmp.c:1097 +#: plugins/check_snmp.c:1093 msgid "changing the arguments will create a new state file." msgstr "" @@ -4547,26 +4572,26 @@ msgstr "" msgid "Port number must be a positive integer" msgstr "Port muss ein positiver Integer sein" -#: plugins/check_ssh.c:228 +#: plugins/check_ssh.c:232 #, c-format msgid "Server answer: %s" msgstr "" -#: plugins/check_ssh.c:247 +#: plugins/check_ssh.c:251 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" -#: plugins/check_ssh.c:254 +#: plugins/check_ssh.c:260 #, c-format -msgid "SSH OK - %s (protocol %s)\n" +msgid "SSH OK - %s (protocol %s) | %s\n" msgstr "" -#: plugins/check_ssh.c:274 +#: plugins/check_ssh.c:281 msgid "Try to connect to an SSH server at specified server and port" msgstr "" -#: plugins/check_ssh.c:290 +#: plugins/check_ssh.c:297 msgid "" "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)" msgstr "" @@ -4667,101 +4692,96 @@ msgstr "" msgid "With UDP checks, a send/expect string must be specified." msgstr "" -#: plugins/check_tcp.c:240 -#, c-format -msgid "CRITICAL - Cannot retrieve server certificate.\n" -msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" - -#: plugins/check_tcp.c:418 +#: plugins/check_tcp.c:415 msgid "No arguments found" msgstr "" -#: plugins/check_tcp.c:519 +#: plugins/check_tcp.c:516 msgid "Maxbytes must be a positive integer" msgstr "Maxbytes muss ein positiver Integer sein" -#: plugins/check_tcp.c:537 +#: plugins/check_tcp.c:534 msgid "Refuse must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:547 +#: plugins/check_tcp.c:544 msgid "Mismatch must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:553 +#: plugins/check_tcp.c:550 msgid "Delay must be a positive integer" msgstr "Delay muss ein positiver Integer sein" -#: plugins/check_tcp.c:581 +#: plugins/check_tcp.c:578 #, fuzzy msgid "You must provide a server address" msgstr "%s: Hostname muss angegeben werden\n" -#: plugins/check_tcp.c:583 +#: plugins/check_tcp.c:580 #, fuzzy msgid "Invalid hostname, address or socket" msgstr "Ungültige(r) Hostname/Adresse" -#: plugins/check_tcp.c:597 +#: plugins/check_tcp.c:594 #, fuzzy, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" "\n" msgstr "Dieses plugin testet Gameserververbindungen zum angegebenen Host." -#: plugins/check_tcp.c:610 +#: plugins/check_tcp.c:607 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" msgstr "" -#: plugins/check_tcp.c:611 +#: plugins/check_tcp.c:608 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:610 msgid "String to send to the server" msgstr "" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "String to expect in server response" msgstr "" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "(may be repeated)" msgstr "" -#: plugins/check_tcp.c:617 +#: plugins/check_tcp.c:614 msgid "All expect strings need to occur in server response. Default is any" msgstr "" -#: plugins/check_tcp.c:619 +#: plugins/check_tcp.c:616 msgid "String to send server to initiate a clean close of the connection" msgstr "" -#: plugins/check_tcp.c:621 +#: plugins/check_tcp.c:618 msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:623 +#: plugins/check_tcp.c:620 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:625 +#: plugins/check_tcp.c:622 #, fuzzy msgid "Hide output from TCP socket" msgstr "Konnte TCP socket nicht öffnen\n" -#: plugins/check_tcp.c:627 +#: plugins/check_tcp.c:624 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:629 +#: plugins/check_tcp.c:626 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:635 +#: plugins/check_tcp.c:632 msgid "Use SSL for the connection." msgstr "" @@ -4999,21 +5019,16 @@ msgstr "" msgid "http://www.networkupstools.org" msgstr "" -#: plugins/check_users.c:92 -#, c-format -msgid "# users=%d" -msgstr "" - -#: plugins/check_users.c:115 +#: plugins/check_users.c:90 msgid "Unable to read output" msgstr "" -#: plugins/check_users.c:122 +#: plugins/check_users.c:97 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "" -#: plugins/check_users.c:207 +#: plugins/check_users.c:176 #, fuzzy msgid "This plugin checks the number of users currently logged in on the local" msgstr "" @@ -5022,16 +5037,16 @@ msgstr "" "unterschritten wird.\n" "\n" -#: plugins/check_users.c:208 +#: plugins/check_users.c:177 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "" -#: plugins/check_users.c:218 +#: plugins/check_users.c:187 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_users.c:220 +#: plugins/check_users.c:189 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" @@ -5876,6 +5891,19 @@ msgstr "" msgid "The -v switch can be specified several times for increased verbosity." msgstr "" +#~ msgid "Critical threshold must be integer" +#~ msgstr "Critical threshold muss ein Integer sein" + +#~ msgid "Warning threshold must be integer" +#~ msgstr "Warning threshold Integer sein" + +#, fuzzy +#~ msgid "CRITICAL - Cannot retrieve server certificate." +#~ msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + +#~ msgid "CRITICAL - Cannot retrieve server certificate.\n" +#~ msgstr "CRITICAL - Konnte kein Serverzertifikat erhalten\n" + #~ msgid "Invalid HTTP response received from host\n" #~ msgstr "Ungültige HTTP Antwort von Host empfangen\n" diff --git a/po/fr.gmo b/po/fr.gmo index 07409727de5458e8c2ecb9ddb61e84f288702432..b84f979e7a57f00fb5a24bf16a7d2219fd574a30 100644 GIT binary patch delta 18173 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 YLD zT|LKDJWFm3^~Y?RG|Co|f78ZqVXSSxh_+>kN0`%{e#rO9IYQYO459yLs86_O{`XRG zlHdV_M@c{06Ne)|j-37YFR3o=8loQ^ygE)%uOp0fo%(z>_7w8ZA<81~Q#?b`;mi4D zX!o|RpNByGg?g&Y|EN^RHdN6v8n&{Xen$B`$~u$2wQb6B@;~Gs+jxw%Ep0v^Uzz&r zoS&0akTQO~d47zL<*y^||27$YYWa>hJ~Zx6zAH(`V#jTAm672(eJ)2KN4!sIuSFJ({2MO=&c zHi^F@oIkK7X$u_;!FNgeBRk&~nwr2igcX;+DYiFk*)UHA}} zVinx*pY{bPTW90n$-8qi(zayA(Sbi+wLO1NBYvhkQIzTM!+3k*Z2W_=a<)$Og=}3V z`pZS0zv7%~2q>r!y&ri(DX{ zOx-g47?ZFPb+vFB&cZm#KO+4?@+I}AT-SF#B)F(NhnAzDr-C;j<^FWOfOs?c-%S%I zf_NkO>Xhj?==s<0i;M$C`rcw(jxNts6R+*L+rA3-{5=1PjLq7xI&wsiIq&Y!ZI)K5YklQG5C znG)WT`u!J1quC@Kl`+{iI?M^bkYXvTPFW6Ho(=O-et`5E=^phZIrjwliWo{fid2Pm zg^4RrUJgIRSI1iNBT1XwG^|QPuUC~gfD}W^b2y9oEm)1X1J)t_0$brWTx@%+hs}vQ z;OnF~@;WAxF48tH*Qn|#`QLy1Xycx48>+Y|=`}Sb)wS(bU>8yY+I6LTr`qFJBptAkV;@rYSHJ%n6O^Yxs_o$!v5t`j=QnId*(W6a z9(Bsop^nkS={N)bq&$-RCGz!2WoQ#b*4 zjBT{rs3RRsXdl7Hp609-jn)&tj%`Talh4GzNgt6)**iQ>`4pW;StMl%oF7G6L|HgxjY$8H z5=lC`VsU$JFY--k7w5(LPa;#2f)*HL+B)CblM3Unl>I{LNWG4`Rul09g*GK9D}tBt zS9|W)wm~9ggUQ#W{1ehcdwwO!_4R-F;3U~X{l8&(MtsM{4Y9QCkYdM+_#qClWy#hW zln2q-7A%74P8|2cOF=Y`pLI{6CJ_vuMNX@WhrqAG=75LYMVrfd$ejxWjgz(4Q| zw#K4duo(HDX_G*#BMb9W{w?`@xYCvvBR^->_aRvuYM1rSy54wQo~(=Q_U6cX+_`$b zIrsMG&+6H)Wn9+zC69__-P=DeSJvh)`}yWC9~++>n~)G*KCx1KLQH%@R=KlZ`^<4) zFPRl{^>E&-s&~S3Wu5w~cfkCEJzU=N<8r%-&cEBkRdUC+T&~-xJ9eeJUPkVqppy6e V5|OTe`6mas^6i)~z*WKTe*pbVrlJ4< delta 18830 zcmajn33N_ZzsK?O7!yH=nM59m5F&(_l87m$keF(oha`l=l!Pk!sL~o*V@<80ikhm% znzd91S`@7gTC|FmmYQ0n%KiSHz4Kmc-Mj8RYi*zX-+P~P_SwTZ4}I6W^I`t|FBI@x z2*|h4;YiNwIDt5|yyK+jbDZDns?>4jwsM?7I1kt1Jv@fXT071;Ol#vfeX&`h<3!*} zEQOyVO`M;wEmq?XPIaLq5F&4ql4vsSpYoiZtzyR*=Y_|m;TTfyk8hnEqgiEN7mErDX zFbebpd~2S(y*Ou*9^j-@)8xH0PdDX8){uqJ+l(cIs;OGZyxwX?AUh7pfLbznJG zz%$q!Z(?n%{fucp80!(wLX{u3@m(xRT&;_ll7?7=xIH$(3Fs+DWjc_T(;MZ6fi}f_;2cbGt3$+${pr$yj zC*!Yz(YC^ae#EcZ21`*LSYzW|=u3PUOW^0IC%lO9SfH2Vw7?d~vTk z`LCkR--8;l;~0pZ@5!jgf1_4!d_S|QUqH?Mag4x6s38mQZ$>B@3lcZMP;8C7LY(2K zp&yApI1$U@G#jt5u0s~H$Jt6oJ-&;2k^%$FVv9x%Z3^m1W}!N?4;$ij)X0SnG#zY* z!NlV*1{d4-G`fjzV|ff1E602+fCy@!FU>t_vLevxOL0#|%)c$^i8nWtx&Gu}K zm54J@Q!&Su??tt{XyZqy2MI|r9Z5uWd>B^a{?2?d4e$WQ<2`JKby7{kY-DFT%TO1( zjU};cnlTbXiJPOIFby?jFJK$oj2f}OP-~~w5XUKp1JR=)pFl>db3JO2+(SKq&rq|k z!!U$619jm!7>D~&i|alX!;o~dmZDK>;91mzO+)RXgQ%(g0^N8io$=QY<{f5UC}G%| zxDQswH5iV^P#w5q%S#P69f?IvQ5vfKOIRH@VHNxuwfO!;O>yZA^W=3=Bh@~G@z-KV zw*}Kt7hH`Rfg?8l5#7X2rnx~SRELsmJQ6juuOlx#=QuXO&=KawgRuqi3#j{jf{}Q| zLq-=WG16S1KB{6UR=`DA6St#A;wRLT6dGmf!!eP#1**fdF#$JWY5c=lV6++fAk>sZ zVO{hLB~zTta_bh<8aRv^y0fUEx{2CWzGKWtBw%gg6l{!(um+yRT9_xxOhFygc|B26 zy#Q7J9&&w;bA^na=rO9tf!U@*(Wq745~Hyf>O!-z4Iag|SUkscs1ItDPr~}R3uEyH zYDB`v8Z)pR@m6f4{r`xJE)+A)toEs>x%(V-qTjQQ(-k|QPF#zf@HT4d62{v_h`z)x zVF1oWoxj@p3+nuc=XfX_C%M0Kkc{Re?*!90bw#X< zn$rZ-jZ#tDZyxHp2T+UlN7Q!ooorrcQK*jhn9TS$Br}(SYIqE*;$4i#3NM%u>4|#6 zH&H`-74?J8hQ1xf z5HG@5JcU}_e$&iXts#~sZiXeW2Zmw>YQ*NE9_($@cD{&eU*siYWmL!GJY?#UNkN^k z6m`NGEQ!v`=3`R|b%Qw66!ga+eAd=4LUrVTEkA|YH8)XH5;EPGjJnRVSOz`I$moJQ zu@#=ca4b2)%yB%bz7OijaA zlS!sv8*0%#L5+ytEc2_jDYhjZi=5yb#wvIj^#p#en2v^GQR3#-P8dZz0M)U1SP)lY zVO-~x`QJ&V90i9_L;5|o!3U_GHhycTui?Whs>%*MA+=ljeyBT&T}gPO`D z)O`k`7Uu-4$o-wgWP))QYACz$+RjAd!6D#3ORELVqGsa_n;$fHvN1@h87HVo< zK|Rn8bmNz(HFFPjpZfF7B9EWX{OiKQDJY6dup_QRo$xmn!q^37$XlX1+!uAB)u@ha zM2*Z=tb-@89XhX>HIRhr&?Kyj%P|4ZyvF$ZkSV>;yz_%m9qEr6`Vm+HC!j`R4wk}g zs5juJSQD?JR(q*M#(307q@pjrf}L>@hT%0-hx|Q@&79RjEw)xz42Pjs`vlaYT46na zI`JG<#)nuMgO`{a)yn50HjVnPp}l*Fvp{c#Oa{s2gTu3~s@AyoOo>RhOIXn}uq>9i#99hH-z#e}$RT zdRUx_cBr}Si@NbdEQzn7hH?Xz$GzADzd}t($(3gA>!Lc+2er5tq1Mh3)OD^{A7Y?~ z0{=J7o393{0}W9pv_%bZ2C5@-tm`nC_ycT&7cmY4SDC5lfo|f_sO!x~jnEp@+PH|C z%D>RN|MS0PKELfyH_XANxCFIWzC+#cUu=d!tIeGE$7;kAQB(IehT^xVxqgJ&u9eo9 zZ9N3F`uCuw;=&rnzX6#-Yt0Rtqt?QUs0$oG-QXu|f_`tCCvJxt;_0XkeTZ6=`PP{i zOAv+;x5GpnZQYNpi1V*E-;|{FjK79(F$G#IU*S}AZ!kApi@LxSY>KrunqMxXFxJK2 zn6NeFKW{Rh*NAt_x1$@X{Yp&2AF%~SZZ_p(P~|&3WZIB%-u3=<*h$2egs-5U@C@q2 z!dpy_J7H7eWvE?p9@VbcRx`wHu|M$}n2i6R&QIKCu0Pv)+UhB}-E^S4^-ZkL3D-~~ z;@)B2Tp1We`~hkRZ=pKgV5j-4PDah?bX2>Y*axqmrmp#W=1n*SHD#|LQ{-_@k|{>P zJ=9d>-(^;9b1X>Q1$E&*7>v`g2ChdfwzC+B4=@Nz?>6n~qMNu2mckq?jkB-!mt2w1Xjm7w!E(` zAB_41?F=KM{W%9UG@qe*T6mw?_o1j8#i5?Cy)Dl`t@5d;C)$W5@e?eL-=jwA25KbB z?>AEsf_jia=xI!51{uxeQLKi=512(3hq1&HQFFQ*^`yVr^2P_v4acLdGaCc(1Sa5h z48of4n~o%59pdq*k$vZV=3f^+X&XGj^29YhF#EVQRwd5CU|fz3@gVBFzfd=-ddR%E zhNCV#8*AcL48e=&#yp2jc_?b_bUy4cPd=6cjlc(}ZR7Ky=|DFuLOd1qB=gZ9w_+JQ zgxX%;VmJmJF>~Gu6(?gw9E)nd5DVdEEQfnMWHe-F&bv$2)-|0Xi|D7b@qvin#G zD;zU%JnBXRQ5~6#VYtc0r!j>15o)S}KQn71659~>!z#EA>*7gliFrTQnqvMF$>@gZ z)>&AXcrzBoedxwxs3E_Ox?sNJ#t78ZbjAcs!`8SFwPx<1rnuM%GqsWELtGETxWChw zOf;roJzRpi;7P2Cm#l?Onz^onn&V{D4N|Z=PC=c&8JpwJ$PhbKzA!JeOiU(z9yNl; z(WA^AGL5n9Df1%fjxoepsJYsVNq8AGbhS^L4va&M+-!`%t*ANw0W07=Yq2wC?rUH> z%2QAs-+G4e*OQ#2z!$GzBL0E8V9b|hm8N2G;@PN?c@xjOSnc>6@%*!_2Q2b6e-XvK zNMD`J-|#nGeEwUrChlW6ark#;sycng_;;XSAq5@r3hK%0pEC_cVI1*JRF7|=rljci z=1o=~7ZIo9Aas6UE5cyZlm3gNF!4Npy~BMt4@X}xyDYEgqFHQ_IGu`E)JPmbJ?RPb z!=F%#<_2mc{z5G>pC8RHpN?3LI32YOUqn67Qml{HQ6pRFC-Y((jxC5iOUY<^UBEi{ zFE+xcOXg>ECTcNlLS5)4YLSKgY(7@KF_3sU_QHLr5iE7t40#9C2u?=r{{uF@hefpi zqpq06(ipWrdtpqcGn!GZOVMjCd&O31?#@ZnA!dTI~g|oAZOQHgO!*!b~iR%P|4p z!9=`;g)#Ow`~7cCCX|8^X*IQro^R0po2FFv;V{BGI@U-hb!0rMeg1GVMvY+5 zA7+T#qvm`n>bwJ}cGpmA#OD^{uM0H4WhydIt9O=-S79IGLpTnDZkwJj#9G8Zqka#R zxMNm-66ywNs18m;E!x#s5YM4T@)8!odv}R+bEZLt#ZP>jTxs71I3 zqwoT1PW|tjCyhgG*IuYax){}dC+a%qP}}bjYRDV@Z8|gtwL3f;Y~~c!rQkkR#~KgJ ztFk+05KqPycmtEM&O`H4YBG)`-hx`?RsJy-9%h|~^(fzi4e%x=sof*illFfW8J&0o zHFUNAH5V9%^@&$tA3TeisydI&qU(m8i6^5*>PxHZiJ6jG7)|+5)D$kmXK)K@?(;e> z?(5NlaCzV9U9l_`lTahE2(>sr$AX+B$xVgX6iHvSA2CL#G)ZBfEnxj8aa~hb><(-=5SeZBz)qcJ$--j{8 zSFk1q=XZJ6Mtf98XJIOSfSoX`fXngd3CEGqoUFo%coTJjA_a|&P!}GK+Q(~A?arV^ z>Ncu<6(7^Vt{6l-89U$#bmL9zi2lB2qzCxAJl-c6Pl4uW1!{=4p%%?0)P5~n$mM<0 zRYy%xb5wnA)MA~7?eG9|d=9nm^ZJ{PBx7IVMIJI;$lOD% z&ctFarynjy_4pBX!fdQETXT^i_39 zGlD^=ZS1K}rYD)H*aI)viUy_36HG(x`>(MTRw!+5Gzitj ztm*I&)Ku(1t)ZLPMEk!&IkVb(qZZL58^41Zx|66UxR1JE#quui*DoE*5$B-l=b#ql zF4UShYjrA^xsE_>!~Uo>G9SI)|M$q~gr8B1uV|nd`X;D3n~vJYXHfM{kg2bY8uI6` zJ${R&uxdqfy?E3+eyEL?U|$$E%`NbraMGy=u#kqTVk*VhOy9aab^%{jVM; zguD14@UPvdeV&54z)aNc_!xC!a5Xa`(Wnb#Vn^J7YX1;5a`md4#n>P9K+j`Qe9O8G z^`1H8Ayb6R1Jo~+f)Ot7k3)Y{j{{LdTMIQJ?NIN9;i%oQ6IzUkJ>(eqk3E>(tKRvQ1M{Y8hIJDjaH)O^bG34zoFU{sAWWy-)-spu| zTr-dhJMUs1+=+Uy-KZ)08nrEp*VcX6f6d6~m70paxDEA@*pJb83-uAIT*u|~$NKmT zEN?j^=Q(j^?(3m`DRsdCI1z{9 z`8f8!GOZe!C*OkVz%QuPS}fj7MHFf%bFAx8i|TvpL)026*Vt_52-KT1276-`_Qfx- zDMmJNdH=RN!b7GX1;P(MDqpoVrbYJV?9 zeJ$TZy@H+Qrb7{^U66`ejGi~i)Fkr_mc{}J#vs%P)J4rz7u5bAirQwAQ5RT?S_40z zrtGn`W(%_$`e8T9x1!D~*wWmu2GU`V)0<2yDzZ^exF59*FWT~Js8t))$~^fX)OMYL z>iAh}zSice8IAgZF$pz-8?hmt#|~J!jhT`(Y_I+Qp*O=eOEga~0QHrdi~20Tk9x=F zYioYvbwy3d60C>YF$sUgW>~MCd2fuv*2J4oYvnGgLjg&q<1MkZ_J1~+&UgSdXa33N zr&up+Lc9a@#CP#!Y|`E=qEAsH=hMO10hrb(w)o$jYK`ra@2i(MvsQ1 zW@r6Xh_4jtf*+z9_&#Gg)&<)TuS1pJLcJ&Ay4W8ssQSIA>*VQbrl1vS1hQ}t?#IDc zv7335PU*(}*9|XGpchQF?#3b3wWvk*Gin6N_b_o9DqfCyfNL0yF+EKOGf_9%gZ>!U z%e?Vwpr))ZPQ(Sh*#GK4vEJrg-W@gMDHw`tP!~9g8oF;$+pA(9^SO>iEzahs7fd!b z$7QHj>_yaCD%RJ`d1I_aoQbMm?jcj1%t?&E2dF0r>u26%JyF|kBx=#UjKy#j>IJhM zH6_2Jexfz#Z$>B^OA>Fw6g-6Lc-R2*pv_RfJ3Q^lXz2T(AHHrIyp4Lr?m!LkdDJS8 z9BB6ObEpwoiB<53jjy9RT6B{+@X$ve(JQSy+2UYKr3JP%Pt*uaw!VdW z(vMIhamU6LbIkRUP>cL!R0kKL-ZNi#$mj|D$C`$**p4^{Rel(?cz#EHK1+@>U&j~> zCQd*ts=+p%iF&bYM7?OfN9_W?XU%R3#b(55sOx&xlL;Yn3Jc*~)LcJC4SAvQW*J zdA0UO#q+Q{evYm1D%QowNoLIqLY41EJ@I2yhe|(hc1vT_8*nIUB&T|1|7{?nIX{VQ z(U&!$3wJ@S@)@WR+Jc?%3~KvSo^0%eC5Y#u7TFqf;ZgqBkKg3s503XqYPX7VX2tnQ z<=X!`+E7rDlzXWB5$Qd9vdVuYpOBY1RlrfywjW{Jtfj0QWmSj^A-^}gM*?wA60ZyI z3rY{gWt`)bdGv93kJO*a0u*GC?}Xin^OF7{X@TV)KTxNwTAA{iq?P0~&ykcD;;R3W zKT1A{x`w3OLtn}Jq#2}XB$k&G$@|9%;G|&E3lu!hi7a&QkBBo^i=;z8o32wAMAA_N zd)m5Jur}vcvUQo%pQr3L@tY)eqW5Tm^-1R`D@c32kp46N@7R;KQ&iAf!T;)s#!U79 zI2O}(r!8;Gg>nzQdW#Ylq+YM_O5}gUw`r?S^V3IV>UOC>^W4PVJeI;|iRX}BvNzB| zH)(Xrwz-dgl3t{|GvzwI!;-YGMp|OaisBRM-1fW~#Dj?EBHuFa zahiOn=3lSHv80AvAQ?MQv7NM={0Wkd4>@U(J+UiwF52oCY;fGfRY-4Br{g4TkE=at zKIw@qSKY6q%aoP#mNEX>6yzthq)_{R9jQB&yqTR1_QYqNx&YPQ|K=M*y^b@s?i3a# z{Y9#8s=R;BCvHtDYdf7=^)BZJc&PZDj1TD{`EDe=F7*b>J;Lmb6gRbnpIOE4oHHDM zBK=MNHpX$Y{^a$>dx6xzUSj}$Li&)hchGZ(KStB=ISR(1A88Xwhd*_VNKBaJ8KM~<@^E1=#spV&6ju@Xf`Nsl!DxyKt+d`jcDNZ(L+hq!NU zr8S(gN#xgIFzwRG*XQD)#Cq57CH+X=m$F{ugURdIWcbgY`#ARo>F?b8$8bUh1v=tL ze5Aae-&OVkiQXFiX@>GN%KjuiL_UHvmz1Bf*|tqxVomF>7);sAF7nAN_tFw9?m4?9-C;>#l{b; zzuEJ0@9*#{+51+~X1PYXtdeTiCq+czIAbkn|}@zgkY(*7_kboz#Q!_qfOs@+tOWYo5C3Wy-%G z*6)Nl7)bkU(t7frp?-MixJ4R4*<0R-&ojS2y+<($8_=*Oz4`;MQMwsZNSnzwr+f=- zbSza{JWHL9d&EIFhV&d|18jLce9@kxc0Z6GLfJ#|7f73l*XaZEHR&7DeJT%9v7P)u z(ih})6g4vnQ^~5?}!z(81^d|qUEw5<(fOFbV-yS6ThaWCMiTM>=AAAV`x|5sd7~xB(7}BKC7@3g++z*-uLyp@94wEk@g>qo zuJtN0ze&BvzvR7#?q8l8F2oYHFb`IuVFqOnaH}n^ZcmQ19n=N?Gf zIaN?cBYS>h&Rc2A@?dG|yw6{dpekt=1)XsX{*5}yaZ*Y0vE)}{G2(dJfmbMdm-I8` zyGcphXe240t*7cg#{%m2l0K(oIi`_*(fj`^+q+%X3m8N4<0AcRSp+AYBSqM_6Zz(( zw@EtkQXXou&LP{T6>*}?f5y#TxA{8i1o;)Di`xGo+-NdEOHvUkb(FDB;3EEjxRs4p z(&i1~QmCUA<#|YZ$X_Q-u;n4-mvQb9%snE>gwb{fZLZq;{NNpb+u|-2rD)L4#v5r= z!(OluWy8sTOW9RyYRi8j4&odg)hSy-oJq<(dXn)W-6K6i`3+m)#>2$k`+sOJ*6OJf zb11t_+=GU7><#R>-hYJLM}3$*Zxt1-XOI5v0xx8bBx6tt)DIT}^QQKVSg_zrm;8;B23-^7I8KbsNjxQ3TVt+`edX$NJ$ zk%H_s?oqd%xSoyo-~_$@bB`nu$ROK&PfAJK!IH>^*eDMoXN89KuzCc`?o4rBW`cwzh zWG8jANjl=N2KC=#8(S7d`S+B~$Ja1}^6qMEkG0zW9}~PpMOzxoB#pO~rErqHP!jp_ zq%EXSJG_ml+en;yEVh|MuHikXZ$#Sy#9b*kV9U?pMd~KvJGuM+g00kvy~+2r@fq)x z*zfkHUlYGcoevlIl6Ej(xkqs_jY*>@YemXOT0rVx8r$X68Wm$T9A$Q3D63My8}@ zq-Un9HX}VN+a0byv)tp-vxn|D(es1+9S4pWF*4gdCN+CZdg|CzH@6#`I>tRXbxd}8 zn)k9borKPbT@n+TCAlNr3IA{N9h3UEFS=uW=JZ;nJGA4Buq=1@s4*k6M-CpDK~SyG zj)>(CgBNT(SZG1J1HKCmWCri3ckrcxRkKsaj2M_$F|#9>@leeeEtpecaO|*r_eCfJ91e&u3ir2o$uXmpGiJf9+vWbx20L!veks6}u{bKftLEZb`CU~PoVpUQdviY5gP1b^V{}rz z!?Sx;V^_W^i`|1<1sB)M?<%zTpMkD0owk_Mitj#};ws}CAD%=vHIu3Cfn!q#=l0m0 uGBW+YpUKVBjY)M6$w|-1NX<;m&N9OoyZCm9tNh}QBU}Y{Kgo2}^Zzd&!(Q0{ diff --git a/po/fr.po b/po/fr.po index 125b51e..24ed8c3 100644 --- a/po/fr.po +++ b/po/fr.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2010-07-09 19:30-0400\n" +"POT-Creation-Date: 2012-06-11 23:01+0100\n" "PO-Revision-Date: 2010-04-21 23:38-0400\n" "Last-Translator: Thomas Guyot-Sionnest \n" "Language-Team: Nagios Plugin Development Mailing List argument with optional text" msgstr "du paramètre avec un texte optionnel" -#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:437 -#: plugins/check_swap.c:175 plugins/check_users.c:73 plugins/urlize.c:110 +#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:438 +#: plugins/check_swap.c:175 plugins/urlize.c:110 #, c-format msgid "Could not open pipe: %s\n" msgstr "Impossible d'ouvrir le pipe: %s\n" #: plugins/check_fping.c:114 plugins/check_hpjd.c:134 plugins/check_load.c:153 -#: plugins/check_swap.c:181 plugins/check_users.c:79 plugins/urlize.c:116 +#: plugins/check_swap.c:181 plugins/urlize.c:116 #, c-format msgid "Could not open stderr for %s\n" msgstr "Impossible d'ouvrir la sortie d'erreur standard pour %s\n" @@ -882,7 +887,7 @@ msgstr "FPING %s - %s (perte=%.0f%% )|%s\n" #: plugins/check_ntp_peer.c:491 plugins/check_ntp_time.c:492 #: plugins/check_pgsql.c:268 plugins/check_ping.c:295 plugins/check_ping.c:418 #: plugins/check_radius.c:264 plugins/check_real.c:314 -#: plugins/check_real.c:376 plugins/check_smtp.c:507 plugins/check_smtp.c:633 +#: plugins/check_real.c:376 plugins/check_smtp.c:509 plugins/check_smtp.c:638 #: plugins/check_ssh.c:157 plugins/check_time.c:240 plugins/check_time.c:315 #: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" @@ -943,11 +948,11 @@ msgstr "" "nom ou adresse IP des hôtes à pinger (l'indication d'un adresse IP évite une " "recherche sur le nom, ce qui réduit la charge système)" -#: plugins/check_fping.c:408 plugins/check_ping.c:573 +#: plugins/check_fping.c:408 plugins/check_ping.c:575 msgid "warning threshold pair" msgstr "Valeurs pour le seuil d'avertissement" -#: plugins/check_fping.c:410 plugins/check_ping.c:575 +#: plugins/check_fping.c:410 plugins/check_ping.c:577 msgid "critical threshold pair" msgstr "Valeurs pour le seuil critique" @@ -1116,460 +1121,476 @@ msgstr "Le nom de la communauté SNMP " msgid "(default=%s)" msgstr "(défaut=%s)" -#: plugins/check_http.c:262 -msgid "Critical threshold must be integer" -msgstr "le seuil critique doit être un entier positif" - -#: plugins/check_http.c:270 -msgid "Warning threshold must be integer" -msgstr "Le seuil d'avertissement doit être un entier positif" - -#: plugins/check_http.c:296 plugins/check_tcp.c:559 +#: plugins/check_http.c:286 plugins/check_tcp.c:556 msgid "Invalid certificate expiration period" msgstr "Période d'expiration du certificat invalide" -#: plugins/check_http.c:305 plugins/check_tcp.c:571 +#: plugins/check_http.c:295 plugins/check_tcp.c:568 msgid "Invalid option - SSL is not available" msgstr "Option invalide - SSL n'est pas disponible" -#: plugins/check_http.c:329 +#: plugins/check_http.c:303 +msgid "" +"Invalid option - Valid values for SSL Version are 1 (TLSv1), 2 (SSLv2) or 3 " +"(SSLv3)" +msgstr "" + +#: plugins/check_http.c:326 msgid "Invalid onredirect option" msgstr "" -#: plugins/check_http.c:331 +#: plugins/check_http.c:328 #, c-format msgid "option f:%d \n" msgstr "option f:%d \n" -#: plugins/check_http.c:352 +#: plugins/check_http.c:349 msgid "Invalid port number" msgstr "Numéro de port invalide" -#: plugins/check_http.c:400 +#: plugins/check_http.c:397 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "Impossible de compiler l'expression rationnelle: %s" -#: plugins/check_http.c:414 plugins/check_ntp.c:718 +#: plugins/check_http.c:411 plugins/check_ntp.c:718 #: plugins/check_ntp_peer.c:507 plugins/check_ntp_time.c:508 -#: plugins/check_smtp.c:613 plugins/check_ssh.c:149 plugins/check_tcp.c:463 +#: plugins/check_smtp.c:618 plugins/check_ssh.c:149 plugins/check_tcp.c:460 msgid "IPv6 support not available" msgstr "Support IPv6 non disponible" -#: plugins/check_http.c:476 plugins/check_ping.c:422 +#: plugins/check_http.c:473 plugins/check_ping.c:422 msgid "You must specify a server address or host name" msgstr "Vous devez spécifier une adresse ou un nom d'hôte" -#: plugins/check_http.c:609 plugins/check_http.c:777 +#: plugins/check_http.c:608 plugins/check_http.c:776 msgid "HTTP UNKNOWN - Memory allocation error\n" msgstr "HTTP INCONNU - Impossible d'allouer la mémoire\n" -#: plugins/check_http.c:681 +#: plugins/check_http.c:680 #, c-format msgid "%sServer date unknown, " msgstr "%sDate du serveur inconnue, " -#: plugins/check_http.c:684 +#: plugins/check_http.c:683 #, c-format msgid "%sDocument modification date unknown, " msgstr "%sDate de modification du document inconnue, " -#: plugins/check_http.c:691 +#: plugins/check_http.c:690 #, c-format msgid "%sServer date \"%100s\" unparsable, " msgstr "%sDate du serveur \"%100s\" illisible, " -#: plugins/check_http.c:694 +#: plugins/check_http.c:693 #, c-format msgid "%sDocument date \"%100s\" unparsable, " msgstr "%sDate du document \"%100s\" illisible, " -#: plugins/check_http.c:697 +#: plugins/check_http.c:696 #, c-format msgid "%sDocument is %d seconds in the future, " msgstr "%sLa date du document est %d secondes dans le futur, " -#: plugins/check_http.c:702 +#: plugins/check_http.c:701 #, c-format msgid "%sLast modified %.1f days ago, " msgstr "%sDernière modification %.1f jours auparavant, " -#: plugins/check_http.c:705 +#: plugins/check_http.c:704 #, c-format msgid "%sLast modified %d:%02d:%02d ago, " msgstr "%sDernière modification %d:%02d:%02d auparavant, " -#: plugins/check_http.c:807 +#: plugins/check_http.c:806 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "HTTP CRITIQUE - Impossible d'ouvrir un socket TCP\n" -#: plugins/check_http.c:910 +#: plugins/check_http.c:911 msgid "HTTP CRITICAL - Error on receive\n" msgstr "HTTP CRITIQUE - Erreur dans la réception\n" -#: plugins/check_http.c:920 +#: plugins/check_http.c:921 msgid "HTTP CRITICAL - No data received from host\n" msgstr "HTTP CRITIQUE - Pas de données reçues de l'hôte\n" -#: plugins/check_http.c:971 +#: plugins/check_http.c:972 #, c-format msgid "Invalid HTTP response received from host: %s\n" msgstr "Réponse HTTP reçue de l'hôte invalide: %s\n" -#: plugins/check_http.c:975 +#: plugins/check_http.c:976 #, c-format msgid "Invalid HTTP response received from host on port %d: %s\n" msgstr "Réponse HTTP reçue de l'hôte sur le port %d invalide: %s\n" -#: plugins/check_http.c:984 +#: plugins/check_http.c:985 #, c-format msgid "Status line output matched \"%s\" - " msgstr "La ligne d'état correspond à \"%s\" - " -#: plugins/check_http.c:995 +#: plugins/check_http.c:996 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "HTTP CRITIQUE: Ligne d'état non valide (%s)\n" -#: plugins/check_http.c:1002 +#: plugins/check_http.c:1003 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "HTTP CRITIQUE: Etat Invalide (%s)\n" -#: plugins/check_http.c:1006 plugins/check_http.c:1011 -#: plugins/check_http.c:1021 plugins/check_http.c:1025 +#: plugins/check_http.c:1007 plugins/check_http.c:1012 +#: plugins/check_http.c:1022 plugins/check_http.c:1026 #, c-format msgid "%s - " msgstr "" -#: plugins/check_http.c:1045 +#: plugins/check_http.c:1046 #, fuzzy, c-format msgid "%sstring '%s' not found on '%s://%s:%d%s', " msgstr "%schaîne non trouvée, " -#: plugins/check_http.c:1058 +#: plugins/check_http.c:1059 #, c-format msgid "%spattern not found, " msgstr "%sexpression non trouvée, " -#: plugins/check_http.c:1060 +#: plugins/check_http.c:1061 #, c-format msgid "%spattern found, " msgstr "%sexpression trouvée, " -#: plugins/check_http.c:1066 +#: plugins/check_http.c:1067 #, c-format msgid "%sExecute Error: %s, " msgstr "%sErreur d'exécution: %s, " -#: plugins/check_http.c:1082 +#: plugins/check_http.c:1083 #, c-format msgid "%spage size %d too large, " msgstr "%sla taille de la page est trop grande (%d), " -#: plugins/check_http.c:1085 +#: plugins/check_http.c:1086 #, c-format msgid "%spage size %d too small, " msgstr "%sla taille de la page est trop petite (%d), " -#: plugins/check_http.c:1097 +#: plugins/check_http.c:1098 #, c-format msgid "%s - %d bytes in %.3f second response time %s|%s %s" msgstr "%s - %d octets en %.3f secondes de temps de réponse %s|%s %s" -#: plugins/check_http.c:1137 +#: plugins/check_http.c:1135 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "HTTP INCONNU - Impossible d'allouer une adresse\n" -#: plugins/check_http.c:1141 plugins/check_http.c:1172 +#: plugins/check_http.c:1139 plugins/check_http.c:1170 msgid "HTTP UNKNOWN - Could not allocate URL\n" msgstr "HTTP INCONNU - Impossible d'allouer l'URL\n" -#: plugins/check_http.c:1150 +#: plugins/check_http.c:1148 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" "HTTP INCONNU - Impossible de trouver l'endroit de la redirection - %s%s\n" -#: plugins/check_http.c:1165 +#: plugins/check_http.c:1163 #, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "HTTP INCONNU - endroit de redirection vide%s\n" -#: plugins/check_http.c:1215 +#: plugins/check_http.c:1213 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" "HTTP INCONNU - Impossible de définir l'endroit de la redirection - %s%s\n" -#: plugins/check_http.c:1225 +#: plugins/check_http.c:1223 #, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "" "HTTP AVERTISSEMENT - le niveau maximum de redirection %d à été dépassé - %" "s://%s:%d%s%s\n" -#: plugins/check_http.c:1233 +#: plugins/check_http.c:1231 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "" "HTTP AVERTISSEMENT - la redirection crée une boucle infinie - %s://%s:%d%s%" "s\n" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1252 #, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "HTTP INCONNU - Redirection à un port supérieur à %d - %s://%s:%d%s%s\n" -#: plugins/check_http.c:1259 +#: plugins/check_http.c:1257 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "Redirection vers %s://%s:%d%s\n" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1308 msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" "Ce plugin teste le service HTTP sur l'hôte spécifié. Il peut tester les" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1309 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" "serveurs normaux (http) et sécurisés (https), suivre les redirections, " "rechercher des" -#: plugins/check_http.c:1312 +#: plugins/check_http.c:1310 msgid "strings and regular expressions, check connection times, and report on" msgstr "" "chaînes de caractères et expressions rationnelles, vérifier le temps de " "réponse" -#: plugins/check_http.c:1313 +#: plugins/check_http.c:1311 msgid "certificate expiration times." msgstr "et rapporter la date d'expiration du certificat." -#: plugins/check_http.c:1319 +#: plugins/check_http.c:1317 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "NOTE: les paramètres -H et -I peuvent être spécifiés" -#: plugins/check_http.c:1327 +#: plugins/check_http.c:1325 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1328 +#: plugins/check_http.c:1326 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1330 +#: plugins/check_http.c:1328 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1332 +#: plugins/check_http.c:1330 msgid "Port number (default: " msgstr "Numéro du port (défaut: " -#: plugins/check_http.c:1339 -msgid "Connect via SSL. Port defaults to 443" +#: plugins/check_http.c:1337 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" msgstr "" -#: plugins/check_http.c:1341 +#: plugins/check_http.c:1338 +msgid "auto-negotiation (1 = TLSv1, 2 = SSLv2, 3 = SSLv3)." +msgstr "" + +#: plugins/check_http.c:1340 msgid "Enable SSL/TLS hostname extension support (SNI)" msgstr "" -#: plugins/check_http.c:1343 +#: plugins/check_http.c:1342 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" "Nombre de jours minimum pour que le certificat soit valide. Port par défaut " "443" -#: plugins/check_http.c:1344 +#: plugins/check_http.c:1343 msgid "(when this option is used the URL is not checked.)\n" msgstr "" -#: plugins/check_http.c:1348 +#: plugins/check_http.c:1347 msgid "Comma-delimited list of strings, at least one of them is expected in" msgstr "" "Liste the chaines de charactères séparées par des virgules, au moins une " "d'elles" -#: plugins/check_http.c:1349 +#: plugins/check_http.c:1348 msgid "the first (status) line of the server response (default: " msgstr "est attendue dans la première ligne de réponse du serveur (défaut: " -#: plugins/check_http.c:1351 +#: plugins/check_http.c:1350 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" "Si spécifié, surpasse toute autre logique de status (ex: 3xx, 4xx, 5xx)" -#: plugins/check_http.c:1353 +#: plugins/check_http.c:1352 msgid "String to expect in the content" msgstr "Chaîne de caractère attendue dans le contenu" -#: plugins/check_http.c:1355 +#: plugins/check_http.c:1354 msgid "URL to GET or POST (default: /)" msgstr "URL pour le GET ou le POST (défaut: /)" -#: plugins/check_http.c:1357 +#: plugins/check_http.c:1356 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1359 +#: plugins/check_http.c:1358 msgid "Set HTTP method." msgstr "" -#: plugins/check_http.c:1361 +#: plugins/check_http.c:1360 msgid "Don't wait for document body: stop reading after headers." msgstr "" "Ne pas attendre pour le corps du document: arrêter de lire après les entêtes" -#: plugins/check_http.c:1362 +#: plugins/check_http.c:1361 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "(Veuillez noter qu'un HTTP GET ou POST est effectué, pas un HEAD.)" -#: plugins/check_http.c:1364 +#: plugins/check_http.c:1363 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1365 +#: plugins/check_http.c:1364 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1367 +#: plugins/check_http.c:1366 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1370 +#: plugins/check_http.c:1369 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1372 +#: plugins/check_http.c:1371 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1374 +#: plugins/check_http.c:1373 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1376 +#: plugins/check_http.c:1375 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1379 +#: plugins/check_http.c:1378 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1381 +#: plugins/check_http.c:1380 msgid "Username:password on proxy-servers with basic authentication" msgstr "" -#: plugins/check_http.c:1383 +#: plugins/check_http.c:1382 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1385 +#: plugins/check_http.c:1384 msgid "" -" Any other tags to be sent in http header. Use multiple times for additional " +"Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1387 +#: plugins/check_http.c:1386 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1389 +#: plugins/check_http.c:1388 msgid "How to handle redirected pages. sticky is like follow but stick to the" msgstr "" -#: plugins/check_http.c:1390 -msgid "specified IP address. stickyport also ensure post stays the same." +#: plugins/check_http.c:1389 +msgid "specified IP address. stickyport also ensures port stays the same." msgstr "" -#: plugins/check_http.c:1392 +#: plugins/check_http.c:1391 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1402 +#: plugins/check_http.c:1401 msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." -#: plugins/check_http.c:1403 +#: plugins/check_http.c:1402 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1404 +#: plugins/check_http.c:1403 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1405 +#: plugins/check_http.c:1404 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1406 +#: plugins/check_http.c:1405 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1407 +#: plugins/check_http.c:1406 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1411 +#: plugins/check_http.c:1410 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1412 +#: plugins/check_http.c:1411 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1413 +#: plugins/check_http.c:1412 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1417 +#: plugins/check_http.c:1414 +#, fuzzy +msgid "Please note that this plugin does not check if the presented server" +msgstr "Ce plugin vérifie le service ntp sur l'hôte" + +#: plugins/check_http.c:1415 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1416 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1420 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1418 +#: plugins/check_http.c:1421 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1419 +#: plugins/check_http.c:1422 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1420 +#: plugins/check_http.c:1423 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1423 +#: plugins/check_http.c:1426 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1424 +#: plugins/check_http.c:1427 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1425 +#: plugins/check_http.c:1428 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1426 +#: plugins/check_http.c:1429 msgid "the certificate is expired." msgstr "le certificat est expiré." @@ -1619,81 +1640,81 @@ msgstr "Impossible de chercher/trouver les objectclasses dans %s\n" msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "LDAP %s - %.3f secondes de temps de réponse|%s\n" -#: plugins/check_ldap.c:339 plugins/check_ldap.c:346 +#: plugins/check_ldap.c:339 plugins/check_ldap.c:347 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:352 plugins/check_ping.c:246 +#: plugins/check_ldap.c:353 plugins/check_ping.c:246 msgid "IPv6 support not available\n" msgstr "Support IPv6 non disponible\n" -#: plugins/check_ldap.c:375 +#: plugins/check_ldap.c:379 msgid "Please specify the host name\n" msgstr "Veuillez spécifier le nom de l'hôte\n" -#: plugins/check_ldap.c:378 +#: plugins/check_ldap.c:382 msgid "Please specify the LDAP base\n" msgstr "Veuillez spécifier la base LDAP\n" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:411 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:413 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:415 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:417 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:415 +#: plugins/check_ldap.c:419 msgid "use starttls mechanism introduced in protocol version 3" msgstr "utiliser le fonctionnement starttls du protocole version 3" -#: plugins/check_ldap.c:417 +#: plugins/check_ldap.c:421 msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:425 msgid "use ldap protocol version 2" msgstr "utiliser le protocole ldap version 2" -#: plugins/check_ldap.c:423 +#: plugins/check_ldap.c:427 msgid "use ldap protocol version 3" msgstr "utiliser le protocole ldap version 3" -#: plugins/check_ldap.c:424 +#: plugins/check_ldap.c:428 msgid "default protocol version:" msgstr "version du protocole par défaut:" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:439 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:440 #, c-format msgid "" " implied (using default port %i) unless --port=636 is specified. In that " "case\n" msgstr "" -#: plugins/check_ldap.c:437 +#: plugins/check_ldap.c:441 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:438 +#: plugins/check_ldap.c:442 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:439 +#: plugins/check_ldap.c:443 msgid "to define the behaviour explicitly instead." msgstr "" @@ -2206,7 +2227,7 @@ msgstr "" msgid "Wrong client version - running: %s, required: %s" msgstr "Mauvaise version du client utilisée: %s, nécessaire: %s" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:152 plugins/check_nt.c:217 msgid "missing -l parameters" msgstr "Arguments -l manquants" @@ -2237,30 +2258,30 @@ msgstr "pas assez de valeur pour l'argument -l" msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "Système démarré - %u jour(s) %u heure(s) %u minute(s)" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:219 msgid "wrong -l argument" msgstr "Argument -l erroné" -#: plugins/check_nt.c:230 +#: plugins/check_nt.c:235 #, c-format msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" msgstr "" "%s:\\ - total: %.2f Gb - utilisé: %.2f Gb (%.0f%%) - libre %.2f Gb (%.0f%%)" -#: plugins/check_nt.c:233 +#: plugins/check_nt.c:238 #, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "'%s:\\ Espace Utilisé'=%.2fGb;%.2f;%.2f;0.00;%.2f" -#: plugins/check_nt.c:247 +#: plugins/check_nt.c:252 msgid "Free disk space : Invalid drive" msgstr "Espace disque libre : Lecteur invalide" -#: plugins/check_nt.c:257 +#: plugins/check_nt.c:262 msgid "No service/process specified" msgstr "Pas de service/processus spécifié" -#: plugins/check_nt.c:281 +#: plugins/check_nt.c:286 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" @@ -2268,301 +2289,301 @@ msgstr "" "Mémoire utilisée: total:%.2f Mb - utilisée: %.2f Mb (%.0f%%) - libre: %.2f " "Mb (%.0f%%)" -#: plugins/check_nt.c:284 +#: plugins/check_nt.c:289 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "'Mémoire utilisée'=%.2fMb;%.2f;%.2f;0.00;%.2f" -#: plugins/check_nt.c:320 plugins/check_nt.c:405 plugins/check_nt.c:435 +#: plugins/check_nt.c:325 plugins/check_nt.c:410 plugins/check_nt.c:440 msgid "No counter specified" msgstr "Pas de compteur spécifié" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:357 msgid "Minimum value contains non-numbers" msgstr "La valeur minimum contient des caractères non numériques" -#: plugins/check_nt.c:356 +#: plugins/check_nt.c:361 msgid "Maximum value contains non-numbers" msgstr "La valeur maximum contient des caractères non numériques" -#: plugins/check_nt.c:363 +#: plugins/check_nt.c:368 msgid "No unit counter specified" msgstr "Pas de compteur spécifié" -#: plugins/check_nt.c:450 +#: plugins/check_nt.c:455 msgid "Please specify a variable to check" msgstr "Veuillez préciser une variable a vérifier" -#: plugins/check_nt.c:534 +#: plugins/check_nt.c:539 msgid "Server port must be an integer\n" msgstr "Le port du serveur doit être un nombre entier\n" -#: plugins/check_nt.c:588 +#: plugins/check_nt.c:593 msgid "You must provide a server address or host name" msgstr "Vous devez spécifier une adresse ou un nom d'hôte" -#: plugins/check_nt.c:594 +#: plugins/check_nt.c:599 msgid "None" msgstr "Aucun" -#: plugins/check_nt.c:607 +#: plugins/check_nt.c:612 msgid "could not fetch information from server\n" msgstr "Impossible d'obtenir l'information depuis le serveur\n" -#: plugins/check_nt.c:651 +#: plugins/check_nt.c:656 msgid "This plugin collects data from the NSClient service running on a" msgstr "" "Ce plugin collecte les données depuis le service NSClient tournant sur un" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:657 msgid "Windows NT/2000/XP/2003 server." msgstr "Serveur Windows NT/2000/XP/2003." -#: plugins/check_nt.c:663 +#: plugins/check_nt.c:668 msgid "Name of the host to check" msgstr "Nom de l'hôte à vérifier" -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:670 msgid "Optional port number (default: " msgstr "Numéro de port optionnel (défaut: " -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:673 msgid "Password needed for the request" msgstr "Mot de passe nécessaire pour la requête" -#: plugins/check_nt.c:670 plugins/check_nwstat.c:1661 +#: plugins/check_nt.c:675 plugins/check_nwstat.c:1661 #: plugins/check_overcr.c:432 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:672 plugins/check_nwstat.c:1663 +#: plugins/check_nt.c:677 plugins/check_nwstat.c:1663 #: plugins/check_overcr.c:434 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:674 +#: plugins/check_nt.c:679 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:676 +#: plugins/check_nt.c:681 msgid "Parameters passed to specified check (see below)" msgstr "" -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:683 msgid "Display options (currently only SHOWALL works)" msgstr "" -#: plugins/check_nt.c:680 +#: plugins/check_nt.c:685 msgid "Return UNKNOWN on timeouts" msgstr "" -#: plugins/check_nt.c:683 +#: plugins/check_nt.c:688 msgid "Print this help screen" msgstr "Afficher l'écran d'aide" -#: plugins/check_nt.c:685 +#: plugins/check_nt.c:690 msgid "Print version information" msgstr "Afficher la version" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:692 msgid "Variable to check" msgstr "Variable a vérifier" -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:693 msgid "Valid variables are:" msgstr "Les variables valides sont" -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:695 msgid "Get the NSClient version" msgstr "Obtenir la version de NSClient" -#: plugins/check_nt.c:691 +#: plugins/check_nt.c:696 msgid "If -l is specified, will return warning if versions differ." msgstr "" "si l'argument -l est spécifié, une alerte AVERTISSEMENT sera " "renvoyée, si les versions sont différentes." -#: plugins/check_nt.c:693 +#: plugins/check_nt.c:698 msgid "Average CPU load on last x minutes." msgstr "Moyenne de la charge CPU sur les dernières x minutes." -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:699 msgid "Request a -l parameter with the following syntax:" msgstr "Demande un paramètre -l avec la syntaxe suivante:" -#: plugins/check_nt.c:695 +#: plugins/check_nt.c:700 msgid "-l ,,." msgstr "-l ,,." -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:701 msgid " should be less than 24*60." msgstr " devrait être inférieur à 24*60." -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:702 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" "Les seuils sonts en pourcentage et un maximum de 10 requêtes peuvent être " "effectuées à la fois." -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:705 msgid "Get the uptime of the machine." msgstr "Obtenir le temps de service de la machine." -#: plugins/check_nt.c:701 +#: plugins/check_nt.c:706 msgid "No specific parameters. No warning or critical threshold" msgstr "Pas d'argument spécifique. Pas de seuil d'avertissement ou critique" -#: plugins/check_nt.c:703 +#: plugins/check_nt.c:708 msgid "Size and percentage of disk use." msgstr "Taille et pourcentage de l'utilisation disque." -#: plugins/check_nt.c:704 +#: plugins/check_nt.c:709 msgid "Request a -l parameter containing the drive letter only." msgstr "Demande un paramètre -l contennant uniquement la lettre du lecteur." -#: plugins/check_nt.c:705 plugins/check_nt.c:708 +#: plugins/check_nt.c:710 plugins/check_nt.c:713 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "Les seuils d'alerte et critiques peuvent être spécifiés avec -w et -c." -#: plugins/check_nt.c:707 +#: plugins/check_nt.c:712 msgid "Memory use." msgstr "Mémoire utilisée." -#: plugins/check_nt.c:710 +#: plugins/check_nt.c:715 msgid "Check the state of one or several services." msgstr "Vérifier l'état d'un ou plusieurs services." -#: plugins/check_nt.c:711 plugins/check_nt.c:720 +#: plugins/check_nt.c:716 plugins/check_nt.c:725 msgid "Request a -l parameters with the following syntax:" msgstr "Demande un paramètre -l avec la syntaxe suivante:" -#: plugins/check_nt.c:712 +#: plugins/check_nt.c:717 msgid "-l ,,,..." msgstr "-l ,,,..." -#: plugins/check_nt.c:713 +#: plugins/check_nt.c:718 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "Vous pouvez spécifier -d SHOWALL pour voir les services fonctionnant" -#: plugins/check_nt.c:714 +#: plugins/check_nt.c:719 msgid "in the returned string." msgstr "dans la chaîne de caractère renvoyée." -#: plugins/check_nt.c:716 +#: plugins/check_nt.c:721 msgid "Check if one or several process are running." msgstr "Vérifie si un ou plusieurs processus sont démarrés." -#: plugins/check_nt.c:717 +#: plugins/check_nt.c:722 msgid "Same syntax as SERVICESTATE." msgstr "Même syntaxe que SERVICESTATE." -#: plugins/check_nt.c:719 +#: plugins/check_nt.c:724 msgid "Check any performance counter of Windows NT/2000." msgstr "Vérifier n'importe quel compteur de performance sur Windows NT/2000." -#: plugins/check_nt.c:721 +#: plugins/check_nt.c:726 msgid "-l \"\\\\\\\\counter\",\"" msgstr "-l \"\\\\\\\\compteur\",\"" -#: plugins/check_nt.c:722 +#: plugins/check_nt.c:727 msgid "The parameter is optional and is given to a printf " msgstr "Le paramètre est optionnel et est passé à la fonction " -#: plugins/check_nt.c:723 +#: plugins/check_nt.c:728 msgid "output command which requires a float parameter." msgstr "de sortie printf qui demande un paramètre de type float." -#: plugins/check_nt.c:724 +#: plugins/check_nt.c:729 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "Si n'inclus pas \"%%\", il est utilisé comme étiquette." -#: plugins/check_nt.c:725 plugins/check_nt.c:740 +#: plugins/check_nt.c:730 plugins/check_nt.c:745 msgid "Some examples:" msgstr "Exemples:" -#: plugins/check_nt.c:729 +#: plugins/check_nt.c:734 msgid "Check any performance counter object of Windows NT/2000." msgstr "Vérifie n'importe quel compteur de performance de Windows NT/2000." -#: plugins/check_nt.c:730 +#: plugins/check_nt.c:735 msgid "" "Syntax: check_nt -H -p -v INSTANCES -l " msgstr "" -#: plugins/check_nt.c:731 +#: plugins/check_nt.c:736 msgid " is a Windows Perfmon Counter object (eg. Process)," msgstr "" -#: plugins/check_nt.c:732 +#: plugins/check_nt.c:737 msgid "if it is two words, it should be enclosed in quotes" msgstr "" -#: plugins/check_nt.c:733 +#: plugins/check_nt.c:738 msgid "The returned results will be a comma-separated list of instances on " msgstr "" -#: plugins/check_nt.c:734 +#: plugins/check_nt.c:739 msgid " the selected computer for that object." msgstr "" -#: plugins/check_nt.c:735 +#: plugins/check_nt.c:740 msgid "" "The purpose of this is to be run from command line to determine what " "instances" msgstr "" -#: plugins/check_nt.c:736 +#: plugins/check_nt.c:741 msgid "" " are available for monitoring without having to log onto the Windows server" msgstr "" -#: plugins/check_nt.c:737 +#: plugins/check_nt.c:742 msgid " to run Perfmon directly." msgstr "" -#: plugins/check_nt.c:738 +#: plugins/check_nt.c:743 msgid "It can also be used in scripts that automatically create Nagios service" msgstr "" -#: plugins/check_nt.c:739 +#: plugins/check_nt.c:744 msgid " configuration files." msgstr "" -#: plugins/check_nt.c:741 +#: plugins/check_nt.c:746 msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" msgstr "" -#: plugins/check_nt.c:744 +#: plugins/check_nt.c:749 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" "- Le service NSClient doit rouler sur le serveur pour obtenir les " "informations" -#: plugins/check_nt.c:746 +#: plugins/check_nt.c:751 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" "- Les seuils critiques doivent être plus bas que les seuils d'avertissement" -#: plugins/check_nt.c:747 +#: plugins/check_nt.c:752 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" "- Le port par défaut 1248 est parfois utilisé par d'autres services. L'erreur" -#: plugins/check_nt.c:748 +#: plugins/check_nt.c:753 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "qui en résulte contiens \"Cannot map xxxxx to protocol number\"." -#: plugins/check_nt.c:749 +#: plugins/check_nt.c:754 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" "Une possibilité pour corriger ce problème est de changer le port dans " "check_nt " -#: plugins/check_nt.c:750 +#: plugins/check_nt.c:755 msgid "and on the client service it's connecting to." msgstr "et dans le service auquel il se connecte." @@ -3338,13 +3359,13 @@ msgid " %s - database %s (%d sec.)|%s\n" msgstr " %s - base de données %s (%d sec.)|%s\n" #: plugins/check_pgsql.c:256 plugins/check_time.c:277 plugins/check_time.c:289 -#: plugins/check_users.c:166 +#: plugins/check_users.c:138 msgid "Critical threshold must be a positive integer" msgstr "Le seuil critique doit être un entier positif" #: plugins/check_pgsql.c:262 plugins/check_time.c:258 plugins/check_time.c:282 -#: plugins/check_users.c:172 plugins/check_users.c:182 -#: plugins/check_users.c:189 +#: plugins/check_users.c:144 plugins/check_users.c:154 +#: plugins/check_users.c:160 msgid "Warning threshold must be a positive integer" msgstr "Le seuil d'avertissement doit être un entier positif" @@ -3515,121 +3536,121 @@ msgstr " (%f) ne peut pas être plus large que (%f)\n" msgid " (%d) cannot be larger than (%d)\n" msgstr " (%d) ne peut pas être plus large que (%d)\n" -#: plugins/check_ping.c:441 +#: plugins/check_ping.c:442 #, c-format msgid "Cannot open stderr for %s\n" msgstr "Impossible d'ouvrir le canal d'erreur standard pour %s\n" -#: plugins/check_ping.c:490 plugins/check_ping.c:492 +#: plugins/check_ping.c:492 plugins/check_ping.c:494 msgid "System call sent warnings to stderr " msgstr "" "Les appel système enverront leurs messages d'avertissement vers le canal " "d'erreur standard" -#: plugins/check_ping.c:519 +#: plugins/check_ping.c:521 #, c-format msgid "CRITICAL - Network Unreachable (%s)" msgstr "CRITIQUE - Le réseau est inaccessible (%s)" -#: plugins/check_ping.c:521 +#: plugins/check_ping.c:523 #, c-format msgid "CRITICAL - Host Unreachable (%s)" msgstr "CRITIQUE - Hôte inaccessible (%s)" -#: plugins/check_ping.c:523 +#: plugins/check_ping.c:525 #, c-format msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "CRITIQUE - Paquet ICMP incorrect: Port inaccessible (%s)" -#: plugins/check_ping.c:525 +#: plugins/check_ping.c:527 #, c-format msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "CRITIQUE - Paquet ICMP incorrect: Protocole inaccessible (%s)" -#: plugins/check_ping.c:527 +#: plugins/check_ping.c:529 #, c-format msgid "CRITICAL - Network Prohibited (%s)" msgstr "CRITIQUE - L'accès au réseau est interdit (%s)" -#: plugins/check_ping.c:529 +#: plugins/check_ping.c:531 #, c-format msgid "CRITICAL - Host Prohibited (%s)" msgstr "CRITIQUE - L'accès a l'hôte est interdit (%s)" -#: plugins/check_ping.c:531 +#: plugins/check_ping.c:533 #, c-format msgid "CRITICAL - Packet Filtered (%s)" msgstr "CRITIQUE - Paquet filtré (%s)" -#: plugins/check_ping.c:533 +#: plugins/check_ping.c:535 #, c-format msgid "CRITICAL - Host not found (%s)" msgstr "CRITIQUE - Hôte non trouvé (%s)" -#: plugins/check_ping.c:535 +#: plugins/check_ping.c:537 #, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "CRITIQUE - La durée de vie du paquet est dépassée (%s)" -#: plugins/check_ping.c:542 +#: plugins/check_ping.c:544 msgid "Unable to realloc warn_text" msgstr "Impossible de réattribuer le texte d'avertissement" -#: plugins/check_ping.c:559 +#: plugins/check_ping.c:561 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" "Utilise ping pour vérifier les statistiques de connections d'un hôte distant." -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:573 msgid "host to ping" msgstr "hôte à tester" -#: plugins/check_ping.c:577 +#: plugins/check_ping.c:579 msgid "number of ICMP ECHO packets to send" msgstr "nombre de paquets ICMP à envoyer" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:580 #, c-format msgid "(Default: %d)\n" msgstr "(Défaut: %d)\n" -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:582 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:587 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" "Le seuil est ,% où est le temps moyen pour l'aller retour (ms)" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:588 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "qui déclenche un résultat AVERTISSEMENT ou CRITIQUE, et est le " -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:589 msgid "percentage of packet loss to trigger an alarm state." msgstr "pourcentage de paquets perdus pour déclencher une alarme." -#: plugins/check_ping.c:590 +#: plugins/check_ping.c:592 msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "" "Ce plugin utilise la commande ping pour vérifier l'hôte spécifié pour les " "pertes de paquets" -#: plugins/check_ping.c:591 +#: plugins/check_ping.c:593 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:592 +#: plugins/check_ping.c:594 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:593 +#: plugins/check_ping.c:595 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" @@ -3668,160 +3689,160 @@ msgstr "%d crit, %d alertes sur " msgid " with %s" msgstr " avec %s" -#: plugins/check_procs.c:378 +#: plugins/check_procs.c:380 msgid "Critical Process Count must be an integer!" msgstr "Critique Le total des processus doit être un nombre entier!" -#: plugins/check_procs.c:390 +#: plugins/check_procs.c:392 msgid "Warning Process Count must be an integer!" msgstr "Avertissement Le total des processus doit être un nombre entier!" -#: plugins/check_procs.c:398 +#: plugins/check_procs.c:400 msgid "Parent Process ID must be an integer!" msgstr "L'identifiant du processus parent doit être un entier!" -#: plugins/check_procs.c:404 plugins/check_procs.c:518 +#: plugins/check_procs.c:406 plugins/check_procs.c:527 #, c-format msgid "%s%sSTATE = %s" msgstr "%s%sETAT = %s" -#: plugins/check_procs.c:413 +#: plugins/check_procs.c:415 msgid "UID was not found" msgstr "L'UID n'a pas été trouvé" -#: plugins/check_procs.c:419 +#: plugins/check_procs.c:421 msgid "User name was not found" msgstr "L'utilisateur n'a pas été trouvé" -#: plugins/check_procs.c:434 +#: plugins/check_procs.c:436 #, c-format msgid "%s%scommand name '%s'" msgstr "%s%snom de la commande '%s'" -#: plugins/check_procs.c:462 +#: plugins/check_procs.c:471 msgid "RSS must be an integer!" msgstr "RSS doit être un entier!" -#: plugins/check_procs.c:469 +#: plugins/check_procs.c:478 msgid "VSZ must be an integer!" msgstr "VSZ doit être un entier!" -#: plugins/check_procs.c:477 +#: plugins/check_procs.c:486 msgid "PCPU must be a float!" msgstr "PCPU doit être un nombre en virgule flottante!" -#: plugins/check_procs.c:501 +#: plugins/check_procs.c:510 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "Metric doit être l'un des PROCS, VSZ, RSS, CPU, ELAPSED!" -#: plugins/check_procs.c:537 +#: plugins/check_procs.c:546 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "wmax (%d) ne peut pas être plus grand que cmax (%d)\n" -#: plugins/check_procs.c:541 +#: plugins/check_procs.c:550 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "wmin (%d) ne peut pas être plus petit que cmin (%d)\n" -#: plugins/check_procs.c:678 +#: plugins/check_procs.c:687 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:679 +#: plugins/check_procs.c:688 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:680 +#: plugins/check_procs.c:689 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:698 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:700 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:702 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:694 +#: plugins/check_procs.c:703 msgid "PROCS - number of processes (default)" msgstr "PROCS - nombre de processus (défaut)" -#: plugins/check_procs.c:695 +#: plugins/check_procs.c:704 msgid "VSZ - virtual memory size" msgstr "VSZ - taille mémoire virtuelle" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:705 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:697 +#: plugins/check_procs.c:706 msgid "CPU - percentage CPU" msgstr "CPU - pourcentage du processeur" -#: plugins/check_procs.c:700 +#: plugins/check_procs.c:709 msgid "ELAPSED - time elapsed in seconds" msgstr "ELAPSED - temps écoulé en secondes" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:714 msgid "Extra information. Up to 3 verbosity levels" msgstr "informations supplémentaires. Jusqu'à 3 niveaux de verbosité" -#: plugins/check_procs.c:710 +#: plugins/check_procs.c:719 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:720 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:712 +#: plugins/check_procs.c:721 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:714 +#: plugins/check_procs.c:723 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:716 +#: plugins/check_procs.c:725 msgid "Only scan for processes with VSZ higher than indicated." msgstr "" -#: plugins/check_procs.c:718 +#: plugins/check_procs.c:727 msgid "Only scan for processes with RSS higher than indicated." msgstr "" -#: plugins/check_procs.c:720 +#: plugins/check_procs.c:729 msgid "Only scan for processes with PCPU higher than indicated." msgstr "" -#: plugins/check_procs.c:722 +#: plugins/check_procs.c:731 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:724 +#: plugins/check_procs.c:733 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:726 +#: plugins/check_procs.c:735 msgid "Only scan for processes with args that contain the regex STRING." msgstr "" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:737 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:730 +#: plugins/check_procs.c:739 #, c-format msgid "" "\n" @@ -3836,7 +3857,7 @@ msgstr "" "est à l'intérieur du seuil\n" "\n" -#: plugins/check_procs.c:735 +#: plugins/check_procs.c:744 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3853,27 +3874,27 @@ msgstr "" "état actuel (ex: 'Z'), ou par le nombre de processus en cours d'exécution\n" "\n" -#: plugins/check_procs.c:744 +#: plugins/check_procs.c:753 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:754 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:747 +#: plugins/check_procs.c:756 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:748 +#: plugins/check_procs.c:757 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:750 +#: plugins/check_procs.c:759 msgid "Alert if VSZ of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:752 +#: plugins/check_procs.c:761 #, c-format msgid "Alert if CPU of any processes over 10%% or 20%%" msgstr "" @@ -4034,7 +4055,7 @@ msgstr "Réponses REAL invalide reçue de l'hôte" msgid "Invalid REAL response received from host on port %d\n" msgstr "Réponses REAL invalide reçue de l'hôte sur le port %d\n" -#: plugins/check_real.c:184 plugins/check_tcp.c:292 +#: plugins/check_real.c:184 plugins/check_tcp.c:289 #, c-format msgid "No data received from host\n" msgstr "Pas de données reçues de l'hôte\n" @@ -4044,11 +4065,11 @@ msgstr "Pas de données reçues de l'hôte\n" msgid "REAL %s - %d second response time\n" msgstr "REAL %s - %d secondes de temps de réponse\n" -#: plugins/check_real.c:336 plugins/check_smtp.c:576 plugins/check_ups.c:536 +#: plugins/check_real.c:336 plugins/check_smtp.c:578 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "Le seuil d'avertissement doit être un entier positif" -#: plugins/check_real.c:345 plugins/check_smtp.c:567 plugins/check_ups.c:527 +#: plugins/check_real.c:345 plugins/check_smtp.c:569 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "Le seuil critique doit être un entier positif" @@ -4074,7 +4095,7 @@ msgstr "" msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion RTSP avec l'hôte." -#: plugins/check_real.c:438 plugins/check_smtp.c:808 +#: plugins/check_real.c:438 plugins/check_smtp.c:827 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" @@ -4092,506 +4113,512 @@ msgstr "" msgid "values." msgstr "" -#: plugins/check_smtp.c:146 plugins/check_swap.c:265 plugins/check_swap.c:271 +#: plugins/check_smtp.c:150 plugins/check_swap.c:265 plugins/check_swap.c:271 #, c-format msgid "malloc() failed!\n" msgstr "l'allocation mémoire à échoué!\n" -#: plugins/check_smtp.c:150 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "La commande gethostname() à échoué\n" -#: plugins/check_smtp.c:185 plugins/check_smtp.c:209 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "La commande recv() à échoué\n" -#: plugins/check_smtp.c:196 +#: plugins/check_smtp.c:200 #, c-format msgid "Invalid SMTP response received from host: %s\n" msgstr "Réponse SMTP reçue de l'hôte invalide: %s\n" -#: plugins/check_smtp.c:198 +#: plugins/check_smtp.c:202 #, c-format msgid "Invalid SMTP response received from host on port %d: %s\n" msgstr "Réponse SMTP reçue de l'hôte sur le port %d invalide: %s\n" -#: plugins/check_smtp.c:219 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "AVERTISSEMENT: - TLS n'est pas supporté par ce serveur\n" -#: plugins/check_smtp.c:231 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "Le serveur ne supporte pas STARTTLS\n" -#: plugins/check_smtp.c:237 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "CRITIQUE - Impossible de créer le contexte SSL.\n" -#: plugins/check_smtp.c:257 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "envoyé %s" -#: plugins/check_smtp.c:264 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:276 -msgid "CRITICAL - Cannot retrieve server certificate." -msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur" - -#: plugins/check_smtp.c:311 plugins/check_snmp.c:722 +#: plugins/check_smtp.c:312 plugins/check_snmp.c:718 #, c-format msgid "Could Not Compile Regular Expression" msgstr "Impossible de compiler l'expression rationnelle" -#: plugins/check_smtp.c:320 +#: plugins/check_smtp.c:321 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "SMTP %s - réponse invalide de '%s' à la commande '%s'\n" -#: plugins/check_smtp.c:324 plugins/check_snmp.c:453 +#: plugins/check_smtp.c:325 plugins/check_snmp.c:449 #, c-format msgid "Execute Error: %s\n" msgstr "Erreur d'exécution: %s\n" -#: plugins/check_smtp.c:338 +#: plugins/check_smtp.c:339 #, c-format msgid "no authuser specified, " msgstr "Pas d'utilisateur pour l'authentification spécifié, " -#: plugins/check_smtp.c:343 +#: plugins/check_smtp.c:344 #, c-format msgid "no authpass specified, " msgstr "pas de mot de passe spécifié, " -#: plugins/check_smtp.c:350 plugins/check_smtp.c:372 plugins/check_smtp.c:393 -#: plugins/check_smtp.c:668 +#: plugins/check_smtp.c:351 plugins/check_smtp.c:373 plugins/check_smtp.c:394 +#: plugins/check_smtp.c:685 #, c-format msgid "sent %s\n" msgstr "envoyé %s\n" -#: plugins/check_smtp.c:353 +#: plugins/check_smtp.c:354 #, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "recv() à échoué après AUTH LOGIN, " -#: plugins/check_smtp.c:358 plugins/check_smtp.c:380 plugins/check_smtp.c:401 -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:359 plugins/check_smtp.c:381 plugins/check_smtp.c:402 +#: plugins/check_smtp.c:696 #, c-format msgid "received %s\n" msgstr "reçu %s\n" -#: plugins/check_smtp.c:362 +#: plugins/check_smtp.c:363 #, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "Réponse invalide reçue après AUTH LOGIN, " -#: plugins/check_smtp.c:376 +#: plugins/check_smtp.c:377 #, c-format msgid "recv() failed after sending authuser, " msgstr "La commande recv() a échoué après authuser, " -#: plugins/check_smtp.c:384 +#: plugins/check_smtp.c:385 #, c-format msgid "invalid response received after authuser, " msgstr "Réponse invalide reçue après authuser, " -#: plugins/check_smtp.c:397 +#: plugins/check_smtp.c:398 #, c-format msgid "recv() failed after sending authpass, " msgstr "la commande recv() à échoué après authpass, " -#: plugins/check_smtp.c:405 +#: plugins/check_smtp.c:406 #, c-format msgid "invalid response received after authpass, " msgstr "Réponse invalide reçue après authpass, " -#: plugins/check_smtp.c:412 +#: plugins/check_smtp.c:413 #, c-format msgid "only authtype LOGIN is supported, " msgstr "seul la méthode d'authentification LOGIN est supportée, " -#: plugins/check_smtp.c:436 +#: plugins/check_smtp.c:437 #, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr "SMTP %s - %s%.3f sec. de temps de réponse%s%s|%s\n" -#: plugins/check_smtp.c:543 plugins/check_smtp.c:555 +#: plugins/check_smtp.c:545 plugins/check_smtp.c:557 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "Impossible de réallouer des unités [%d]\n" -#: plugins/check_smtp.c:603 +#: plugins/check_smtp.c:608 msgid "SSL support not available - install OpenSSL and recompile" msgstr "SSL n'est pas disponible - installer OpenSSL et recompilez" -#: plugins/check_smtp.c:674 +#: plugins/check_smtp.c:676 plugins/check_smtp.c:681 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:691 #, c-format msgid "recv() failed after QUIT." msgstr "recv() à échoué après QUIT." -#: plugins/check_smtp.c:676 +#: plugins/check_smtp.c:693 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:764 +#: plugins/check_smtp.c:781 msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "Ce plugin va essayer d'ouvrir un connexion SMTP avec l'hôte." -#: plugins/check_smtp.c:778 +#: plugins/check_smtp.c:795 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" " Texte attendu dans la première ligne de réponse du serveur (défaut: '%" "s')\n" -#: plugins/check_smtp.c:780 +#: plugins/check_smtp.c:797 msgid "SMTP command (may be used repeatedly)" msgstr "Commande SMTP (peut être utilisé plusieurs fois)" -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:799 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:801 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:803 msgid "FQDN used for HELO" msgstr "" -#: plugins/check_smtp.c:789 plugins/check_tcp.c:633 +#: plugins/check_smtp.c:806 plugins/check_tcp.c:630 msgid "Minimum number of days a certificate has to be valid." msgstr "Nombre de jours minimum pour que le certificat soit valide." -#: plugins/check_smtp.c:791 +#: plugins/check_smtp.c:808 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:812 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:797 +#: plugins/check_smtp.c:814 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:816 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:809 +#: plugins/check_smtp.c:818 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:828 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:810 +#: plugins/check_smtp.c:829 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:811 +#: plugins/check_smtp.c:830 msgid "STATE_WARNING return values." msgstr "" -#: plugins/check_snmp.c:299 +#: plugins/check_snmp.c:298 #, c-format msgid "External command error: %s\n" msgstr "Erreur d'exécution de commande externe: %s\n" -#: plugins/check_snmp.c:304 +#: plugins/check_snmp.c:303 #, c-format msgid "External command error with no output (return code: %d)\n" msgstr "" -#: plugins/check_snmp.c:410 +#: plugins/check_snmp.c:406 msgid "No valid data returned" msgstr "Pas de données valides reçues" -#: plugins/check_snmp.c:417 +#: plugins/check_snmp.c:413 msgid "Time duration between plugin calls is invalid" msgstr "" -#: plugins/check_snmp.c:513 +#: plugins/check_snmp.c:509 msgid "Cannot malloc" msgstr "" -#: plugins/check_snmp.c:519 +#: plugins/check_snmp.c:515 msgid "Cannot asprintf()" msgstr "" -#: plugins/check_snmp.c:525 +#: plugins/check_snmp.c:521 #, fuzzy msgid "Cannot realloc()" msgstr "Impossible de réallouer des unités\n" -#: plugins/check_snmp.c:541 +#: plugins/check_snmp.c:537 msgid "No previous data to calculate rate - assume okay" msgstr "" -#: plugins/check_snmp.c:680 +#: plugins/check_snmp.c:676 msgid "Retries interval must be a positive integer" msgstr "L'intervalle pour les essais doit être un entier positif" -#: plugins/check_snmp.c:742 +#: plugins/check_snmp.c:738 #, c-format msgid "Could not reallocate labels[%d]" msgstr "Impossible de réallouer des labels[%d]" -#: plugins/check_snmp.c:754 +#: plugins/check_snmp.c:750 msgid "Could not reallocate labels\n" msgstr "Impossible de réallouer des labels\n" -#: plugins/check_snmp.c:771 +#: plugins/check_snmp.c:767 #, c-format msgid "Could not reallocate units [%d]\n" msgstr "Impossible de réallouer des unités [%d]\n" -#: plugins/check_snmp.c:783 +#: plugins/check_snmp.c:779 msgid "Could not realloc() units\n" msgstr "Impossible de réallouer des unités\n" -#: plugins/check_snmp.c:800 +#: plugins/check_snmp.c:796 #, fuzzy msgid "Rate multiplier must be a positive integer" msgstr "La taille du paquet doit être un entier positif" -#: plugins/check_snmp.c:852 +#: plugins/check_snmp.c:848 msgid "No host specified\n" msgstr "Pas d'hôte spécifié\n" -#: plugins/check_snmp.c:856 +#: plugins/check_snmp.c:852 msgid "No OIDs specified\n" msgstr "Pas de compteur spécifié\n" -#: plugins/check_snmp.c:878 +#: plugins/check_snmp.c:874 msgid "Invalid seclevel" msgstr "" -#: plugins/check_snmp.c:885 plugins/check_snmp.c:888 plugins/check_snmp.c:906 +#: plugins/check_snmp.c:881 plugins/check_snmp.c:884 plugins/check_snmp.c:902 #, c-format msgid "Required parameter: %s\n" msgstr "" -#: plugins/check_snmp.c:927 +#: plugins/check_snmp.c:923 msgid "Invalid SNMP version" msgstr "Version de SNMP invalide" -#: plugins/check_snmp.c:944 +#: plugins/check_snmp.c:940 msgid "Unbalanced quotes\n" msgstr "Guillemets manquants\n" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:989 msgid "Check status of remote machines and obtain system information via SNMP" msgstr "" "Vérifie l'état des machines distantes et obtient l'information système via " "SNMP" -#: plugins/check_snmp.c:1006 +#: plugins/check_snmp.c:1002 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "Utiliser SNMP GETNEXT au lieu de SNMP GET" -#: plugins/check_snmp.c:1008 +#: plugins/check_snmp.c:1004 msgid "SNMP protocol version" msgstr "Version du protocole SNMP" -#: plugins/check_snmp.c:1010 +#: plugins/check_snmp.c:1006 msgid "SNMPv3 securityLevel" msgstr "Niveau de sécurité SNMPv3 (securityLevel)" -#: plugins/check_snmp.c:1012 +#: plugins/check_snmp.c:1008 msgid "SNMPv3 auth proto" msgstr "Protocole d'authentification SNMPv3" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1010 msgid "SNMPv3 priv proto (default DES)" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1014 msgid "Optional community string for SNMP communication" msgstr "Communauté optionnelle pour la communication SNMP" -#: plugins/check_snmp.c:1019 +#: plugins/check_snmp.c:1015 msgid "default is" msgstr "défaut:" -#: plugins/check_snmp.c:1021 +#: plugins/check_snmp.c:1017 msgid "SNMPv3 username" msgstr "Nom d'utilisateur SNMPv3" -#: plugins/check_snmp.c:1023 +#: plugins/check_snmp.c:1019 msgid "SNMPv3 authentication password" msgstr "Mot de passe d'authentification SNMPv3" -#: plugins/check_snmp.c:1025 +#: plugins/check_snmp.c:1021 msgid "SNMPv3 privacy password" msgstr "Mot de passe de confidentialité SNMPv3" -#: plugins/check_snmp.c:1029 +#: plugins/check_snmp.c:1025 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:1031 +#: plugins/check_snmp.c:1027 msgid "" "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" msgstr "" -#: plugins/check_snmp.c:1032 +#: plugins/check_snmp.c:1028 msgid "for symbolic OIDs.)" msgstr "" -#: plugins/check_snmp.c:1034 +#: plugins/check_snmp.c:1030 msgid "Delimiter to use when parsing returned data. Default is" msgstr "" -#: plugins/check_snmp.c:1035 +#: plugins/check_snmp.c:1031 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:1036 +#: plugins/check_snmp.c:1032 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:1040 +#: plugins/check_snmp.c:1036 msgid "Warning threshold range(s)" msgstr "Valeurs pour le seuil d'avertissement" -#: plugins/check_snmp.c:1042 +#: plugins/check_snmp.c:1038 msgid "Critical threshold range(s)" msgstr "Valeurs pour le seuil critique" -#: plugins/check_snmp.c:1044 +#: plugins/check_snmp.c:1040 msgid "Enable rate calculation. See 'Rate Calculation' below" msgstr "" -#: plugins/check_snmp.c:1046 +#: plugins/check_snmp.c:1042 msgid "" "Converts rate per second. For example, set to 60 to convert to per minute" msgstr "" -#: plugins/check_snmp.c:1050 +#: plugins/check_snmp.c:1046 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:1052 +#: plugins/check_snmp.c:1048 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:1054 +#: plugins/check_snmp.c:1050 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:1056 +#: plugins/check_snmp.c:1052 msgid "Invert search result (CRITICAL if found)" msgstr "" -#: plugins/check_snmp.c:1060 +#: plugins/check_snmp.c:1056 msgid "Prefix label for output from plugin" msgstr "" -#: plugins/check_snmp.c:1062 +#: plugins/check_snmp.c:1058 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:1064 +#: plugins/check_snmp.c:1060 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:1068 +#: plugins/check_snmp.c:1064 msgid "Number of retries to be used in the requests" msgstr "Le nombre d'essai pour les requêtes" -#: plugins/check_snmp.c:1073 +#: plugins/check_snmp.c:1069 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1074 +#: plugins/check_snmp.c:1070 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" "Si vous n'avez pas le programme installé, vous devrez le télécharger depuis" -#: plugins/check_snmp.c:1075 +#: plugins/check_snmp.c:1071 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "http://net-snmp.sourceforge.net avant de pouvoir utiliser ce plugin." -#: plugins/check_snmp.c:1079 +#: plugins/check_snmp.c:1075 +#, fuzzy msgid "" -"- Multiple OIDs may be indicated by a comma or space-delimited list (lists " -"with" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " msgstr "" "- Des OIDs multiples peuvent être séparées par des virgules ou des espaces" -#: plugins/check_snmp.c:1080 -msgid "internal spaces must be quoted). Maximum:" +#: plugins/check_snmp.c:1076 +#, fuzzy +msgid "list (lists with internal spaces must be quoted). Maximum:" msgstr "(Les liste avec espaces doivent être entre guillemets). Max:" -#: plugins/check_snmp.c:1080 +#: plugins/check_snmp.c:1076 msgid "OIDs." msgstr "OIDs." -#: plugins/check_snmp.c:1084 +#: plugins/check_snmp.c:1080 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1085 +#: plugins/check_snmp.c:1081 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1086 +#: plugins/check_snmp.c:1082 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1087 +#: plugins/check_snmp.c:1083 msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_snmp.c:1090 +#: plugins/check_snmp.c:1086 msgid "Rate Calculation:" msgstr "" -#: plugins/check_snmp.c:1091 +#: plugins/check_snmp.c:1087 msgid "In many places, SNMP returns counters that are only meaningful when" msgstr "" -#: plugins/check_snmp.c:1092 +#: plugins/check_snmp.c:1088 msgid "calculating the counter difference since the last check. check_snmp" msgstr "" -#: plugins/check_snmp.c:1093 +#: plugins/check_snmp.c:1089 msgid "saves the last state information in a file so that the rate per second" msgstr "" -#: plugins/check_snmp.c:1094 +#: plugins/check_snmp.c:1090 msgid "can be calculated. Use the --rate option to save state information." msgstr "" -#: plugins/check_snmp.c:1095 +#: plugins/check_snmp.c:1091 msgid "" "On the first run, there will be no prior state - this will return with OK." msgstr "" -#: plugins/check_snmp.c:1096 +#: plugins/check_snmp.c:1092 msgid "The state is uniquely determined by the arguments to the plugin, so" msgstr "" -#: plugins/check_snmp.c:1097 +#: plugins/check_snmp.c:1093 msgid "changing the arguments will create a new state file." msgstr "" @@ -4599,27 +4626,27 @@ msgstr "" msgid "Port number must be a positive integer" msgstr "Le numéro du port doit être un nombre entier positif" -#: plugins/check_ssh.c:228 +#: plugins/check_ssh.c:232 #, c-format msgid "Server answer: %s" msgstr "Réponse du serveur: %s" -#: plugins/check_ssh.c:247 +#: plugins/check_ssh.c:251 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" "SSH AVERTISSEMENT - %s (protocole %s) différence de version, attendu'%s'\n" -#: plugins/check_ssh.c:254 -#, c-format -msgid "SSH OK - %s (protocol %s)\n" +#: plugins/check_ssh.c:260 +#, fuzzy, c-format +msgid "SSH OK - %s (protocol %s) | %s\n" msgstr "SSH OK - %s (protocole %s)\n" -#: plugins/check_ssh.c:274 +#: plugins/check_ssh.c:281 msgid "Try to connect to an SSH server at specified server and port" msgstr "Essaye de se connecter à un serveur SSH précisé à un port précis" -#: plugins/check_ssh.c:290 +#: plugins/check_ssh.c:297 msgid "" "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)" msgstr "" @@ -4738,40 +4765,35 @@ msgstr "" "Avec la surveillance UDP, une chaîne d'envoi et un chaîne de réponse doit " "être spécifiée." -#: plugins/check_tcp.c:240 -#, c-format -msgid "CRITICAL - Cannot retrieve server certificate.\n" -msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur.\n" - -#: plugins/check_tcp.c:418 +#: plugins/check_tcp.c:415 msgid "No arguments found" msgstr "Pas de paramètres" -#: plugins/check_tcp.c:519 +#: plugins/check_tcp.c:516 msgid "Maxbytes must be a positive integer" msgstr "Maxbytes doit être un entier positif" -#: plugins/check_tcp.c:537 +#: plugins/check_tcp.c:534 msgid "Refuse must be one of ok, warn, crit" msgstr "Refuse doit être parmis ok, warn, crit" -#: plugins/check_tcp.c:547 +#: plugins/check_tcp.c:544 msgid "Mismatch must be one of ok, warn, crit" msgstr "Mismatch doit être parmis ok, warn, crit" -#: plugins/check_tcp.c:553 +#: plugins/check_tcp.c:550 msgid "Delay must be a positive integer" msgstr "Delay doit être un entier positif" -#: plugins/check_tcp.c:581 +#: plugins/check_tcp.c:578 msgid "You must provide a server address" msgstr "Vous devez fournir une adresse serveur" -#: plugins/check_tcp.c:583 +#: plugins/check_tcp.c:580 msgid "Invalid hostname, address or socket" msgstr "Adresse/Nom/Socket invalide" -#: plugins/check_tcp.c:597 +#: plugins/check_tcp.c:594 #, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" @@ -4780,7 +4802,7 @@ msgstr "" "Ce plugin teste %s connections avec l'hôte spécifié (ou socket unix).\n" "\n" -#: plugins/check_tcp.c:610 +#: plugins/check_tcp.c:607 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" @@ -4788,55 +4810,55 @@ msgstr "" "Permet d'utiliser \\n, \\r, \\t ou \\ dans la chaîne de caractères send ou " "quit. Doit être placé avant ces dernières." -#: plugins/check_tcp.c:611 +#: plugins/check_tcp.c:608 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" "Par défaut: Rien n'est ajouté à send, \\r\\n est ajouté à la fin de quit" -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:610 msgid "String to send to the server" msgstr "Chaîne de caractères à envoyer au serveur" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "String to expect in server response" msgstr "Chaîne de caractères à attendre en réponse" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "(may be repeated)" msgstr "(peut être utilisé plusieurs fois)" -#: plugins/check_tcp.c:617 +#: plugins/check_tcp.c:614 msgid "All expect strings need to occur in server response. Default is any" msgstr "" "Toutes les chaînes attendus (expect) doivent être repérés dans la réponse. " "Par défaut, n'importe laquelle suffit." -#: plugins/check_tcp.c:619 +#: plugins/check_tcp.c:616 msgid "String to send server to initiate a clean close of the connection" msgstr "Chaîne de caractères à envoyer pour fermer gracieusement la connection" -#: plugins/check_tcp.c:621 +#: plugins/check_tcp.c:618 msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:623 +#: plugins/check_tcp.c:620 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:625 +#: plugins/check_tcp.c:622 msgid "Hide output from TCP socket" msgstr "Cacher la réponse provenant du socket TCP" -#: plugins/check_tcp.c:627 +#: plugins/check_tcp.c:624 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:629 +#: plugins/check_tcp.c:626 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:635 +#: plugins/check_tcp.c:632 msgid "Use SSL for the connection." msgstr "" @@ -5070,38 +5092,33 @@ msgstr "" msgid "http://www.networkupstools.org" msgstr "" -#: plugins/check_users.c:92 -#, c-format -msgid "# users=%d" -msgstr "# utilisateurs=%d" - -#: plugins/check_users.c:115 +#: plugins/check_users.c:90 msgid "Unable to read output" msgstr "Impossible de lire les données en entrée" -#: plugins/check_users.c:122 +#: plugins/check_users.c:97 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "UTILISATEURS %s - %d utilisateurs actuellement connectés sur |%s\n" -#: plugins/check_users.c:207 +#: plugins/check_users.c:176 msgid "This plugin checks the number of users currently logged in on the local" msgstr "" "Ce plugin vérifie le nombre d'utilisateurs actuellement connecté sur le " "système local" -#: plugins/check_users.c:208 +#: plugins/check_users.c:177 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "et génère une erreur si le nombre excède le seuil spécifié." -#: plugins/check_users.c:218 +#: plugins/check_users.c:187 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" "Sortir avec un résultat AVERTISSEMENT si plus de INTEGER utilisateurs sont " "connectés" -#: plugins/check_users.c:220 +#: plugins/check_users.c:189 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" "Sortir avec un résultat CRITIQUE si plus de INTEGER utilisateurs sont " @@ -6049,6 +6066,21 @@ msgstr "" msgid "The -v switch can be specified several times for increased verbosity." msgstr "" +#~ msgid "Critical threshold must be integer" +#~ msgstr "le seuil critique doit être un entier positif" + +#~ msgid "Warning threshold must be integer" +#~ msgstr "Le seuil d'avertissement doit être un entier positif" + +#~ msgid "CRITICAL - Cannot retrieve server certificate." +#~ msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur" + +#~ msgid "CRITICAL - Cannot retrieve server certificate.\n" +#~ msgstr "CRITIQUE - Impossible d'obtenir le certificat du serveur.\n" + +#~ msgid "# users=%d" +#~ msgstr "# utilisateurs=%d" + #~ msgid "Usage: " #~ msgstr "Utilisation: " diff --git a/po/nagios-plugins.pot b/po/nagios-plugins.pot index 7d92b58..7b81c9a 100644 --- a/po/nagios-plugins.pot +++ b/po/nagios-plugins.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: nagiosplug-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2010-07-09 19:30-0400\n" +"POT-Creation-Date: 2012-06-11 23:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: plugins/check_by_ssh.c:86 plugins/check_cluster.c:76 plugins/check_dig.c:87 -#: plugins/check_disk.c:192 plugins/check_dns.c:102 plugins/check_dummy.c:52 +#: plugins/check_disk.c:190 plugins/check_dns.c:102 plugins/check_dummy.c:52 #: plugins/check_fping.c:89 plugins/check_game.c:82 plugins/check_hpjd.c:103 #: plugins/check_http.c:157 plugins/check_ldap.c:109 plugins/check_load.c:122 #: plugins/check_mrtgtraf.c:83 plugins/check_mysql.c:85 @@ -26,8 +26,8 @@ msgstr "" #: plugins/check_ntp_peer.c:569 plugins/check_ntp_time.c:548 #: plugins/check_nwstat.c:173 plugins/check_overcr.c:102 #: plugins/check_pgsql.c:154 plugins/check_ping.c:95 plugins/check_procs.c:147 -#: plugins/check_radius.c:160 plugins/check_real.c:80 plugins/check_smtp.c:140 -#: plugins/check_snmp.c:205 plugins/check_ssh.c:73 plugins/check_swap.c:110 +#: plugins/check_radius.c:160 plugins/check_real.c:80 plugins/check_smtp.c:144 +#: plugins/check_snmp.c:204 plugins/check_ssh.c:73 plugins/check_swap.c:110 #: plugins/check_tcp.c:209 plugins/check_time.c:78 plugins/check_ups.c:122 #: plugins/check_users.c:68 plugins/negate.c:211 plugins-root/check_dhcp.c:270 msgid "Could not parse arguments" @@ -59,179 +59,183 @@ msgstr "" msgid "%s: Error parsing output\n" msgstr "" -#: plugins/check_by_ssh.c:219 plugins/check_disk.c:525 +#: plugins/check_by_ssh.c:220 plugins/check_disk.c:467 #: plugins/check_http.c:256 plugins/check_ldap.c:293 plugins/check_pgsql.c:250 -#: plugins/check_procs.c:364 plugins/check_radius.c:308 -#: plugins/check_real.c:356 plugins/check_smtp.c:587 plugins/check_snmp.c:665 -#: plugins/check_ssh.c:138 plugins/check_tcp.c:490 plugins/check_time.c:302 +#: plugins/check_procs.c:366 plugins/check_radius.c:308 +#: plugins/check_real.c:356 plugins/check_smtp.c:592 plugins/check_snmp.c:661 +#: plugins/check_ssh.c:138 plugins/check_tcp.c:487 plugins/check_time.c:302 #: plugins/check_ups.c:556 plugins/negate.c:161 msgid "Timeout interval must be a positive integer" msgstr "" -#: plugins/check_by_ssh.c:229 plugins/check_pgsql.c:274 +#: plugins/check_by_ssh.c:230 plugins/check_pgsql.c:274 #: plugins/check_radius.c:272 plugins/check_real.c:327 -#: plugins/check_smtp.c:514 plugins/check_tcp.c:496 plugins/check_time.c:296 +#: plugins/check_smtp.c:516 plugins/check_tcp.c:493 plugins/check_time.c:296 #: plugins/check_ups.c:518 msgid "Port must be a positive integer" msgstr "" -#: plugins/check_by_ssh.c:290 +#: plugins/check_by_ssh.c:291 msgid "skip-stdout argument must be an integer" msgstr "" -#: plugins/check_by_ssh.c:298 +#: plugins/check_by_ssh.c:299 msgid "skip-stderr argument must be an integer" msgstr "" -#: plugins/check_by_ssh.c:317 +#: plugins/check_by_ssh.c:322 #, c-format msgid "%s: You must provide a host name\n" msgstr "" -#: plugins/check_by_ssh.c:335 +#: plugins/check_by_ssh.c:340 msgid "No remotecmd" msgstr "" -#: plugins/check_by_ssh.c:349 +#: plugins/check_by_ssh.c:354 #, c-format msgid "%s: Argument limit of %d exceeded\n" msgstr "" -#: plugins/check_by_ssh.c:352 +#: plugins/check_by_ssh.c:357 msgid "Can not (re)allocate 'commargv' buffer\n" msgstr "" -#: plugins/check_by_ssh.c:366 +#: plugins/check_by_ssh.c:371 #, c-format msgid "" "%s: In passive mode, you must provide a service name for each command.\n" msgstr "" -#: plugins/check_by_ssh.c:369 +#: plugins/check_by_ssh.c:374 #, c-format msgid "" "%s: In passive mode, you must provide the host short name from the nagios " "configs.\n" msgstr "" -#: plugins/check_by_ssh.c:383 +#: plugins/check_by_ssh.c:388 #, c-format msgid "This plugin uses SSH to execute commands on a remote host" msgstr "" -#: plugins/check_by_ssh.c:398 +#: plugins/check_by_ssh.c:403 msgid "tell ssh to use Protocol 1 [optional]" msgstr "" -#: plugins/check_by_ssh.c:400 +#: plugins/check_by_ssh.c:405 msgid "tell ssh to use Protocol 2 [optional]" msgstr "" -#: plugins/check_by_ssh.c:402 +#: plugins/check_by_ssh.c:407 msgid "Ignore all or (if specified) first n lines on STDOUT [optional]" msgstr "" -#: plugins/check_by_ssh.c:404 +#: plugins/check_by_ssh.c:409 msgid "Ignore all or (if specified) first n lines on STDERR [optional]" msgstr "" -#: plugins/check_by_ssh.c:406 +#: plugins/check_by_ssh.c:411 msgid "" "tells ssh to fork rather than create a tty [optional]. This will always " "return OK if ssh is executed" msgstr "" -#: plugins/check_by_ssh.c:408 +#: plugins/check_by_ssh.c:413 msgid "command to execute on the remote machine" msgstr "" -#: plugins/check_by_ssh.c:410 +#: plugins/check_by_ssh.c:415 msgid "SSH user name on remote host [optional]" msgstr "" -#: plugins/check_by_ssh.c:412 +#: plugins/check_by_ssh.c:417 msgid "identity of an authorized key [optional]" msgstr "" -#: plugins/check_by_ssh.c:414 +#: plugins/check_by_ssh.c:419 msgid "external command file for nagios [optional]" msgstr "" -#: plugins/check_by_ssh.c:416 +#: plugins/check_by_ssh.c:421 msgid "list of nagios service names, separated by ':' [optional]" msgstr "" -#: plugins/check_by_ssh.c:418 +#: plugins/check_by_ssh.c:423 msgid "short name of host in nagios configuration [optional]" msgstr "" -#: plugins/check_by_ssh.c:420 +#: plugins/check_by_ssh.c:425 msgid "Call ssh with '-o OPTION' (may be used multiple times) [optional]" msgstr "" -#: plugins/check_by_ssh.c:422 -msgid "Tell ssh to suppress warning and diagnostic messages [optional]" -msgstr "" - #: plugins/check_by_ssh.c:427 -msgid "The most common mode of use is to refer to a local identity file with" -msgstr "" - -#: plugins/check_by_ssh.c:428 -msgid "the '-i' option. In this mode, the identity pair should have a null" +msgid "Tell ssh to use this configfile [optional]" msgstr "" #: plugins/check_by_ssh.c:429 -msgid "passphrase and the public key should be listed in the authorized_keys" +msgid "Tell ssh to suppress warning and diagnostic messages [optional]" msgstr "" -#: plugins/check_by_ssh.c:430 -msgid "file of the remote host. Usually the key will be restricted to running" -msgstr "" - -#: plugins/check_by_ssh.c:431 -msgid "only one command on the remote server. If the remote SSH server tracks" -msgstr "" - -#: plugins/check_by_ssh.c:432 -msgid "invocation arguments, the one remote program may be an agent that can" -msgstr "" - -#: plugins/check_by_ssh.c:433 -msgid "execute additional commands as proxy" +#: plugins/check_by_ssh.c:434 +msgid "The most common mode of use is to refer to a local identity file with" msgstr "" #: plugins/check_by_ssh.c:435 -msgid "To use passive mode, provide multiple '-C' options, and provide" +msgid "the '-i' option. In this mode, the identity pair should have a null" msgstr "" #: plugins/check_by_ssh.c:436 +msgid "passphrase and the public key should be listed in the authorized_keys" +msgstr "" + +#: plugins/check_by_ssh.c:437 +msgid "file of the remote host. Usually the key will be restricted to running" +msgstr "" + +#: plugins/check_by_ssh.c:438 +msgid "only one command on the remote server. If the remote SSH server tracks" +msgstr "" + +#: plugins/check_by_ssh.c:439 +msgid "invocation arguments, the one remote program may be an agent that can" +msgstr "" + +#: plugins/check_by_ssh.c:440 +msgid "execute additional commands as proxy" +msgstr "" + +#: plugins/check_by_ssh.c:442 +msgid "To use passive mode, provide multiple '-C' options, and provide" +msgstr "" + +#: plugins/check_by_ssh.c:443 msgid "" "all of -O, -s, and -n options (servicelist order must match '-C'options)" msgstr "" -#: plugins/check_by_ssh.c:438 plugins/check_cluster.c:261 -#: plugins/check_dig.c:342 plugins/check_disk.c:963 plugins/check_http.c:1415 +#: plugins/check_by_ssh.c:445 plugins/check_cluster.c:261 +#: plugins/check_dig.c:342 plugins/check_disk.c:905 plugins/check_http.c:1418 #: plugins/check_nagios.c:302 plugins/check_ntp.c:864 #: plugins/check_ntp_peer.c:698 plugins/check_ntp_time.c:628 -#: plugins/check_procs.c:742 plugins/negate.c:268 plugins/urlize.c:180 +#: plugins/check_procs.c:751 plugins/negate.c:268 plugins/urlize.c:180 msgid "Examples:" msgstr "" -#: plugins/check_by_ssh.c:453 plugins/check_cluster.c:274 -#: plugins/check_dig.c:354 plugins/check_disk.c:980 plugins/check_dns.c:486 +#: plugins/check_by_ssh.c:460 plugins/check_cluster.c:274 +#: plugins/check_dig.c:354 plugins/check_disk.c:922 plugins/check_dns.c:486 #: plugins/check_dummy.c:122 plugins/check_fping.c:432 -#: plugins/check_game.c:331 plugins/check_hpjd.c:414 plugins/check_http.c:1438 -#: plugins/check_ldap.c:452 plugins/check_load.c:325 plugins/check_mrtg.c:382 -#: plugins/check_mysql.c:425 plugins/check_nagios.c:313 plugins/check_nt.c:759 +#: plugins/check_game.c:331 plugins/check_hpjd.c:414 plugins/check_http.c:1441 +#: plugins/check_ldap.c:456 plugins/check_load.c:325 plugins/check_mrtg.c:382 +#: plugins/check_mysql.c:425 plugins/check_nagios.c:313 plugins/check_nt.c:764 #: plugins/check_ntp.c:883 plugins/check_ntp_peer.c:718 #: plugins/check_ntp_time.c:637 plugins/check_nwstat.c:1685 #: plugins/check_overcr.c:467 plugins/check_pgsql.c:477 -#: plugins/check_ping.c:601 plugins/check_procs.c:760 +#: plugins/check_ping.c:603 plugins/check_procs.c:769 #: plugins/check_radius.c:385 plugins/check_real.c:451 -#: plugins/check_smtp.c:821 plugins/check_snmp.c:1107 plugins/check_ssh.c:302 -#: plugins/check_swap.c:558 plugins/check_tcp.c:651 plugins/check_time.c:371 -#: plugins/check_ups.c:660 plugins/check_users.c:229 +#: plugins/check_smtp.c:840 plugins/check_snmp.c:1103 plugins/check_ssh.c:309 +#: plugins/check_swap.c:558 plugins/check_tcp.c:648 plugins/check_time.c:371 +#: plugins/check_ups.c:660 plugins/check_users.c:197 #: plugins/check_ide_smart.c:527 plugins/negate.c:292 plugins/urlize.c:197 #: plugins-root/check_dhcp.c:1421 plugins-root/check_icmp.c:1347 msgid "Usage:" @@ -242,7 +246,7 @@ msgstr "" msgid "Host/Service Cluster Plugin for Nagios 2" msgstr "" -#: plugins/check_cluster.c:236 plugins/check_nt.c:661 +#: plugins/check_cluster.c:236 plugins/check_nt.c:666 msgid "Options:" msgstr "" @@ -279,11 +283,11 @@ msgid "commas" msgstr "" #: plugins/check_cluster.c:257 plugins/check_game.c:318 -#: plugins/check_http.c:1401 plugins/check_ldap.c:434 plugins/check_mrtg.c:363 +#: plugins/check_http.c:1400 plugins/check_ldap.c:438 plugins/check_mrtg.c:363 #: plugins/check_mrtgtraf.c:361 plugins/check_mysql.c:414 -#: plugins/check_nt.c:743 plugins/check_ntp.c:860 plugins/check_ntp_peer.c:689 +#: plugins/check_nt.c:748 plugins/check_ntp.c:860 plugins/check_ntp_peer.c:689 #: plugins/check_ntp_time.c:621 plugins/check_nwstat.c:1670 -#: plugins/check_overcr.c:456 plugins/check_snmp.c:1078 +#: plugins/check_overcr.c:456 plugins/check_snmp.c:1074 #: plugins/check_swap.c:547 plugins/check_ups.c:642 plugins/negate.c:274 #: plugins-root/check_icmp.c:1322 msgid "Notes:" @@ -365,12 +369,12 @@ msgstr "" msgid "Pass STRING as argument(s) to dig" msgstr "" -#: plugins/check_disk.c:214 +#: plugins/check_disk.c:212 #, c-format msgid "DISK %s: %s not found\n" msgstr "" -#: plugins/check_disk.c:214 plugins/check_disk.c:995 plugins/check_dns.c:241 +#: plugins/check_disk.c:212 plugins/check_disk.c:937 plugins/check_dns.c:241 #: plugins/check_dummy.c:74 plugins/check_mysql.c:212 #: plugins/check_nagios.c:104 plugins/check_nagios.c:168 #: plugins/check_nagios.c:172 plugins/check_procs.c:290 @@ -378,208 +382,208 @@ msgstr "" msgid "CRITICAL" msgstr "" -#: plugins/check_disk.c:599 +#: plugins/check_disk.c:541 #, c-format msgid "unit type %s not known\n" msgstr "" -#: plugins/check_disk.c:602 +#: plugins/check_disk.c:544 #, c-format msgid "failed allocating storage for '%s'\n" msgstr "" -#: plugins/check_disk.c:626 plugins/check_disk.c:664 plugins/check_disk.c:669 -#: plugins/check_disk.c:676 plugins/check_disk.c:680 plugins/check_disk.c:720 -#: plugins/check_disk.c:726 plugins/check_disk.c:745 plugins/check_dummy.c:77 -#: plugins/check_dummy.c:80 plugins/check_procs.c:451 +#: plugins/check_disk.c:568 plugins/check_disk.c:606 plugins/check_disk.c:611 +#: plugins/check_disk.c:618 plugins/check_disk.c:622 plugins/check_disk.c:662 +#: plugins/check_disk.c:668 plugins/check_disk.c:687 plugins/check_dummy.c:77 +#: plugins/check_dummy.c:80 plugins/check_procs.c:453 #, c-format msgid "UNKNOWN" msgstr "" -#: plugins/check_disk.c:626 +#: plugins/check_disk.c:568 msgid "Must set a threshold value before using -p\n" msgstr "" -#: plugins/check_disk.c:664 +#: plugins/check_disk.c:606 msgid "Must set -E before selecting paths\n" msgstr "" -#: plugins/check_disk.c:669 +#: plugins/check_disk.c:611 msgid "Must set group value before selecting paths\n" msgstr "" -#: plugins/check_disk.c:676 +#: plugins/check_disk.c:618 msgid "" "Paths need to be selected before using -i/-I. Use -A to select all paths " "explicitly" msgstr "" -#: plugins/check_disk.c:680 plugins/check_disk.c:726 plugins/check_procs.c:451 +#: plugins/check_disk.c:622 plugins/check_disk.c:668 plugins/check_procs.c:453 msgid "Could not compile regular expression" msgstr "" -#: plugins/check_disk.c:720 +#: plugins/check_disk.c:662 msgid "Must set a threshold value before using -r/-R\n" msgstr "" -#: plugins/check_disk.c:746 +#: plugins/check_disk.c:688 msgid "Regular expression did not match any path or disk" msgstr "" -#: plugins/check_disk.c:792 +#: plugins/check_disk.c:734 msgid "Unknown argument" msgstr "" -#: plugins/check_disk.c:826 +#: plugins/check_disk.c:768 #, c-format msgid " for %s\n" msgstr "" -#: plugins/check_disk.c:900 +#: plugins/check_disk.c:842 msgid "" "This plugin checks the amount of used disk space on a mounted file system" msgstr "" -#: plugins/check_disk.c:901 +#: plugins/check_disk.c:843 msgid "" "and generates an alert if free space is less than one of the threshold values" msgstr "" -#: plugins/check_disk.c:911 +#: plugins/check_disk.c:853 msgid "Exit with WARNING status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:913 +#: plugins/check_disk.c:855 msgid "Exit with WARNING status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:915 +#: plugins/check_disk.c:857 msgid "Exit with CRITICAL status if less than INTEGER units of disk are free" msgstr "" -#: plugins/check_disk.c:917 +#: plugins/check_disk.c:859 msgid "Exit with CRITCAL status if less than PERCENT of disk space is free" msgstr "" -#: plugins/check_disk.c:919 +#: plugins/check_disk.c:861 msgid "Exit with WARNING status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:921 +#: plugins/check_disk.c:863 msgid "Exit with CRITICAL status if less than PERCENT of inode space is free" msgstr "" -#: plugins/check_disk.c:923 +#: plugins/check_disk.c:865 msgid "Path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:925 +#: plugins/check_disk.c:867 msgid "Ignore device (only works if -p unspecified)" msgstr "" -#: plugins/check_disk.c:927 +#: plugins/check_disk.c:869 msgid "Clear thresholds" msgstr "" -#: plugins/check_disk.c:929 +#: plugins/check_disk.c:871 msgid "For paths or partitions specified with -p, only check for exact paths" msgstr "" -#: plugins/check_disk.c:931 +#: plugins/check_disk.c:873 msgid "Display only devices/mountpoints with errors" msgstr "" -#: plugins/check_disk.c:933 +#: plugins/check_disk.c:875 msgid "" "Group paths. Thresholds apply to (free-)space of all partitions together" msgstr "" -#: plugins/check_disk.c:935 +#: plugins/check_disk.c:877 msgid "Same as '--units kB'" msgstr "" -#: plugins/check_disk.c:937 +#: plugins/check_disk.c:879 msgid "Only check local filesystems" msgstr "" -#: plugins/check_disk.c:939 +#: plugins/check_disk.c:881 msgid "" "Only check local filesystems against thresholds. Yet call stat on remote " "filesystems" msgstr "" -#: plugins/check_disk.c:940 +#: plugins/check_disk.c:882 msgid "to test if they are accessible (e.g. to detect Stale NFS Handles)" msgstr "" -#: plugins/check_disk.c:942 +#: plugins/check_disk.c:884 msgid "Display the mountpoint instead of the partition" msgstr "" -#: plugins/check_disk.c:944 +#: plugins/check_disk.c:886 msgid "Same as '--units MB'" msgstr "" -#: plugins/check_disk.c:946 +#: plugins/check_disk.c:888 msgid "Explicitly select all paths. This is equivalent to -R '.*'" msgstr "" -#: plugins/check_disk.c:948 +#: plugins/check_disk.c:890 msgid "" "Case insensitive regular expression for path/partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:950 +#: plugins/check_disk.c:892 msgid "Regular expression for path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:952 +#: plugins/check_disk.c:894 msgid "" "Regular expression to ignore selected path/partition (case insensitive) (may " "be repeated)" msgstr "" -#: plugins/check_disk.c:954 +#: plugins/check_disk.c:896 msgid "" "Regular expression to ignore selected path or partition (may be repeated)" msgstr "" -#: plugins/check_disk.c:957 +#: plugins/check_disk.c:899 msgid "Choose bytes, kB, MB, GB, TB (default: MB)" msgstr "" -#: plugins/check_disk.c:960 +#: plugins/check_disk.c:902 msgid "Ignore all filesystems of indicated type (may be repeated)" msgstr "" -#: plugins/check_disk.c:965 +#: plugins/check_disk.c:907 msgid "Checks /tmp and /var at 10% and 5%, and / at 100MB and 50MB" msgstr "" -#: plugins/check_disk.c:967 +#: plugins/check_disk.c:909 msgid "" "Checks all filesystems not matching -r at 100M and 50M. The fs matching the -" "r regex" msgstr "" -#: plugins/check_disk.c:968 +#: plugins/check_disk.c:910 msgid "" "are grouped which means the freespace thresholds are applied to all disks " "together" msgstr "" -#: plugins/check_disk.c:970 +#: plugins/check_disk.c:912 msgid "" "Checks /foo for 1000M/500M and /bar for 5/3%. All remaining volumes use " "100M/50M" msgstr "" -#: plugins/check_disk.c:996 +#: plugins/check_disk.c:938 #, c-format msgid "%s %s: %s\n" msgstr "" -#: plugins/check_disk.c:996 +#: plugins/check_disk.c:938 msgid "is not accessible" msgstr "" @@ -789,14 +793,14 @@ msgstr "" msgid "of the argument with optional text" msgstr "" -#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:437 -#: plugins/check_swap.c:175 plugins/check_users.c:73 plugins/urlize.c:110 +#: plugins/check_fping.c:108 plugins/check_hpjd.c:128 plugins/check_ping.c:438 +#: plugins/check_swap.c:175 plugins/urlize.c:110 #, c-format msgid "Could not open pipe: %s\n" msgstr "" #: plugins/check_fping.c:114 plugins/check_hpjd.c:134 plugins/check_load.c:153 -#: plugins/check_swap.c:181 plugins/check_users.c:79 plugins/urlize.c:116 +#: plugins/check_swap.c:181 plugins/urlize.c:116 #, c-format msgid "Could not open stderr for %s\n" msgstr "" @@ -831,7 +835,7 @@ msgstr "" #: plugins/check_ntp_peer.c:491 plugins/check_ntp_time.c:492 #: plugins/check_pgsql.c:268 plugins/check_ping.c:295 plugins/check_ping.c:418 #: plugins/check_radius.c:264 plugins/check_real.c:314 -#: plugins/check_real.c:376 plugins/check_smtp.c:507 plugins/check_smtp.c:633 +#: plugins/check_real.c:376 plugins/check_smtp.c:509 plugins/check_smtp.c:638 #: plugins/check_ssh.c:157 plugins/check_time.c:240 plugins/check_time.c:315 #: plugins/check_ups.c:504 plugins/check_ups.c:573 msgid "Invalid hostname/address" @@ -885,11 +889,11 @@ msgid "" "reducing system load)" msgstr "" -#: plugins/check_fping.c:408 plugins/check_ping.c:573 +#: plugins/check_fping.c:408 plugins/check_ping.c:575 msgid "warning threshold pair" msgstr "" -#: plugins/check_fping.c:410 plugins/check_ping.c:575 +#: plugins/check_fping.c:410 plugins/check_ping.c:577 msgid "critical threshold pair" msgstr "" @@ -1049,443 +1053,458 @@ msgstr "" msgid "(default=%s)" msgstr "" -#: plugins/check_http.c:262 -msgid "Critical threshold must be integer" -msgstr "" - -#: plugins/check_http.c:270 -msgid "Warning threshold must be integer" -msgstr "" - -#: plugins/check_http.c:296 plugins/check_tcp.c:559 +#: plugins/check_http.c:286 plugins/check_tcp.c:556 msgid "Invalid certificate expiration period" msgstr "" -#: plugins/check_http.c:305 plugins/check_tcp.c:571 +#: plugins/check_http.c:295 plugins/check_tcp.c:568 msgid "Invalid option - SSL is not available" msgstr "" -#: plugins/check_http.c:329 +#: plugins/check_http.c:303 +msgid "" +"Invalid option - Valid values for SSL Version are 1 (TLSv1), 2 (SSLv2) or 3 " +"(SSLv3)" +msgstr "" + +#: plugins/check_http.c:326 msgid "Invalid onredirect option" msgstr "" -#: plugins/check_http.c:331 +#: plugins/check_http.c:328 #, c-format msgid "option f:%d \n" msgstr "" -#: plugins/check_http.c:352 +#: plugins/check_http.c:349 msgid "Invalid port number" msgstr "" -#: plugins/check_http.c:400 +#: plugins/check_http.c:397 #, c-format msgid "Could Not Compile Regular Expression: %s" msgstr "" -#: plugins/check_http.c:414 plugins/check_ntp.c:718 +#: plugins/check_http.c:411 plugins/check_ntp.c:718 #: plugins/check_ntp_peer.c:507 plugins/check_ntp_time.c:508 -#: plugins/check_smtp.c:613 plugins/check_ssh.c:149 plugins/check_tcp.c:463 +#: plugins/check_smtp.c:618 plugins/check_ssh.c:149 plugins/check_tcp.c:460 msgid "IPv6 support not available" msgstr "" -#: plugins/check_http.c:476 plugins/check_ping.c:422 +#: plugins/check_http.c:473 plugins/check_ping.c:422 msgid "You must specify a server address or host name" msgstr "" -#: plugins/check_http.c:609 plugins/check_http.c:777 +#: plugins/check_http.c:608 plugins/check_http.c:776 msgid "HTTP UNKNOWN - Memory allocation error\n" msgstr "" -#: plugins/check_http.c:681 +#: plugins/check_http.c:680 #, c-format msgid "%sServer date unknown, " msgstr "" -#: plugins/check_http.c:684 +#: plugins/check_http.c:683 #, c-format msgid "%sDocument modification date unknown, " msgstr "" -#: plugins/check_http.c:691 +#: plugins/check_http.c:690 #, c-format msgid "%sServer date \"%100s\" unparsable, " msgstr "" -#: plugins/check_http.c:694 +#: plugins/check_http.c:693 #, c-format msgid "%sDocument date \"%100s\" unparsable, " msgstr "" -#: plugins/check_http.c:697 +#: plugins/check_http.c:696 #, c-format msgid "%sDocument is %d seconds in the future, " msgstr "" -#: plugins/check_http.c:702 +#: plugins/check_http.c:701 #, c-format msgid "%sLast modified %.1f days ago, " msgstr "" -#: plugins/check_http.c:705 +#: plugins/check_http.c:704 #, c-format msgid "%sLast modified %d:%02d:%02d ago, " msgstr "" -#: plugins/check_http.c:807 +#: plugins/check_http.c:806 msgid "HTTP CRITICAL - Unable to open TCP socket\n" msgstr "" -#: plugins/check_http.c:910 +#: plugins/check_http.c:911 msgid "HTTP CRITICAL - Error on receive\n" msgstr "" -#: plugins/check_http.c:920 +#: plugins/check_http.c:921 msgid "HTTP CRITICAL - No data received from host\n" msgstr "" -#: plugins/check_http.c:971 +#: plugins/check_http.c:972 #, c-format msgid "Invalid HTTP response received from host: %s\n" msgstr "" -#: plugins/check_http.c:975 +#: plugins/check_http.c:976 #, c-format msgid "Invalid HTTP response received from host on port %d: %s\n" msgstr "" -#: plugins/check_http.c:984 +#: plugins/check_http.c:985 #, c-format msgid "Status line output matched \"%s\" - " msgstr "" -#: plugins/check_http.c:995 +#: plugins/check_http.c:996 #, c-format msgid "HTTP CRITICAL: Invalid Status Line (%s)\n" msgstr "" -#: plugins/check_http.c:1002 +#: plugins/check_http.c:1003 #, c-format msgid "HTTP CRITICAL: Invalid Status (%s)\n" msgstr "" -#: plugins/check_http.c:1006 plugins/check_http.c:1011 -#: plugins/check_http.c:1021 plugins/check_http.c:1025 +#: plugins/check_http.c:1007 plugins/check_http.c:1012 +#: plugins/check_http.c:1022 plugins/check_http.c:1026 #, c-format msgid "%s - " msgstr "" -#: plugins/check_http.c:1045 +#: plugins/check_http.c:1046 #, c-format msgid "%sstring '%s' not found on '%s://%s:%d%s', " msgstr "" -#: plugins/check_http.c:1058 +#: plugins/check_http.c:1059 #, c-format msgid "%spattern not found, " msgstr "" -#: plugins/check_http.c:1060 +#: plugins/check_http.c:1061 #, c-format msgid "%spattern found, " msgstr "" -#: plugins/check_http.c:1066 +#: plugins/check_http.c:1067 #, c-format msgid "%sExecute Error: %s, " msgstr "" -#: plugins/check_http.c:1082 +#: plugins/check_http.c:1083 #, c-format msgid "%spage size %d too large, " msgstr "" -#: plugins/check_http.c:1085 +#: plugins/check_http.c:1086 #, c-format msgid "%spage size %d too small, " msgstr "" -#: plugins/check_http.c:1097 +#: plugins/check_http.c:1098 #, c-format msgid "%s - %d bytes in %.3f second response time %s|%s %s" msgstr "" -#: plugins/check_http.c:1137 +#: plugins/check_http.c:1135 msgid "HTTP UNKNOWN - Could not allocate addr\n" msgstr "" -#: plugins/check_http.c:1141 plugins/check_http.c:1172 +#: plugins/check_http.c:1139 plugins/check_http.c:1170 msgid "HTTP UNKNOWN - Could not allocate URL\n" msgstr "" -#: plugins/check_http.c:1150 +#: plugins/check_http.c:1148 #, c-format msgid "HTTP UNKNOWN - Could not find redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1165 +#: plugins/check_http.c:1163 #, c-format msgid "HTTP UNKNOWN - Empty redirect location%s\n" msgstr "" -#: plugins/check_http.c:1215 +#: plugins/check_http.c:1213 #, c-format msgid "HTTP UNKNOWN - Could not parse redirect location - %s%s\n" msgstr "" -#: plugins/check_http.c:1225 +#: plugins/check_http.c:1223 #, c-format msgid "HTTP WARNING - maximum redirection depth %d exceeded - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1233 +#: plugins/check_http.c:1231 #, c-format msgid "HTTP WARNING - redirection creates an infinite loop - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1254 +#: plugins/check_http.c:1252 #, c-format msgid "HTTP UNKNOWN - Redirection to port above %d - %s://%s:%d%s%s\n" msgstr "" -#: plugins/check_http.c:1259 +#: plugins/check_http.c:1257 #, c-format msgid "Redirection to %s://%s:%d%s\n" msgstr "" -#: plugins/check_http.c:1310 +#: plugins/check_http.c:1308 msgid "This plugin tests the HTTP service on the specified host. It can test" msgstr "" -#: plugins/check_http.c:1311 +#: plugins/check_http.c:1309 msgid "normal (http) and secure (https) servers, follow redirects, search for" msgstr "" -#: plugins/check_http.c:1312 +#: plugins/check_http.c:1310 msgid "strings and regular expressions, check connection times, and report on" msgstr "" -#: plugins/check_http.c:1313 +#: plugins/check_http.c:1311 msgid "certificate expiration times." msgstr "" -#: plugins/check_http.c:1319 +#: plugins/check_http.c:1317 #, c-format msgid "NOTE: One or both of -H and -I must be specified" msgstr "" -#: plugins/check_http.c:1327 +#: plugins/check_http.c:1325 msgid "Host name argument for servers using host headers (virtual host)" msgstr "" -#: plugins/check_http.c:1328 +#: plugins/check_http.c:1326 msgid "Append a port to include it in the header (eg: example.com:5000)" msgstr "" -#: plugins/check_http.c:1330 +#: plugins/check_http.c:1328 msgid "" "IP address or name (use numeric address if possible to bypass DNS lookup)." msgstr "" -#: plugins/check_http.c:1332 +#: plugins/check_http.c:1330 msgid "Port number (default: " msgstr "" -#: plugins/check_http.c:1339 -msgid "Connect via SSL. Port defaults to 443" +#: plugins/check_http.c:1337 +msgid "" +"Connect via SSL. Port defaults to 443. VERSION is optional, and prevents" msgstr "" -#: plugins/check_http.c:1341 +#: plugins/check_http.c:1338 +msgid "auto-negotiation (1 = TLSv1, 2 = SSLv2, 3 = SSLv3)." +msgstr "" + +#: plugins/check_http.c:1340 msgid "Enable SSL/TLS hostname extension support (SNI)" msgstr "" -#: plugins/check_http.c:1343 +#: plugins/check_http.c:1342 msgid "" "Minimum number of days a certificate has to be valid. Port defaults to 443" msgstr "" -#: plugins/check_http.c:1344 +#: plugins/check_http.c:1343 msgid "(when this option is used the URL is not checked.)\n" msgstr "" -#: plugins/check_http.c:1348 +#: plugins/check_http.c:1347 msgid "Comma-delimited list of strings, at least one of them is expected in" msgstr "" -#: plugins/check_http.c:1349 +#: plugins/check_http.c:1348 msgid "the first (status) line of the server response (default: " msgstr "" -#: plugins/check_http.c:1351 +#: plugins/check_http.c:1350 msgid "" "If specified skips all other status line logic (ex: 3xx, 4xx, 5xx processing)" msgstr "" -#: plugins/check_http.c:1353 +#: plugins/check_http.c:1352 msgid "String to expect in the content" msgstr "" -#: plugins/check_http.c:1355 +#: plugins/check_http.c:1354 msgid "URL to GET or POST (default: /)" msgstr "" -#: plugins/check_http.c:1357 +#: plugins/check_http.c:1356 msgid "URL encoded http POST data" msgstr "" -#: plugins/check_http.c:1359 +#: plugins/check_http.c:1358 msgid "Set HTTP method." msgstr "" -#: plugins/check_http.c:1361 +#: plugins/check_http.c:1360 msgid "Don't wait for document body: stop reading after headers." msgstr "" -#: plugins/check_http.c:1362 +#: plugins/check_http.c:1361 msgid "(Note that this still does an HTTP GET or POST, not a HEAD.)" msgstr "" -#: plugins/check_http.c:1364 +#: plugins/check_http.c:1363 msgid "Warn if document is more than SECONDS old. the number can also be of" msgstr "" -#: plugins/check_http.c:1365 +#: plugins/check_http.c:1364 msgid "the form \"10m\" for minutes, \"10h\" for hours, or \"10d\" for days." msgstr "" -#: plugins/check_http.c:1367 +#: plugins/check_http.c:1366 msgid "specify Content-Type header media type when POSTing\n" msgstr "" -#: plugins/check_http.c:1370 +#: plugins/check_http.c:1369 msgid "Allow regex to span newlines (must precede -r or -R)" msgstr "" -#: plugins/check_http.c:1372 +#: plugins/check_http.c:1371 msgid "Search page for regex STRING" msgstr "" -#: plugins/check_http.c:1374 +#: plugins/check_http.c:1373 msgid "Search page for case-insensitive regex STRING" msgstr "" -#: plugins/check_http.c:1376 +#: plugins/check_http.c:1375 msgid "Return CRITICAL if found, OK if not\n" msgstr "" -#: plugins/check_http.c:1379 +#: plugins/check_http.c:1378 msgid "Username:password on sites with basic authentication" msgstr "" -#: plugins/check_http.c:1381 +#: plugins/check_http.c:1380 msgid "Username:password on proxy-servers with basic authentication" msgstr "" -#: plugins/check_http.c:1383 +#: plugins/check_http.c:1382 msgid "String to be sent in http header as \"User Agent\"" msgstr "" -#: plugins/check_http.c:1385 +#: plugins/check_http.c:1384 msgid "" -" Any other tags to be sent in http header. Use multiple times for additional " +"Any other tags to be sent in http header. Use multiple times for additional " "headers" msgstr "" -#: plugins/check_http.c:1387 +#: plugins/check_http.c:1386 msgid "Wrap output in HTML link (obsoleted by urlize)" msgstr "" -#: plugins/check_http.c:1389 +#: plugins/check_http.c:1388 msgid "How to handle redirected pages. sticky is like follow but stick to the" msgstr "" -#: plugins/check_http.c:1390 -msgid "specified IP address. stickyport also ensure post stays the same." +#: plugins/check_http.c:1389 +msgid "specified IP address. stickyport also ensures port stays the same." msgstr "" -#: plugins/check_http.c:1392 +#: plugins/check_http.c:1391 msgid "Minimum page size required (bytes) : Maximum page size required (bytes)" msgstr "" -#: plugins/check_http.c:1402 +#: plugins/check_http.c:1401 msgid "This plugin will attempt to open an HTTP connection with the host." msgstr "" -#: plugins/check_http.c:1403 +#: plugins/check_http.c:1402 msgid "" "Successful connects return STATE_OK, refusals and timeouts return " "STATE_CRITICAL" msgstr "" -#: plugins/check_http.c:1404 +#: plugins/check_http.c:1403 msgid "" "other errors return STATE_UNKNOWN. Successful connects, but incorrect " "reponse" msgstr "" -#: plugins/check_http.c:1405 +#: plugins/check_http.c:1404 msgid "" "messages from the host result in STATE_WARNING return values. If you are" msgstr "" -#: plugins/check_http.c:1406 +#: plugins/check_http.c:1405 msgid "" "checking a virtual server that uses 'host headers' you must supply the FQDN" msgstr "" -#: plugins/check_http.c:1407 +#: plugins/check_http.c:1406 msgid "(fully qualified domain name) as the [host_name] argument." msgstr "" -#: plugins/check_http.c:1411 +#: plugins/check_http.c:1410 msgid "This plugin can also check whether an SSL enabled web server is able to" msgstr "" -#: plugins/check_http.c:1412 +#: plugins/check_http.c:1411 msgid "serve content (optionally within a specified time) or whether the X509 " msgstr "" -#: plugins/check_http.c:1413 +#: plugins/check_http.c:1412 msgid "certificate is still valid for the specified number of days." msgstr "" -#: plugins/check_http.c:1417 +#: plugins/check_http.c:1414 +msgid "Please note that this plugin does not check if the presented server" +msgstr "" + +#: plugins/check_http.c:1415 +msgid "certificate matches the hostname of the server, or if the certificate" +msgstr "" + +#: plugins/check_http.c:1416 +msgid "has a valid chain of trust to one of the locally installed CAs." +msgstr "" + +#: plugins/check_http.c:1420 msgid "" "When the 'www.verisign.com' server returns its content within 5 seconds," msgstr "" -#: plugins/check_http.c:1418 +#: plugins/check_http.c:1421 msgid "" "a STATE_OK will be returned. When the server returns its content but exceeds" msgstr "" -#: plugins/check_http.c:1419 +#: plugins/check_http.c:1422 msgid "" "the 5-second threshold, a STATE_WARNING will be returned. When an error " "occurs," msgstr "" -#: plugins/check_http.c:1420 +#: plugins/check_http.c:1423 msgid "a STATE_CRITICAL will be returned." msgstr "" -#: plugins/check_http.c:1423 +#: plugins/check_http.c:1426 msgid "" "When the certificate of 'www.verisign.com' is valid for more than 14 days," msgstr "" -#: plugins/check_http.c:1424 +#: plugins/check_http.c:1427 msgid "" "a STATE_OK is returned. When the certificate is still valid, but for less " "than" msgstr "" -#: plugins/check_http.c:1425 +#: plugins/check_http.c:1428 msgid "" "14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when" msgstr "" -#: plugins/check_http.c:1426 +#: plugins/check_http.c:1429 msgid "the certificate is expired." msgstr "" @@ -1534,81 +1553,81 @@ msgstr "" msgid "LDAP %s - %.3f seconds response time|%s\n" msgstr "" -#: plugins/check_ldap.c:339 plugins/check_ldap.c:346 +#: plugins/check_ldap.c:339 plugins/check_ldap.c:347 #, c-format msgid "%s cannot be combined with %s" msgstr "" -#: plugins/check_ldap.c:352 plugins/check_ping.c:246 +#: plugins/check_ldap.c:353 plugins/check_ping.c:246 msgid "IPv6 support not available\n" msgstr "" -#: plugins/check_ldap.c:375 +#: plugins/check_ldap.c:379 msgid "Please specify the host name\n" msgstr "" -#: plugins/check_ldap.c:378 +#: plugins/check_ldap.c:382 msgid "Please specify the LDAP base\n" msgstr "" -#: plugins/check_ldap.c:407 +#: plugins/check_ldap.c:411 msgid "ldap attribute to search (default: \"(objectclass=*)\"" msgstr "" -#: plugins/check_ldap.c:409 +#: plugins/check_ldap.c:413 msgid "ldap base (eg. ou=my unit, o=my org, c=at" msgstr "" -#: plugins/check_ldap.c:411 +#: plugins/check_ldap.c:415 msgid "ldap bind DN (if required)" msgstr "" -#: plugins/check_ldap.c:413 +#: plugins/check_ldap.c:417 msgid "ldap password (if required)" msgstr "" -#: plugins/check_ldap.c:415 +#: plugins/check_ldap.c:419 msgid "use starttls mechanism introduced in protocol version 3" msgstr "" -#: plugins/check_ldap.c:417 +#: plugins/check_ldap.c:421 msgid "use ldaps (ldap v2 ssl method). this also sets the default port to" msgstr "" -#: plugins/check_ldap.c:421 +#: plugins/check_ldap.c:425 msgid "use ldap protocol version 2" msgstr "" -#: plugins/check_ldap.c:423 +#: plugins/check_ldap.c:427 msgid "use ldap protocol version 3" msgstr "" -#: plugins/check_ldap.c:424 +#: plugins/check_ldap.c:428 msgid "default protocol version:" msgstr "" -#: plugins/check_ldap.c:435 +#: plugins/check_ldap.c:439 msgid "If this plugin is called via 'check_ldaps', method 'STARTTLS' will be" msgstr "" -#: plugins/check_ldap.c:436 +#: plugins/check_ldap.c:440 #, c-format msgid "" " implied (using default port %i) unless --port=636 is specified. In that " "case\n" msgstr "" -#: plugins/check_ldap.c:437 +#: plugins/check_ldap.c:441 msgid "'SSL on connect' will be used no matter how the plugin was called." msgstr "" -#: plugins/check_ldap.c:438 +#: plugins/check_ldap.c:442 msgid "" "This detection is deprecated, please use 'check_ldap' with the '--starttls' " "or '--ssl' flags" msgstr "" -#: plugins/check_ldap.c:439 +#: plugins/check_ldap.c:443 msgid "to define the behaviour explicitly instead." msgstr "" @@ -2105,7 +2124,7 @@ msgstr "" msgid "Wrong client version - running: %s, required: %s" msgstr "" -#: plugins/check_nt.c:152 plugins/check_nt.c:212 +#: plugins/check_nt.c:152 plugins/check_nt.c:217 msgid "missing -l parameters" msgstr "" @@ -2136,318 +2155,318 @@ msgstr "" msgid "System Uptime - %u day(s) %u hour(s) %u minute(s)" msgstr "" -#: plugins/check_nt.c:214 +#: plugins/check_nt.c:219 msgid "wrong -l argument" msgstr "" -#: plugins/check_nt.c:230 +#: plugins/check_nt.c:235 #, c-format msgid "%s:\\ - total: %.2f Gb - used: %.2f Gb (%.0f%%) - free %.2f Gb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:233 +#: plugins/check_nt.c:238 #, c-format msgid "'%s:\\ Used Space'=%.2fGb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:247 +#: plugins/check_nt.c:252 msgid "Free disk space : Invalid drive" msgstr "" -#: plugins/check_nt.c:257 +#: plugins/check_nt.c:262 msgid "No service/process specified" msgstr "" -#: plugins/check_nt.c:281 +#: plugins/check_nt.c:286 #, c-format msgid "" "Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)" msgstr "" -#: plugins/check_nt.c:284 +#: plugins/check_nt.c:289 #, c-format msgid "'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f" msgstr "" -#: plugins/check_nt.c:320 plugins/check_nt.c:405 plugins/check_nt.c:435 +#: plugins/check_nt.c:325 plugins/check_nt.c:410 plugins/check_nt.c:440 msgid "No counter specified" msgstr "" -#: plugins/check_nt.c:352 +#: plugins/check_nt.c:357 msgid "Minimum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:356 +#: plugins/check_nt.c:361 msgid "Maximum value contains non-numbers" msgstr "" -#: plugins/check_nt.c:363 +#: plugins/check_nt.c:368 msgid "No unit counter specified" msgstr "" -#: plugins/check_nt.c:450 +#: plugins/check_nt.c:455 msgid "Please specify a variable to check" msgstr "" -#: plugins/check_nt.c:534 +#: plugins/check_nt.c:539 msgid "Server port must be an integer\n" msgstr "" -#: plugins/check_nt.c:588 +#: plugins/check_nt.c:593 msgid "You must provide a server address or host name" msgstr "" -#: plugins/check_nt.c:594 +#: plugins/check_nt.c:599 msgid "None" msgstr "" -#: plugins/check_nt.c:607 +#: plugins/check_nt.c:612 msgid "could not fetch information from server\n" msgstr "" -#: plugins/check_nt.c:651 +#: plugins/check_nt.c:656 msgid "This plugin collects data from the NSClient service running on a" msgstr "" -#: plugins/check_nt.c:652 +#: plugins/check_nt.c:657 msgid "Windows NT/2000/XP/2003 server." msgstr "" -#: plugins/check_nt.c:663 +#: plugins/check_nt.c:668 msgid "Name of the host to check" msgstr "" -#: plugins/check_nt.c:665 +#: plugins/check_nt.c:670 msgid "Optional port number (default: " msgstr "" -#: plugins/check_nt.c:668 +#: plugins/check_nt.c:673 msgid "Password needed for the request" msgstr "" -#: plugins/check_nt.c:670 plugins/check_nwstat.c:1661 +#: plugins/check_nt.c:675 plugins/check_nwstat.c:1661 #: plugins/check_overcr.c:432 msgid "Threshold which will result in a warning status" msgstr "" -#: plugins/check_nt.c:672 plugins/check_nwstat.c:1663 +#: plugins/check_nt.c:677 plugins/check_nwstat.c:1663 #: plugins/check_overcr.c:434 msgid "Threshold which will result in a critical status" msgstr "" -#: plugins/check_nt.c:674 +#: plugins/check_nt.c:679 msgid "Seconds before connection attempt times out (default: " msgstr "" -#: plugins/check_nt.c:676 +#: plugins/check_nt.c:681 msgid "Parameters passed to specified check (see below)" msgstr "" -#: plugins/check_nt.c:678 +#: plugins/check_nt.c:683 msgid "Display options (currently only SHOWALL works)" msgstr "" -#: plugins/check_nt.c:680 +#: plugins/check_nt.c:685 msgid "Return UNKNOWN on timeouts" msgstr "" -#: plugins/check_nt.c:683 +#: plugins/check_nt.c:688 msgid "Print this help screen" msgstr "" -#: plugins/check_nt.c:685 +#: plugins/check_nt.c:690 msgid "Print version information" msgstr "" -#: plugins/check_nt.c:687 +#: plugins/check_nt.c:692 msgid "Variable to check" msgstr "" -#: plugins/check_nt.c:688 +#: plugins/check_nt.c:693 msgid "Valid variables are:" msgstr "" -#: plugins/check_nt.c:690 +#: plugins/check_nt.c:695 msgid "Get the NSClient version" msgstr "" -#: plugins/check_nt.c:691 +#: plugins/check_nt.c:696 msgid "If -l is specified, will return warning if versions differ." msgstr "" -#: plugins/check_nt.c:693 +#: plugins/check_nt.c:698 msgid "Average CPU load on last x minutes." msgstr "" -#: plugins/check_nt.c:694 +#: plugins/check_nt.c:699 msgid "Request a -l parameter with the following syntax:" msgstr "" -#: plugins/check_nt.c:695 +#: plugins/check_nt.c:700 msgid "-l ,,." msgstr "" -#: plugins/check_nt.c:696 +#: plugins/check_nt.c:701 msgid " should be less than 24*60." msgstr "" -#: plugins/check_nt.c:697 +#: plugins/check_nt.c:702 msgid "" "Thresholds are percentage and up to 10 requests can be done in one shot." msgstr "" -#: plugins/check_nt.c:700 +#: plugins/check_nt.c:705 msgid "Get the uptime of the machine." msgstr "" -#: plugins/check_nt.c:701 +#: plugins/check_nt.c:706 msgid "No specific parameters. No warning or critical threshold" msgstr "" -#: plugins/check_nt.c:703 +#: plugins/check_nt.c:708 msgid "Size and percentage of disk use." msgstr "" -#: plugins/check_nt.c:704 +#: plugins/check_nt.c:709 msgid "Request a -l parameter containing the drive letter only." msgstr "" -#: plugins/check_nt.c:705 plugins/check_nt.c:708 +#: plugins/check_nt.c:710 plugins/check_nt.c:713 msgid "Warning and critical thresholds can be specified with -w and -c." msgstr "" -#: plugins/check_nt.c:707 +#: plugins/check_nt.c:712 msgid "Memory use." msgstr "" -#: plugins/check_nt.c:710 +#: plugins/check_nt.c:715 msgid "Check the state of one or several services." msgstr "" -#: plugins/check_nt.c:711 plugins/check_nt.c:720 +#: plugins/check_nt.c:716 plugins/check_nt.c:725 msgid "Request a -l parameters with the following syntax:" msgstr "" -#: plugins/check_nt.c:712 +#: plugins/check_nt.c:717 msgid "-l ,,,..." msgstr "" -#: plugins/check_nt.c:713 +#: plugins/check_nt.c:718 msgid "You can specify -d SHOWALL in case you want to see working services" msgstr "" -#: plugins/check_nt.c:714 +#: plugins/check_nt.c:719 msgid "in the returned string." msgstr "" -#: plugins/check_nt.c:716 +#: plugins/check_nt.c:721 msgid "Check if one or several process are running." msgstr "" -#: plugins/check_nt.c:717 +#: plugins/check_nt.c:722 msgid "Same syntax as SERVICESTATE." msgstr "" -#: plugins/check_nt.c:719 +#: plugins/check_nt.c:724 msgid "Check any performance counter of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:721 +#: plugins/check_nt.c:726 msgid "-l \"\\\\\\\\counter\",\"" msgstr "" -#: plugins/check_nt.c:722 +#: plugins/check_nt.c:727 msgid "The parameter is optional and is given to a printf " msgstr "" -#: plugins/check_nt.c:723 +#: plugins/check_nt.c:728 msgid "output command which requires a float parameter." msgstr "" -#: plugins/check_nt.c:724 +#: plugins/check_nt.c:729 #, c-format msgid "If does not include \"%%\", it is used as a label." msgstr "" -#: plugins/check_nt.c:725 plugins/check_nt.c:740 +#: plugins/check_nt.c:730 plugins/check_nt.c:745 msgid "Some examples:" msgstr "" -#: plugins/check_nt.c:729 +#: plugins/check_nt.c:734 msgid "Check any performance counter object of Windows NT/2000." msgstr "" -#: plugins/check_nt.c:730 +#: plugins/check_nt.c:735 msgid "" "Syntax: check_nt -H -p -v INSTANCES -l " msgstr "" -#: plugins/check_nt.c:731 +#: plugins/check_nt.c:736 msgid " is a Windows Perfmon Counter object (eg. Process)," msgstr "" -#: plugins/check_nt.c:732 +#: plugins/check_nt.c:737 msgid "if it is two words, it should be enclosed in quotes" msgstr "" -#: plugins/check_nt.c:733 +#: plugins/check_nt.c:738 msgid "The returned results will be a comma-separated list of instances on " msgstr "" -#: plugins/check_nt.c:734 +#: plugins/check_nt.c:739 msgid " the selected computer for that object." msgstr "" -#: plugins/check_nt.c:735 +#: plugins/check_nt.c:740 msgid "" "The purpose of this is to be run from command line to determine what " "instances" msgstr "" -#: plugins/check_nt.c:736 +#: plugins/check_nt.c:741 msgid "" " are available for monitoring without having to log onto the Windows server" msgstr "" -#: plugins/check_nt.c:737 +#: plugins/check_nt.c:742 msgid " to run Perfmon directly." msgstr "" -#: plugins/check_nt.c:738 +#: plugins/check_nt.c:743 msgid "It can also be used in scripts that automatically create Nagios service" msgstr "" -#: plugins/check_nt.c:739 +#: plugins/check_nt.c:744 msgid " configuration files." msgstr "" -#: plugins/check_nt.c:741 +#: plugins/check_nt.c:746 msgid "check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process" msgstr "" -#: plugins/check_nt.c:744 +#: plugins/check_nt.c:749 msgid "" "- The NSClient service should be running on the server to get any information" msgstr "" -#: plugins/check_nt.c:746 +#: plugins/check_nt.c:751 msgid "- Critical thresholds should be lower than warning thresholds" msgstr "" -#: plugins/check_nt.c:747 +#: plugins/check_nt.c:752 msgid "- Default port 1248 is sometimes in use by other services. The error" msgstr "" -#: plugins/check_nt.c:748 +#: plugins/check_nt.c:753 msgid "" "output when this happens contains \"Cannot map xxxxx to protocol number\"." msgstr "" -#: plugins/check_nt.c:749 +#: plugins/check_nt.c:754 msgid "One fix for this is to change the port to something else on check_nt " msgstr "" -#: plugins/check_nt.c:750 +#: plugins/check_nt.c:755 msgid "and on the client service it's connecting to." msgstr "" @@ -3203,13 +3222,13 @@ msgid " %s - database %s (%d sec.)|%s\n" msgstr "" #: plugins/check_pgsql.c:256 plugins/check_time.c:277 plugins/check_time.c:289 -#: plugins/check_users.c:166 +#: plugins/check_users.c:138 msgid "Critical threshold must be a positive integer" msgstr "" #: plugins/check_pgsql.c:262 plugins/check_time.c:258 plugins/check_time.c:282 -#: plugins/check_users.c:172 plugins/check_users.c:182 -#: plugins/check_users.c:189 +#: plugins/check_users.c:144 plugins/check_users.c:154 +#: plugins/check_users.c:160 msgid "Warning threshold must be a positive integer" msgstr "" @@ -3378,115 +3397,115 @@ msgstr "" msgid " (%d) cannot be larger than (%d)\n" msgstr "" -#: plugins/check_ping.c:441 +#: plugins/check_ping.c:442 #, c-format msgid "Cannot open stderr for %s\n" msgstr "" -#: plugins/check_ping.c:490 plugins/check_ping.c:492 +#: plugins/check_ping.c:492 plugins/check_ping.c:494 msgid "System call sent warnings to stderr " msgstr "" -#: plugins/check_ping.c:519 -#, c-format -msgid "CRITICAL - Network Unreachable (%s)" -msgstr "" - #: plugins/check_ping.c:521 #, c-format -msgid "CRITICAL - Host Unreachable (%s)" +msgid "CRITICAL - Network Unreachable (%s)" msgstr "" #: plugins/check_ping.c:523 #, c-format -msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" +msgid "CRITICAL - Host Unreachable (%s)" msgstr "" #: plugins/check_ping.c:525 #, c-format -msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" +msgid "CRITICAL - Bogus ICMP: Port Unreachable (%s)" msgstr "" #: plugins/check_ping.c:527 #, c-format -msgid "CRITICAL - Network Prohibited (%s)" +msgid "CRITICAL - Bogus ICMP: Protocol Unreachable (%s)" msgstr "" #: plugins/check_ping.c:529 #, c-format -msgid "CRITICAL - Host Prohibited (%s)" +msgid "CRITICAL - Network Prohibited (%s)" msgstr "" #: plugins/check_ping.c:531 #, c-format -msgid "CRITICAL - Packet Filtered (%s)" +msgid "CRITICAL - Host Prohibited (%s)" msgstr "" #: plugins/check_ping.c:533 #, c-format -msgid "CRITICAL - Host not found (%s)" +msgid "CRITICAL - Packet Filtered (%s)" msgstr "" #: plugins/check_ping.c:535 #, c-format +msgid "CRITICAL - Host not found (%s)" +msgstr "" + +#: plugins/check_ping.c:537 +#, c-format msgid "CRITICAL - Time to live exceeded (%s)" msgstr "" -#: plugins/check_ping.c:542 +#: plugins/check_ping.c:544 msgid "Unable to realloc warn_text" msgstr "" -#: plugins/check_ping.c:559 +#: plugins/check_ping.c:561 #, c-format msgid "Use ping to check connection statistics for a remote host." msgstr "" -#: plugins/check_ping.c:571 +#: plugins/check_ping.c:573 msgid "host to ping" msgstr "" -#: plugins/check_ping.c:577 +#: plugins/check_ping.c:579 msgid "number of ICMP ECHO packets to send" msgstr "" -#: plugins/check_ping.c:578 +#: plugins/check_ping.c:580 #, c-format msgid "(Default: %d)\n" msgstr "" -#: plugins/check_ping.c:580 +#: plugins/check_ping.c:582 msgid "show HTML in the plugin output (obsoleted by urlize)" msgstr "" -#: plugins/check_ping.c:585 +#: plugins/check_ping.c:587 msgid "THRESHOLD is ,% where is the round trip average travel" msgstr "" -#: plugins/check_ping.c:586 +#: plugins/check_ping.c:588 msgid "time (ms) which triggers a WARNING or CRITICAL state, and is the" msgstr "" -#: plugins/check_ping.c:587 +#: plugins/check_ping.c:589 msgid "percentage of packet loss to trigger an alarm state." msgstr "" -#: plugins/check_ping.c:590 +#: plugins/check_ping.c:592 msgid "" "This plugin uses the ping command to probe the specified host for packet loss" msgstr "" -#: plugins/check_ping.c:591 +#: plugins/check_ping.c:593 msgid "" "(percentage) and round trip average (milliseconds). It can produce HTML " "output" msgstr "" -#: plugins/check_ping.c:592 +#: plugins/check_ping.c:594 msgid "" "linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in" msgstr "" -#: plugins/check_ping.c:593 +#: plugins/check_ping.c:595 msgid "the contrib area of the downloads section at http://www.nagios.org/" msgstr "" @@ -3524,160 +3543,160 @@ msgstr "" msgid " with %s" msgstr "" -#: plugins/check_procs.c:378 +#: plugins/check_procs.c:380 msgid "Critical Process Count must be an integer!" msgstr "" -#: plugins/check_procs.c:390 +#: plugins/check_procs.c:392 msgid "Warning Process Count must be an integer!" msgstr "" -#: plugins/check_procs.c:398 +#: plugins/check_procs.c:400 msgid "Parent Process ID must be an integer!" msgstr "" -#: plugins/check_procs.c:404 plugins/check_procs.c:518 +#: plugins/check_procs.c:406 plugins/check_procs.c:527 #, c-format msgid "%s%sSTATE = %s" msgstr "" -#: plugins/check_procs.c:413 +#: plugins/check_procs.c:415 msgid "UID was not found" msgstr "" -#: plugins/check_procs.c:419 +#: plugins/check_procs.c:421 msgid "User name was not found" msgstr "" -#: plugins/check_procs.c:434 +#: plugins/check_procs.c:436 #, c-format msgid "%s%scommand name '%s'" msgstr "" -#: plugins/check_procs.c:462 +#: plugins/check_procs.c:471 msgid "RSS must be an integer!" msgstr "" -#: plugins/check_procs.c:469 +#: plugins/check_procs.c:478 msgid "VSZ must be an integer!" msgstr "" -#: plugins/check_procs.c:477 +#: plugins/check_procs.c:486 msgid "PCPU must be a float!" msgstr "" -#: plugins/check_procs.c:501 +#: plugins/check_procs.c:510 msgid "Metric must be one of PROCS, VSZ, RSS, CPU, ELAPSED!" msgstr "" -#: plugins/check_procs.c:537 +#: plugins/check_procs.c:546 #, c-format msgid "wmax (%d) cannot be greater than cmax (%d)\n" msgstr "" -#: plugins/check_procs.c:541 +#: plugins/check_procs.c:550 #, c-format msgid "wmin (%d) cannot be less than cmin (%d)\n" msgstr "" -#: plugins/check_procs.c:678 +#: plugins/check_procs.c:687 msgid "" "Checks all processes and generates WARNING or CRITICAL states if the " "specified" msgstr "" -#: plugins/check_procs.c:679 +#: plugins/check_procs.c:688 msgid "" "metric is outside the required threshold ranges. The metric defaults to " "number" msgstr "" -#: plugins/check_procs.c:680 +#: plugins/check_procs.c:689 msgid "" "of processes. Search filters can be applied to limit the processes to check." msgstr "" -#: plugins/check_procs.c:689 +#: plugins/check_procs.c:698 msgid "Generate warning state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:691 +#: plugins/check_procs.c:700 msgid "Generate critical state if metric is outside this range" msgstr "" -#: plugins/check_procs.c:693 +#: plugins/check_procs.c:702 msgid "Check thresholds against metric. Valid types:" msgstr "" -#: plugins/check_procs.c:694 +#: plugins/check_procs.c:703 msgid "PROCS - number of processes (default)" msgstr "" -#: plugins/check_procs.c:695 +#: plugins/check_procs.c:704 msgid "VSZ - virtual memory size" msgstr "" -#: plugins/check_procs.c:696 +#: plugins/check_procs.c:705 msgid "RSS - resident set memory size" msgstr "" -#: plugins/check_procs.c:697 +#: plugins/check_procs.c:706 msgid "CPU - percentage CPU" msgstr "" -#: plugins/check_procs.c:700 +#: plugins/check_procs.c:709 msgid "ELAPSED - time elapsed in seconds" msgstr "" -#: plugins/check_procs.c:705 +#: plugins/check_procs.c:714 msgid "Extra information. Up to 3 verbosity levels" msgstr "" -#: plugins/check_procs.c:710 +#: plugins/check_procs.c:719 msgid "Only scan for processes that have, in the output of `ps`, one or" msgstr "" -#: plugins/check_procs.c:711 +#: plugins/check_procs.c:720 msgid "more of the status flags you specify (for example R, Z, S, RS," msgstr "" -#: plugins/check_procs.c:712 +#: plugins/check_procs.c:721 msgid "RSZDT, plus others based on the output of your 'ps' command)." msgstr "" -#: plugins/check_procs.c:714 +#: plugins/check_procs.c:723 msgid "Only scan for children of the parent process ID indicated." msgstr "" -#: plugins/check_procs.c:716 +#: plugins/check_procs.c:725 msgid "Only scan for processes with VSZ higher than indicated." msgstr "" -#: plugins/check_procs.c:718 +#: plugins/check_procs.c:727 msgid "Only scan for processes with RSS higher than indicated." msgstr "" -#: plugins/check_procs.c:720 +#: plugins/check_procs.c:729 msgid "Only scan for processes with PCPU higher than indicated." msgstr "" -#: plugins/check_procs.c:722 +#: plugins/check_procs.c:731 msgid "Only scan for processes with user name or ID indicated." msgstr "" -#: plugins/check_procs.c:724 +#: plugins/check_procs.c:733 msgid "Only scan for processes with args that contain STRING." msgstr "" -#: plugins/check_procs.c:726 +#: plugins/check_procs.c:735 msgid "Only scan for processes with args that contain the regex STRING." msgstr "" -#: plugins/check_procs.c:728 +#: plugins/check_procs.c:737 msgid "Only scan for exact matches of COMMAND (without path)." msgstr "" -#: plugins/check_procs.c:730 +#: plugins/check_procs.c:739 #, c-format msgid "" "\n" @@ -3687,7 +3706,7 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:735 +#: plugins/check_procs.c:744 #, c-format msgid "" "This plugin checks the number of currently running processes and\n" @@ -3698,27 +3717,27 @@ msgid "" "\n" msgstr "" -#: plugins/check_procs.c:744 +#: plugins/check_procs.c:753 msgid "Warning if not two processes with command name portsentry." msgstr "" -#: plugins/check_procs.c:745 +#: plugins/check_procs.c:754 msgid "Critical if < 2 or > 1024 processes" msgstr "" -#: plugins/check_procs.c:747 +#: plugins/check_procs.c:756 msgid "Warning alert if > 10 processes with command arguments containing" msgstr "" -#: plugins/check_procs.c:748 +#: plugins/check_procs.c:757 msgid "'/usr/local/bin/perl' and owned by root" msgstr "" -#: plugins/check_procs.c:750 +#: plugins/check_procs.c:759 msgid "Alert if VSZ of any processes over 50K or 100K" msgstr "" -#: plugins/check_procs.c:752 +#: plugins/check_procs.c:761 #, c-format msgid "Alert if CPU of any processes over 10%% or 20%%" msgstr "" @@ -3877,7 +3896,7 @@ msgstr "" msgid "Invalid REAL response received from host on port %d\n" msgstr "" -#: plugins/check_real.c:184 plugins/check_tcp.c:292 +#: plugins/check_real.c:184 plugins/check_tcp.c:289 #, c-format msgid "No data received from host\n" msgstr "" @@ -3887,11 +3906,11 @@ msgstr "" msgid "REAL %s - %d second response time\n" msgstr "" -#: plugins/check_real.c:336 plugins/check_smtp.c:576 plugins/check_ups.c:536 +#: plugins/check_real.c:336 plugins/check_smtp.c:578 plugins/check_ups.c:536 msgid "Warning time must be a positive integer" msgstr "" -#: plugins/check_real.c:345 plugins/check_smtp.c:567 plugins/check_ups.c:527 +#: plugins/check_real.c:345 plugins/check_smtp.c:569 plugins/check_ups.c:527 msgid "Critical time must be a positive integer" msgstr "" @@ -3916,7 +3935,7 @@ msgstr "" msgid "This plugin will attempt to open an RTSP connection with the host." msgstr "" -#: plugins/check_real.c:438 plugins/check_smtp.c:808 +#: plugins/check_real.c:438 plugins/check_smtp.c:827 msgid "Successul connects return STATE_OK, refusals and timeouts return" msgstr "" @@ -3934,498 +3953,502 @@ msgstr "" msgid "values." msgstr "" -#: plugins/check_smtp.c:146 plugins/check_swap.c:265 plugins/check_swap.c:271 +#: plugins/check_smtp.c:150 plugins/check_swap.c:265 plugins/check_swap.c:271 #, c-format msgid "malloc() failed!\n" msgstr "" -#: plugins/check_smtp.c:150 +#: plugins/check_smtp.c:154 #, c-format msgid "gethostname() failed!\n" msgstr "" -#: plugins/check_smtp.c:185 plugins/check_smtp.c:209 +#: plugins/check_smtp.c:189 plugins/check_smtp.c:213 #, c-format msgid "recv() failed\n" msgstr "" -#: plugins/check_smtp.c:196 +#: plugins/check_smtp.c:200 #, c-format msgid "Invalid SMTP response received from host: %s\n" msgstr "" -#: plugins/check_smtp.c:198 +#: plugins/check_smtp.c:202 #, c-format msgid "Invalid SMTP response received from host on port %d: %s\n" msgstr "" -#: plugins/check_smtp.c:219 +#: plugins/check_smtp.c:223 #, c-format msgid "WARNING - TLS not supported by server\n" msgstr "" -#: plugins/check_smtp.c:231 +#: plugins/check_smtp.c:235 #, c-format msgid "Server does not support STARTTLS\n" msgstr "" -#: plugins/check_smtp.c:237 +#: plugins/check_smtp.c:241 #, c-format msgid "CRITICAL - Cannot create SSL context.\n" msgstr "" -#: plugins/check_smtp.c:257 +#: plugins/check_smtp.c:261 msgid "SMTP UNKNOWN - Cannot send EHLO command via TLS." msgstr "" -#: plugins/check_smtp.c:262 +#: plugins/check_smtp.c:266 #, c-format msgid "sent %s" msgstr "" -#: plugins/check_smtp.c:264 +#: plugins/check_smtp.c:268 msgid "SMTP UNKNOWN - Cannot read EHLO response via TLS." msgstr "" -#: plugins/check_smtp.c:276 -msgid "CRITICAL - Cannot retrieve server certificate." -msgstr "" - -#: plugins/check_smtp.c:311 plugins/check_snmp.c:722 +#: plugins/check_smtp.c:312 plugins/check_snmp.c:718 #, c-format msgid "Could Not Compile Regular Expression" msgstr "" -#: plugins/check_smtp.c:320 +#: plugins/check_smtp.c:321 #, c-format msgid "SMTP %s - Invalid response '%s' to command '%s'\n" msgstr "" -#: plugins/check_smtp.c:324 plugins/check_snmp.c:453 +#: plugins/check_smtp.c:325 plugins/check_snmp.c:449 #, c-format msgid "Execute Error: %s\n" msgstr "" -#: plugins/check_smtp.c:338 +#: plugins/check_smtp.c:339 #, c-format msgid "no authuser specified, " msgstr "" -#: plugins/check_smtp.c:343 +#: plugins/check_smtp.c:344 #, c-format msgid "no authpass specified, " msgstr "" -#: plugins/check_smtp.c:350 plugins/check_smtp.c:372 plugins/check_smtp.c:393 -#: plugins/check_smtp.c:668 +#: plugins/check_smtp.c:351 plugins/check_smtp.c:373 plugins/check_smtp.c:394 +#: plugins/check_smtp.c:685 #, c-format msgid "sent %s\n" msgstr "" -#: plugins/check_smtp.c:353 +#: plugins/check_smtp.c:354 #, c-format msgid "recv() failed after AUTH LOGIN, " msgstr "" -#: plugins/check_smtp.c:358 plugins/check_smtp.c:380 plugins/check_smtp.c:401 -#: plugins/check_smtp.c:679 +#: plugins/check_smtp.c:359 plugins/check_smtp.c:381 plugins/check_smtp.c:402 +#: plugins/check_smtp.c:696 #, c-format msgid "received %s\n" msgstr "" -#: plugins/check_smtp.c:362 +#: plugins/check_smtp.c:363 #, c-format msgid "invalid response received after AUTH LOGIN, " msgstr "" -#: plugins/check_smtp.c:376 +#: plugins/check_smtp.c:377 #, c-format msgid "recv() failed after sending authuser, " msgstr "" -#: plugins/check_smtp.c:384 +#: plugins/check_smtp.c:385 #, c-format msgid "invalid response received after authuser, " msgstr "" -#: plugins/check_smtp.c:397 +#: plugins/check_smtp.c:398 #, c-format msgid "recv() failed after sending authpass, " msgstr "" -#: plugins/check_smtp.c:405 +#: plugins/check_smtp.c:406 #, c-format msgid "invalid response received after authpass, " msgstr "" -#: plugins/check_smtp.c:412 +#: plugins/check_smtp.c:413 #, c-format msgid "only authtype LOGIN is supported, " msgstr "" -#: plugins/check_smtp.c:436 +#: plugins/check_smtp.c:437 #, c-format msgid "SMTP %s - %s%.3f sec. response time%s%s|%s\n" msgstr "" -#: plugins/check_smtp.c:543 plugins/check_smtp.c:555 +#: plugins/check_smtp.c:545 plugins/check_smtp.c:557 #, c-format msgid "Could not realloc() units [%d]\n" msgstr "" -#: plugins/check_smtp.c:603 +#: plugins/check_smtp.c:608 msgid "SSL support not available - install OpenSSL and recompile" msgstr "" -#: plugins/check_smtp.c:674 +#: plugins/check_smtp.c:676 plugins/check_smtp.c:681 +#, c-format +msgid "Connection closed by server before sending QUIT command\n" +msgstr "" + +#: plugins/check_smtp.c:691 #, c-format msgid "recv() failed after QUIT." msgstr "" -#: plugins/check_smtp.c:676 +#: plugins/check_smtp.c:693 #, c-format msgid "Connection reset by peer." msgstr "" -#: plugins/check_smtp.c:764 +#: plugins/check_smtp.c:781 msgid "This plugin will attempt to open an SMTP connection with the host." msgstr "" -#: plugins/check_smtp.c:778 +#: plugins/check_smtp.c:795 #, c-format msgid " String to expect in first line of server response (default: '%s')\n" msgstr "" -#: plugins/check_smtp.c:780 +#: plugins/check_smtp.c:797 msgid "SMTP command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:782 +#: plugins/check_smtp.c:799 msgid "Expected response to command (may be used repeatedly)" msgstr "" -#: plugins/check_smtp.c:784 +#: plugins/check_smtp.c:801 msgid "FROM-address to include in MAIL command, required by Exchange 2000" msgstr "" -#: plugins/check_smtp.c:786 +#: plugins/check_smtp.c:803 msgid "FQDN used for HELO" msgstr "" -#: plugins/check_smtp.c:789 plugins/check_tcp.c:633 +#: plugins/check_smtp.c:806 plugins/check_tcp.c:630 msgid "Minimum number of days a certificate has to be valid." msgstr "" -#: plugins/check_smtp.c:791 +#: plugins/check_smtp.c:808 msgid "Use STARTTLS for the connection." msgstr "" -#: plugins/check_smtp.c:795 +#: plugins/check_smtp.c:812 msgid "SMTP AUTH type to check (default none, only LOGIN supported)" msgstr "" -#: plugins/check_smtp.c:797 +#: plugins/check_smtp.c:814 msgid "SMTP AUTH username" msgstr "" -#: plugins/check_smtp.c:799 +#: plugins/check_smtp.c:816 msgid "SMTP AUTH password" msgstr "" -#: plugins/check_smtp.c:809 +#: plugins/check_smtp.c:818 +msgid "Ignore failure when sending QUIT command to server" +msgstr "" + +#: plugins/check_smtp.c:828 msgid "STATE_CRITICAL, other errors return STATE_UNKNOWN. Successful" msgstr "" -#: plugins/check_smtp.c:810 +#: plugins/check_smtp.c:829 msgid "connects, but incorrect reponse messages from the host result in" msgstr "" -#: plugins/check_smtp.c:811 +#: plugins/check_smtp.c:830 msgid "STATE_WARNING return values." msgstr "" -#: plugins/check_snmp.c:299 +#: plugins/check_snmp.c:298 #, c-format msgid "External command error: %s\n" msgstr "" -#: plugins/check_snmp.c:304 +#: plugins/check_snmp.c:303 #, c-format msgid "External command error with no output (return code: %d)\n" msgstr "" -#: plugins/check_snmp.c:410 +#: plugins/check_snmp.c:406 msgid "No valid data returned" msgstr "" -#: plugins/check_snmp.c:417 +#: plugins/check_snmp.c:413 msgid "Time duration between plugin calls is invalid" msgstr "" -#: plugins/check_snmp.c:513 +#: plugins/check_snmp.c:509 msgid "Cannot malloc" msgstr "" -#: plugins/check_snmp.c:519 +#: plugins/check_snmp.c:515 msgid "Cannot asprintf()" msgstr "" -#: plugins/check_snmp.c:525 +#: plugins/check_snmp.c:521 msgid "Cannot realloc()" msgstr "" -#: plugins/check_snmp.c:541 +#: plugins/check_snmp.c:537 msgid "No previous data to calculate rate - assume okay" msgstr "" -#: plugins/check_snmp.c:680 +#: plugins/check_snmp.c:676 msgid "Retries interval must be a positive integer" msgstr "" -#: plugins/check_snmp.c:742 +#: plugins/check_snmp.c:738 #, c-format msgid "Could not reallocate labels[%d]" msgstr "" -#: plugins/check_snmp.c:754 +#: plugins/check_snmp.c:750 msgid "Could not reallocate labels\n" msgstr "" -#: plugins/check_snmp.c:771 +#: plugins/check_snmp.c:767 #, c-format msgid "Could not reallocate units [%d]\n" msgstr "" -#: plugins/check_snmp.c:783 +#: plugins/check_snmp.c:779 msgid "Could not realloc() units\n" msgstr "" -#: plugins/check_snmp.c:800 +#: plugins/check_snmp.c:796 msgid "Rate multiplier must be a positive integer" msgstr "" -#: plugins/check_snmp.c:852 +#: plugins/check_snmp.c:848 msgid "No host specified\n" msgstr "" -#: plugins/check_snmp.c:856 +#: plugins/check_snmp.c:852 msgid "No OIDs specified\n" msgstr "" -#: plugins/check_snmp.c:878 +#: plugins/check_snmp.c:874 msgid "Invalid seclevel" msgstr "" -#: plugins/check_snmp.c:885 plugins/check_snmp.c:888 plugins/check_snmp.c:906 +#: plugins/check_snmp.c:881 plugins/check_snmp.c:884 plugins/check_snmp.c:902 #, c-format msgid "Required parameter: %s\n" msgstr "" -#: plugins/check_snmp.c:927 +#: plugins/check_snmp.c:923 msgid "Invalid SNMP version" msgstr "" -#: plugins/check_snmp.c:944 +#: plugins/check_snmp.c:940 msgid "Unbalanced quotes\n" msgstr "" -#: plugins/check_snmp.c:993 +#: plugins/check_snmp.c:989 msgid "Check status of remote machines and obtain system information via SNMP" msgstr "" -#: plugins/check_snmp.c:1006 +#: plugins/check_snmp.c:1002 msgid "Use SNMP GETNEXT instead of SNMP GET" msgstr "" -#: plugins/check_snmp.c:1008 +#: plugins/check_snmp.c:1004 msgid "SNMP protocol version" msgstr "" -#: plugins/check_snmp.c:1010 +#: plugins/check_snmp.c:1006 msgid "SNMPv3 securityLevel" msgstr "" -#: plugins/check_snmp.c:1012 +#: plugins/check_snmp.c:1008 msgid "SNMPv3 auth proto" msgstr "" -#: plugins/check_snmp.c:1014 +#: plugins/check_snmp.c:1010 msgid "SNMPv3 priv proto (default DES)" msgstr "" -#: plugins/check_snmp.c:1018 +#: plugins/check_snmp.c:1014 msgid "Optional community string for SNMP communication" msgstr "" -#: plugins/check_snmp.c:1019 +#: plugins/check_snmp.c:1015 msgid "default is" msgstr "" -#: plugins/check_snmp.c:1021 +#: plugins/check_snmp.c:1017 msgid "SNMPv3 username" msgstr "" -#: plugins/check_snmp.c:1023 +#: plugins/check_snmp.c:1019 msgid "SNMPv3 authentication password" msgstr "" -#: plugins/check_snmp.c:1025 +#: plugins/check_snmp.c:1021 msgid "SNMPv3 privacy password" msgstr "" -#: plugins/check_snmp.c:1029 +#: plugins/check_snmp.c:1025 msgid "Object identifier(s) or SNMP variables whose value you wish to query" msgstr "" -#: plugins/check_snmp.c:1031 +#: plugins/check_snmp.c:1027 msgid "" "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL'" msgstr "" -#: plugins/check_snmp.c:1032 +#: plugins/check_snmp.c:1028 msgid "for symbolic OIDs.)" msgstr "" -#: plugins/check_snmp.c:1034 +#: plugins/check_snmp.c:1030 msgid "Delimiter to use when parsing returned data. Default is" msgstr "" -#: plugins/check_snmp.c:1035 +#: plugins/check_snmp.c:1031 msgid "Any data on the right hand side of the delimiter is considered" msgstr "" -#: plugins/check_snmp.c:1036 +#: plugins/check_snmp.c:1032 msgid "to be the data that should be used in the evaluation." msgstr "" -#: plugins/check_snmp.c:1040 +#: plugins/check_snmp.c:1036 msgid "Warning threshold range(s)" msgstr "" -#: plugins/check_snmp.c:1042 +#: plugins/check_snmp.c:1038 msgid "Critical threshold range(s)" msgstr "" -#: plugins/check_snmp.c:1044 +#: plugins/check_snmp.c:1040 msgid "Enable rate calculation. See 'Rate Calculation' below" msgstr "" -#: plugins/check_snmp.c:1046 +#: plugins/check_snmp.c:1042 msgid "" "Converts rate per second. For example, set to 60 to convert to per minute" msgstr "" -#: plugins/check_snmp.c:1050 +#: plugins/check_snmp.c:1046 msgid "Return OK state (for that OID) if STRING is an exact match" msgstr "" -#: plugins/check_snmp.c:1052 +#: plugins/check_snmp.c:1048 msgid "" "Return OK state (for that OID) if extended regular expression REGEX matches" msgstr "" -#: plugins/check_snmp.c:1054 +#: plugins/check_snmp.c:1050 msgid "" "Return OK state (for that OID) if case-insensitive extended REGEX matches" msgstr "" -#: plugins/check_snmp.c:1056 +#: plugins/check_snmp.c:1052 msgid "Invert search result (CRITICAL if found)" msgstr "" -#: plugins/check_snmp.c:1060 +#: plugins/check_snmp.c:1056 msgid "Prefix label for output from plugin" msgstr "" -#: plugins/check_snmp.c:1062 +#: plugins/check_snmp.c:1058 msgid "Units label(s) for output data (e.g., 'sec.')." msgstr "" -#: plugins/check_snmp.c:1064 +#: plugins/check_snmp.c:1060 msgid "Separates output on multiple OID requests" msgstr "" -#: plugins/check_snmp.c:1068 +#: plugins/check_snmp.c:1064 msgid "Number of retries to be used in the requests" msgstr "" -#: plugins/check_snmp.c:1073 +#: plugins/check_snmp.c:1069 msgid "" "This plugin uses the 'snmpget' command included with the NET-SNMP package." msgstr "" -#: plugins/check_snmp.c:1074 +#: plugins/check_snmp.c:1070 msgid "" "if you don't have the package installed, you will need to download it from" msgstr "" -#: plugins/check_snmp.c:1075 +#: plugins/check_snmp.c:1071 msgid "http://net-snmp.sourceforge.net before you can use this plugin." msgstr "" -#: plugins/check_snmp.c:1079 +#: plugins/check_snmp.c:1075 msgid "" -"- Multiple OIDs may be indicated by a comma or space-delimited list (lists " -"with" +"- Multiple OIDs (and labels) may be indicated by a comma or space-delimited " msgstr "" -#: plugins/check_snmp.c:1080 -msgid "internal spaces must be quoted). Maximum:" +#: plugins/check_snmp.c:1076 +msgid "list (lists with internal spaces must be quoted). Maximum:" msgstr "" -#: plugins/check_snmp.c:1080 +#: plugins/check_snmp.c:1076 msgid "OIDs." msgstr "" -#: plugins/check_snmp.c:1084 +#: plugins/check_snmp.c:1080 msgid "" "- When checking multiple OIDs, separate ranges by commas like '-w " "1:10,1:,:20'" msgstr "" -#: plugins/check_snmp.c:1085 +#: plugins/check_snmp.c:1081 msgid "- Note that only one string and one regex may be checked at present" msgstr "" -#: plugins/check_snmp.c:1086 +#: plugins/check_snmp.c:1082 msgid "" "- All evaluation methods other than PR, STR, and SUBSTR expect that the value" msgstr "" -#: plugins/check_snmp.c:1087 +#: plugins/check_snmp.c:1083 msgid "returned from the SNMP query is an unsigned integer." msgstr "" -#: plugins/check_snmp.c:1090 +#: plugins/check_snmp.c:1086 msgid "Rate Calculation:" msgstr "" -#: plugins/check_snmp.c:1091 +#: plugins/check_snmp.c:1087 msgid "In many places, SNMP returns counters that are only meaningful when" msgstr "" -#: plugins/check_snmp.c:1092 +#: plugins/check_snmp.c:1088 msgid "calculating the counter difference since the last check. check_snmp" msgstr "" -#: plugins/check_snmp.c:1093 +#: plugins/check_snmp.c:1089 msgid "saves the last state information in a file so that the rate per second" msgstr "" -#: plugins/check_snmp.c:1094 +#: plugins/check_snmp.c:1090 msgid "can be calculated. Use the --rate option to save state information." msgstr "" -#: plugins/check_snmp.c:1095 +#: plugins/check_snmp.c:1091 msgid "" "On the first run, there will be no prior state - this will return with OK." msgstr "" -#: plugins/check_snmp.c:1096 +#: plugins/check_snmp.c:1092 msgid "The state is uniquely determined by the arguments to the plugin, so" msgstr "" -#: plugins/check_snmp.c:1097 +#: plugins/check_snmp.c:1093 msgid "changing the arguments will create a new state file." msgstr "" @@ -4433,26 +4456,26 @@ msgstr "" msgid "Port number must be a positive integer" msgstr "" -#: plugins/check_ssh.c:228 +#: plugins/check_ssh.c:232 #, c-format msgid "Server answer: %s" msgstr "" -#: plugins/check_ssh.c:247 +#: plugins/check_ssh.c:251 #, c-format msgid "SSH WARNING - %s (protocol %s) version mismatch, expected '%s'\n" msgstr "" -#: plugins/check_ssh.c:254 +#: plugins/check_ssh.c:260 #, c-format -msgid "SSH OK - %s (protocol %s)\n" +msgid "SSH OK - %s (protocol %s) | %s\n" msgstr "" -#: plugins/check_ssh.c:274 +#: plugins/check_ssh.c:281 msgid "Try to connect to an SSH server at specified server and port" msgstr "" -#: plugins/check_ssh.c:290 +#: plugins/check_ssh.c:297 msgid "" "Warn if string doesn't match expected server version (ex: OpenSSH_3.9p1)" msgstr "" @@ -4552,98 +4575,93 @@ msgstr "" msgid "With UDP checks, a send/expect string must be specified." msgstr "" -#: plugins/check_tcp.c:240 -#, c-format -msgid "CRITICAL - Cannot retrieve server certificate.\n" -msgstr "" - -#: plugins/check_tcp.c:418 +#: plugins/check_tcp.c:415 msgid "No arguments found" msgstr "" -#: plugins/check_tcp.c:519 +#: plugins/check_tcp.c:516 msgid "Maxbytes must be a positive integer" msgstr "" -#: plugins/check_tcp.c:537 +#: plugins/check_tcp.c:534 msgid "Refuse must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:547 +#: plugins/check_tcp.c:544 msgid "Mismatch must be one of ok, warn, crit" msgstr "" -#: plugins/check_tcp.c:553 +#: plugins/check_tcp.c:550 msgid "Delay must be a positive integer" msgstr "" -#: plugins/check_tcp.c:581 +#: plugins/check_tcp.c:578 msgid "You must provide a server address" msgstr "" -#: plugins/check_tcp.c:583 +#: plugins/check_tcp.c:580 msgid "Invalid hostname, address or socket" msgstr "" -#: plugins/check_tcp.c:597 +#: plugins/check_tcp.c:594 #, c-format msgid "" "This plugin tests %s connections with the specified host (or unix socket).\n" "\n" msgstr "" -#: plugins/check_tcp.c:610 +#: plugins/check_tcp.c:607 msgid "" "Can use \\n, \\r, \\t or \\ in send or quit string. Must come before send or " "quit option" msgstr "" -#: plugins/check_tcp.c:611 +#: plugins/check_tcp.c:608 msgid "Default: nothing added to send, \\r\\n added to end of quit" msgstr "" -#: plugins/check_tcp.c:613 +#: plugins/check_tcp.c:610 msgid "String to send to the server" msgstr "" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "String to expect in server response" msgstr "" -#: plugins/check_tcp.c:615 +#: plugins/check_tcp.c:612 msgid "(may be repeated)" msgstr "" -#: plugins/check_tcp.c:617 +#: plugins/check_tcp.c:614 msgid "All expect strings need to occur in server response. Default is any" msgstr "" -#: plugins/check_tcp.c:619 +#: plugins/check_tcp.c:616 msgid "String to send server to initiate a clean close of the connection" msgstr "" -#: plugins/check_tcp.c:621 +#: plugins/check_tcp.c:618 msgid "Accept TCP refusals with states ok, warn, crit (default: crit)" msgstr "" -#: plugins/check_tcp.c:623 +#: plugins/check_tcp.c:620 msgid "" "Accept expected string mismatches with states ok, warn, crit (default: warn)" msgstr "" -#: plugins/check_tcp.c:625 +#: plugins/check_tcp.c:622 msgid "Hide output from TCP socket" msgstr "" -#: plugins/check_tcp.c:627 +#: plugins/check_tcp.c:624 msgid "Close connection once more than this number of bytes are received" msgstr "" -#: plugins/check_tcp.c:629 +#: plugins/check_tcp.c:626 msgid "Seconds to wait between sending string and polling for response" msgstr "" -#: plugins/check_tcp.c:635 +#: plugins/check_tcp.c:632 msgid "Use SSL for the connection." msgstr "" @@ -4873,34 +4891,29 @@ msgstr "" msgid "http://www.networkupstools.org" msgstr "" -#: plugins/check_users.c:92 -#, c-format -msgid "# users=%d" -msgstr "" - -#: plugins/check_users.c:115 +#: plugins/check_users.c:90 msgid "Unable to read output" msgstr "" -#: plugins/check_users.c:122 +#: plugins/check_users.c:97 #, c-format msgid "USERS %s - %d users currently logged in |%s\n" msgstr "" -#: plugins/check_users.c:207 +#: plugins/check_users.c:176 msgid "This plugin checks the number of users currently logged in on the local" msgstr "" -#: plugins/check_users.c:208 +#: plugins/check_users.c:177 msgid "" "system and generates an error if the number exceeds the thresholds specified." msgstr "" -#: plugins/check_users.c:218 +#: plugins/check_users.c:187 msgid "Set WARNING status if more than INTEGER users are logged in" msgstr "" -#: plugins/check_users.c:220 +#: plugins/check_users.c:189 msgid "Set CRITICAL status if more than INTEGER users are logged in" msgstr "" diff --git a/release b/release index 8a3b8ac..e554700 100644 --- a/release +++ b/release @@ -1 +1 @@ -1.4.15 +1.4.15-59-ga80e diff --git a/tap/Makefile.in b/tap/Makefile.in index bbddc0d..4cf370a 100644 --- a/tap/Makefile.in +++ b/tap/Makefile.in @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.10 from Makefile.am. +# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008 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. @@ -141,7 +141,7 @@ am__libtap_la_SOURCES_DIST = tap.c tap.h @USE_LIBTAP_LOCAL_TRUE@am_libtap_la_OBJECTS = tap.lo libtap_la_OBJECTS = $(am_libtap_la_OBJECTS) @USE_LIBTAP_LOCAL_TRUE@am_libtap_la_rpath = -DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -1097,8 +1097,8 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -1110,8 +1110,8 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ @@ -1121,13 +1121,12 @@ ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique